🙄

【Terraform】0からAWSにアプライするまで

2023/09/17に公開

AWSコンソールでの操作

IAM>ユーザー>ユーザーの作成

画面下部の”次へ”を押下

”ポリシーを直接アタッチする”を選択して”AdministratorAccess”にチェックを入れ、画面下部の”次へ”を押下
あとは特に設定項目なく、作成できた気がする。

IAM>ユーザー>(作成したユーザー)
セキュリティ認証情報タブから”コンソールアクセスを有効化”する。
同タブ”アクセスキー”をから”アクセスキーを作成”を押下

サードパーティーサービスを選択して画面下部の”次へ”を押下

適当な説明を入力して作成

このタイミング以外ではアクセスキーを取得できないらしいので必ずどこかに控えるor CSVデータをダウンロードする

ターミナルでの操作

AccessKeyID
export AWS_ACCESS_KEY_ID=<さっき取得したやつ>
SecretAccessKey
export AWS_SECRET_ACCESS_KEY=<さっき取得したやつ>

コーディング

ここでは、backend.tfにS3とかの諸々の設定を書くことにした。(terrafromは同一ディレクトリ内全部実行するから必ずしもbackend.tfである必要はない。)

backend.tf
terraform{
    required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
    backend "s3" {
      bucket = "terraform-montblanc-test-tfstate"
      key = "terraform.tfstate"
      region = "ap-northeast-1"
    }   
}

provider "aws" {
  region = "ap-northeast-1"
}

あとは任意のリソースをコーディングしてこちらのコマンド

terraform init
terraform plan
terraform apply

Error: failed to get shared config profile, my-profile

このエラーに丸2日間悩まされました()
backend.tfで直接アクセスキーとシークレットキー書き込むとか色々あるらしいんですけど、
これ以外うまくいきませんでした。ターミナルで打ってください。

呪文
aws configure --profile profile-name
AWS Access Key ID [None]: アクセスキー
AWS Secret Access Key [None]: シークレットキー
Default region name [None]: 自分が使うRegion
Default output format [None]: (そのままEnter)

参考文献

https://y-ohgi.com/introduction-terraform/first/preparation/
https://qiita.com/moffunnya/items/16adcfa1011d0588d0fa
https://www.youtube.com/watch?v=h1MDCp7blmg&t=1877s

Discussion