Terraform と AWS のちょっとした知見 - Terraformでインフラ構築#2
Terraformを使って、AWSを管理しているプロジェクトでちょっとした作業を行った際の個人的な知見の備忘録。 割としょうもない内容だけど、運用続けていくうえで抑えておきたいのでメモを残す。
Terraformのバージョンは最新に追従できていなくて、 v0.9.11
を使用。
EC2のインスタンスタイプ変更時はEBSはそのまま残る
EC2をスケールアップした際の挙動。 インスタンスがstopされ、インスタンスタイプが指定のものに変更されて、再起動される。 この時、EBSは変更されないので、EBSに保存されていたデータはそのまま引き継がれる。
ここにある作業内容をそのままTerraformがやっている。 https://recipe.kc-cloud.jp/archives/1348
tfファイルの変更内容
resource "aws_instance" "example" { #... - instance_type = "t2.micro" + app_ec2_instance_type = "t2.small" #... }
Elastic IPの設定
EIPを設定する際に、 下記のように aws_eip
だけ設定していると、EC2インスタンスのインスタンスタイプ変更時に再起動された際に EIPがアタッチされなかった。
aws_eip_association
の設定が必要
resource "aws_eip" "example" { instance_id = "i-XXXXXXXX" vpc = true }
tfファイルの変更内容
resource "aws_eip" "example" { - instance_id = "i-XXXXXXXX" vpc = true } + + resource "aws_eip_association" "example" { + instance_id = "i-XXXXXXXX" + allocation_id = "${aws_eip.example.id}" + }
RDSインスタンスタイプ変更時には apply_immediately
を trueにする
これを設定しておかないと、インスタンスタイプが変更されずにやきもきすることになる。というか、やきもきした。 Terraformというか、RDSの知見。
tfファイルの変更内容
resource "aws_db_instance" "example" { # ... - apply_immediately = "false" + apply_immediately = "true" # ... }
RDSインスタンスタイプ変更時にはストレージは変更されない
これはEC2と同様。 当たり前といえば当たり前だが、ちゃんと把握しておかないと作業するときドキドキするので、メモしておく
tfファイルの変更内容
resource "aws_db_instance" "example" { # ... - instance_class = "db.t2.micro" + instance_class = "db.m4.small" # ... }
RDSインスタンスタイプ変更時にエンドポイントは変更されない
これも当たり前だけど、一応メモ。 RDSのエンドポイントは、EC2と違ってIPに依存しないので、再起動が発生しても影響を受けない。
Infrastructure as Code ―クラウドにおけるサーバ管理の原則とプラクティス
- 作者: Kief Morris,宮下剛輔,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/03/18
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (2件) を見る