Terraformを使ってWordPress on Bitnami on AWSを新しいバージョンに移行した作業ログ(1)〜Terraformのインストール〜
※「Terraformを使ってWordpress on Bitnami on AWSを新しいバージョンに移行した作業ログ」全体の目次
Terraformを使ってWordpress on Bitnami on AWSを新しいバージョンに移行した作業ログ
Bitnamiのバージョンアップは、そのままバージョンアップできるわけではない認識なので、
新しいバージョンのインスタンスを構築し、Wordpressを旧インスタンスから新インスタンスに移行する方法で、バージョンアップを実施した
前回は手動で移行したが、今回は勉強がてらTerraformを使って移行してみた
いわゆる「Infrastructure as Code」を実現するためのツールの一つで、
AWS、Azure、Google Cloudなどのクラウドインフラの構成管理をする
「AWSしか使いません!」というなら、AWSが提供している「CloudFormation」というAWS専用のツールを使うのが良いかもしれないが、
今回は勉強も兼ねているので、Terraformを利用した
インフラ屋さんには、オンプレのインフラ機器を管理するIaCツールとしてAnsibleが馴染み深いと思うが、ざっくり言うと、TerraformはAnsibleのクラウド版
今回の全体図はこちら
そして、今回はこの部分の作業
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」タブを選択する
スクロールしていき「Access keys」の欄を見つけ、「Create access key」をクリック
「Command Line Interface (CLI)」を選択しチェックボックスにチェックを入れたら、スクロールして「Next」をクリック
「Create access key」をクリック
作成された「Access key」と「Secret access key」をコピーしてひかえるか、「Download .csv file」でcsvをダウンロードしたら「Done」
ダウンロードした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環境をつくろう