terraformとAWS-CLIのイメージを併用した環境を構築する。

AWS terraform インフラ構築


前回の記事からの続きになりますが、

terraformでS3バケットにtfstateファイルを保存すると思うので、S3のバケットもAWS-CLIでコマンドから作成できたら便利ですよね。ですのでterraformのイメージとCLIイメージの共存したdocker-compose.ymlを作成したいと思います。

aws-cliも公式があるのでそちらを使用します。
と思ったのですが、amazon/aws-cliを使うとコンテナ内に入ってコマンドを実行はできなさそうなので、terraformのイメージにAWS-CLIをインストールして使えるようにします。

version: '3'
services:
  terraform:
    container_name: terraform
    image: hashicorp/terraform:1.1.3
    env_file:
      - .env
    volumes:
      - .:/terraform
    working_dir: /terraform/terraform
    entrypoint: ash
    tty: true
  aws-cli:
    image: amazon/aws-cli
    volumes:
      - ./aws_cli

調べていったところ

  • terraformを使えるようにする。
  • AWS-CLIを使えるようにする
  • ECRを使うためにdockerをコンテナ内で操作

この3を使えるようにするのが最終目標のようです。
下記がこの三つを最終構成するのに正解に思えます。

https://qiita.com/Shoma0210/items/7178284e4fdbcd5f9dc2

今回はS3のバケットをterraformと一緒に使えるようにするので上記の二つを実装できるようにします。