Terraform
TerraformでEC2プロビジョニング時に、ユーザーデータ内でパブリックDNS名を参照しようとしたらすんなり実装できなかったのでメモ。 AWSでEC2をプロビジョニングする際にホスト上の初期処理を投入したい場合は、実行したいコマンドをシェルスクリプトとして…
指定のリージョンにおけるアベイラビリティゾーンは何があるか?のように、自分が実装する内容でなくAWS(プロバイダ)の情報を取得したい場合は、データソースを使うことで情報参照ができる。 developer.hashicorp.com アベイラビリティゾーンを参照するため…
Terraformでインフラをプロビジョニングしたあとに上物に対してAnsibleで何か(アプリをインストールしたりデータを投入したり)処理をするようなことが多いので、AnsibleからTerraformを実行するようにして一発で処理できるようにするにはどうするか実装を確…
EventBridge Schedulerを使ったVMの自動on/off設定をCloudFormationを使って設定するには以下のClassmethodさんの記事を見れば一通り実装できます。 dev.classmethod.jp ここではTerraformを使った実装についてのまとめ。 こうしたらうまくいった、という感…
EC2にEIPを設定したくて以下のようなtfファイルを作成 resource "aws_instance" "sample" { : } resource "aws_eip" "sample-eip" { instance = aws_instance.sample.id domain = "vpc" depends_on = [aws_internet_gateway.igw] tags = { Name = "sample-ei…
結論 VPCでEC2インスタンス作成する定義の場合は、security_groupsでなくvpc_security_group_idsでセキュリティグループを指定しましょう。 該当ドキュメントはこちら 実装例は以下。 github.com 事象 お題は以下のコード zaki-hmkc.hatenablog.com コード r…
countを使うことで簡単に同じリソースを複数作成できる。 learn.hashicorp.com countを使った個数指定 countの指定 インデックス値参照 for_eachを使ったリスト指定 リスト定義 for_eachの指定 残課題 つかいわけ 元ネタは以下で作成した定義ファイル。 zaki…
ハードコーディングしていた変数を別ファイルに定義してみる。 元の定義ファイル variableで変数定義 変数のセット terraform.tfvarsで変数セット コマンドライン引数でセット 環境変数でセット 変数参照の優先順位 環境 サンプルコード 記事中のCIDRが172.2…
Terraformがv0.15にアップデートされたので、手元の環境も更新してみた。 以前お試しで作ったv0.12で動いていたソースでプロバイダ設定を新しい書式に更新すれば動作した。 zaki-hmkc.hatenablog.com qiita.com サンプルレベルだとおそらくv0.14 -> v0.15固…
クラウドのリソースで似たものをたくさん作る機会があってその時は温かみのある手作業で対応したんだけど、どう考えてもコード化した方が良かったので、Terraformの使い方についてAWSでVPCからEC2作成までお試し入門してみた。 お題 Terraform CLIツールのイ…