yoshiislandblog.net
元営業の駆け出しアラサーSEが、休日にMACと戯れた際の殴り書きメモ。日々勉強。日々進歩。
Terraform_VerticalLogo_Color_RGB

Terraformを使ってWordPress on Bitnami on AWSを新しいバージョンに移行した作業ログ(1)〜Terraformのインストール〜

2023-03-14

※「Terraformを使ってWordpress on Bitnami on AWSを新しいバージョンに移行した作業ログ」全体の目次

  • (1)〜Terraformのインストール〜
  • (2)〜TerraformでEC2インスタンス構築〜
  • (3)〜Wordpressログイン〜
  • (4)〜AWS ElasticIPネットワーク移行〜
  • (5)〜All-in-One WP Migrationでコンテンツ移行とBitnamiのアイコン消し〜
  • (6)〜Really Simple SSLを使ってサイトをHTTPSでアクセスできるようにする〜

  • Terraformを使ってWordpress on Bitnami on AWSを新しいバージョンに移行した作業ログ

    Bitnamiのバージョンアップは、そのままバージョンアップできるわけではない認識なので、
    新しいバージョンのインスタンスを構築し、Wordpressを旧インスタンスから新インスタンスに移行する方法で、バージョンアップを実施した

    前回は手動で移行したが、今回は勉強がてらTerraformを使って移行してみた

    Terraformとは

    Terraform_VerticalLogo_Color_RGB

    いわゆる「Infrastructure as Code」を実現するためのツールの一つで、
    AWS、Azure、Google Cloudなどのクラウドインフラの構成管理をする

    「AWSしか使いません!」というなら、AWSが提供している「CloudFormation」というAWS専用のツールを使うのが良いかもしれないが、
    今回は勉強も兼ねているので、Terraformを利用した

    インフラ屋さんには、オンプレのインフラ機器を管理するIaCツールとしてAnsibleが馴染み深いと思うが、ざっくり言うと、TerraformはAnsibleのクラウド版

    参考:2023年度最新版構成管理ツール(IaCツール、クラウドリソースオーケストレーションツール)の比較

    今回の全体図はこちら
    20230119_terraform_wordpress_bitnami_aws_0

    そして、今回はこの部分の作業
    20230119_terraform_wordpress_bitnami_aws_1

    awscliのインストール

    TerraformでAWS環境を操作するには、AWS CLIのインストールが必要なのでインストールする
    参考:hasicorp | AWS Provider

    Macにインストールするので、Homebrewを使ってインストールする
    参考:Homebrew | awscli

    ローカルMacで以下コマンドを実行してawscliをインストール

     
    % brew install awscli
    ...
    ...
    Pruned 2 symbolic links and 14 directories from /usr/local
    ==> Caveats
    ==> awscli
    The "examples" directory has been installed to:
      /usr/local/share/awscli/examples
    
    zsh completions and functions have been installed to:
      /usr/local/share/zsh/site-functions
    ==> pyenv-virtualenv
    To enable auto-activation add to your profile:
      if which pyenv-virtualenv-init > /dev/null; then eval "$(pyenv virtualenv-init -)"; fi
    %
    

    これでawsコマンドが使えるようになった

    インストールされたバージョン確認

     
    % aws --version
    aws-cli/2.9.15 Python/3.11.1 Darwin/20.3.0 source/x86_64 prompt/off
    

    AWS CLIのキーペア作成

    既存のユーザーに対して作成する(そうで無ければユーザー作成してから以下手順に進む)

    AWS Management Consoleから「IAM」>「Users」から今回使いたいユーザーをクリック
    ユーザーのページで「Security credentials」タブを選択する
    20230119_terraform_wordpress_bitnami_aws_terraform_install_1

    スクロールしていき「Access keys」の欄を見つけ、「Create access key」をクリック
    20230119_terraform_wordpress_bitnami_aws_terraform_install_2

    「Command Line Interface (CLI)」を選択しチェックボックスにチェックを入れたら、スクロールして「Next」をクリック
    20230119_terraform_wordpress_bitnami_aws_terraform_install_3
    20230119_terraform_wordpress_bitnami_aws_terraform_install_4

    「Create access key」をクリック
    20230119_terraform_wordpress_bitnami_aws_terraform_install_5

    作成された「Access key」と「Secret access key」をコピーしてひかえるか、「Download .csv file」でcsvをダウンロードしたら「Done」
    20230119_terraform_wordpress_bitnami_aws_terraform_install_6

    ダウンロードしたcsvファイルの中身は以下のようになっている

     
    % cat accessKeys.csv
    Access key ID,Secret access key
    【Access keyの値】,【Secret access keyの値】
    

    AWS CLIの設定

    AWS CLIでAWSのリソースにアクセスできるように設定する
    (=先程Access key/Secret access keyを払い出したユーザーがアクセス可能なリソース)

     
    % aws configure
    AWS Access Key ID [None]: 【Access keyの値】
    AWS Secret Access Key [None]: 【Secret access keyの値】
    Default region name [None]: ap-northeast-1
    Default output format [None]:
    

    確認

     
    % aws iam get-user
    {
        "User": {
            "Path": "/hoge",
            "UserName": "【keyを払い出したユーザー名】",
            "UserId": "【keyを払い出したユーザーのID】",
            "Arn": "arn:aws:iam::123456789012:user/hogehoge",
            "CreateDate": "2018-03-04T02:24:17+00:00",
            "PasswordLastUsed": "2018-03-04T02:25:16+00:00"
        }
    }
    

    Terraformのインストール

    AWS環境にアクセスする準備ができたので、いざTerraformのインストール

    TerraformもHomebrewでインストールする
    参考:Homebrew | terraform
    ※ Terraformのバージョン管理ツールもあるようだが、今回は一旦、単純に最新のバージョンを一つインストールする

    % brew install terraform
    ...
    ...
    ==> Pouring terraform--1.3.7.big_sur.bottle.tar.gz
    🍺  /usr/local/Cellar/terraform/1.3.7: 6 files, 65MB
    ==> Running `brew cleanup terraform`...
    Disable this behaviour by setting HOMEBREW_NO_INSTALL_CLEANUP.
    Hide these hints with HOMEBREW_NO_ENV_HINTS (see `man brew`).
    %
    

    これでTerraformが使えるようになった
    バージョン確認

    % terraform -v
    Terraform v1.3.7
    on darwin_amd64
    

    次回へ続く
    Terraformを使ってWordPress on Bitnami on AWSを新しいバージョンに移行した作業ログ(2)〜TerraformでEC2インスタンス構築〜


    参考:【Terraform入門】AWSのVPCとEC2を構築してみる
    参考:TerraformでEC2を使ったweb環境をつくろう