terraform

terraformでファイルのハッシュを確認するメモ(ついでにnull_resourceについて)

概要 terraformのLambda layer等を作成するときに、ファイル更新を検知したい 詳細 archive_file よくある手法が、Data sourceであるarchive_fileを利用する方法 registry.terraform.io data "archive_file" "main" { type = "zip" source_dir = "${path.mod…

CircleCIのyamlのメモと、TerraformをCircleCIでapplyするメモ

目的 GitHubにpushしたソースをCircleCIを用い、Terraformをapplyしたい Terraformをapplyする際にはユーザの確認を行いたい 参考 まさにこのページがそれでした(公式のサンプル) learn.hashicorp.com 準備 特定のGitHubリポジトリを作る CircleCIに作成し…

terraformで特定のmoduleだけapplyする方法メモ

結論 $ terraform apply -target=module.s3 module追加しているときにはモジュールのインストールしないといけない(エラーメッセージでる) $ terraform init おまけ : S3の静的ホスティングのterraform main.tf module "s3" { source = "./modules/s3" app…

AWS documentDBにLambdaから書き込むメモ(terraform)

目的 documentDBにLambdaから書き込みたい 構成はterraformにて行う LambdaのVPC接続について VPC接続 LambdaはVPC接続して動かすという方法がある模様 LambdaがVPC(自分で作ったVPC)にアクセスして動作するイメージ 利点 VPC内のエンドポイント等にLamda…

terraformでfileを相対パス記載する

terraform version 0.12以上 記載方法 module内にてfileを相対パスで指定したい場合、${path.module}が使える 例えば"${path.module}/cert/sample.pem"でファイルのパスを作ってくれる(相対パスを作成してくれる) 具体例 certのpemを指定する場合(ファイ…

terraformにて、module間で値(variable,outputs)を渡す

0.12のフォーマット 値の受け渡し terraformにて、variableを使って変数を表現するが、 moduleをまたいでの受け渡しをどうするか フォルダ構成の例 ├── main.tf ├── modules │ ├── ec2 │ │ ├── ec2.tf │ │ └── variables.tf │ └── network │ ├── network.tf …

Terraformで、.envのように変数を注入する

terraformにて、任意の変数を外部から注入する terraform.tfvarsという仕組みを使う assume_role = "arn:aws:iam::012345678901:role/AssumeRoleForTerraform" pub_key_value = "ssh key value" といったように、任意の値を書いておく そして、実行時にこの…

IAMのAssumeRoleについて

AssumeRole 権限を移譲するための仕組みのようです。 参考 christina04.hatenablog.com qiita.com 概要 今回は、アカウントAのAWSリソースを、アカウントBが使うというケースをAssumeRoleでやります 例として、以下のアカウントIDだとします。 - アカウントA…