- クラウド技術
TerraForm でEC2のステータス確認、変更、削除
- #TerraForm
- #AWS
目標:TerraFormで作成したEC2の管理方法を調べる。
環境
OS:Windows10
ステータスファイル
ステータは「terraform.tfstate」ファイルに保存されます。
TerraFormで作成したリソースの情報や設定内容などが記録されているし、このステータファイルを参照してリソースを更新、削除もできるので注意して安全などころに保存する必要があります。
ステータスコメント
「terraform show」ステータスを確認
1 |
<span>terraform show</span> |
「terraform [global options] state <subcommand> [options] [args]」
オプションを利用して欲しいステータス情報を確認できます。
1 |
<span>terraform state list</span> |
「list」と言う<subcommand>を利用してリソースのリストを出力
「terraform refresh」リソースデータを実際のリソースに同期します。
1 |
<span>terraform refresh</span> |
TerraForm でEC2を変更
以前記録で作成したEC2のAMIを変更したみます。
まず作成した「main.tf」のリソース設定を更新します。
以前AMIは「ubuntu-precise-12.04-amd64-server-20170502 : “ami-66182e01″」を使いましたが今度は「ubuntu-xenial-16.04-amd64-server-20200814:”ami-036cb77005c69fbe0”」に変更してみます。
1 2 3 4 5 6 7 8 |
resource "aws_instance" "app_server" { ami = "ami-036cb77005c69fbe0" instance_type = "t2.micro" tags = { Name = "MyFirstTerraformInstance" } } |
「main.tf」ファイルを修正後「terraform apply」を実行します。
1 |
terraform apply |
1リソース削除、1リソース追加の実行結果を見せます。
変更前「i-0846b2841b4ef8e0a」
AWS Consoleからも確認できます。
変更後「i-053a4d29edefb98fa」
このようにAMIの変更は単純にEC2を修正することでは変更ができないので自動にTerraFormが判断して作り直します。
1 2 3 4 |
# aws_instance.app_server must be replaced -/+ resource "aws_instance" "app_server" { ~ ami = "ami-66182e01" -> "ami-036cb77005c69fbe0" # forces replacement ~ arn = "arn:aws:ec2:ap-northeast-1:470476052118:instance/i-0846b2841b4ef8e0a" -> (known after apply) |
「-/+」の表示はリソース作り直すの意味です。
リソースの単純修正だと「~」に表示されます。
TerraForm でEC2を削除
「terraform destroy」リソースを削除する。
1 |
<span>terraform destroy</span> |
「-」の表示はリソースを削除する意味です。
複数のリソースがある複雑な場合、Terraformは従属性を尊重するために適切な順序でリソースを除去します。
【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>