以下のコマンド実行するだけで AWS の上記構成を構築することが可能です。
コマンドの実行後、コンソール画面を一度も見ることなくリソースへのアクセスも可能です。
$ cd /User/.../resource/env/dev
$ terraform init # .tfstate 準備
$ terraform apply # 環境構築
$ terraform output # 接続情報取得
現在は以下のバージョンに対応しています。
program | version |
---|---|
terraform | 0.13.5 |
aws provider | 3.12.0 |
python | 3.8.6 |
利用タグ(Owner/Env)の組み合わせ毎にサブネットを割り当てています。
No | Owner | Env | subnet id |
---|---|---|---|
1 | koizumi | dev | 10 - 19 |
2 | koizumi | stg | 20 - 29 |
3 | koizumi | prd | 30 - 39 |
事前に以下の設定を実施する必要があります。
1. terraform.exe をダウンロード、PATH を通す。
https://www.terraform.io/downloads.html
2. python3系(3.8)のインストール
インストール手順はネットで調べてください。
3. credentials作成
空のファイル C:¥user¥.aws¥credentials を作成し、以下の内容を入力してください。
[sample]
aws_access_key_id = "xxxxxxxxxxxxxxxxxxxx"
aws_secret_access_key = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
4. SSH-KEYの作成
SSH-KEY(private/public)を作成してください。
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
5. s3バケット作成
terraform は .tfstate というファイルでリソースの状態を保持します。
セキュリティや運用の観点からローカルに保存するのではなく、s3 に置くことが推奨されています。
事前に保管用の s3 を用意してください。
vpc を管理する module です。この module は変更しないでください。
全環境で vpc は共有しています。
AWS の各リソースを作成するための module です。
各リソースの細かいパラメーターを変更する際は、この module 配下の .tf ファイルを編集してください。
また、lambda で使用するソースのレイヤーを作成するため、python のライブラリをインストールします。
python のライブラリインストール手順の詳細は resource 階層の README を参照ください。
環境情報をこの module で管理しています。
terraform apply 実行前に、resource/env/dev 配下の環境設定ファイル(main.tf/variable.tf)を編集します。
詳細は、resource/env/dev 階層にある README を参照ください。
ステージング環境用で使用するモジュールです。
本番環境用で使用するモジュールです。
以上です。