Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Terraformのnull_resource ってなに?aws cli が実行できるらしい

Yuki_Kurono
January 14, 2023

Terraformのnull_resource ってなに?aws cli が実行できるらしい

「Step Functionsからサーバレスを始めよう!! / 2023年始めLT大会!! JAWS-UGおおいた」の資料

Yuki_Kurono

January 14, 2023
Tweet

More Decks by Yuki_Kurono

Other Decks in Technology

Transcript

  1. 4 null_resourceってなに? resource "aws_vpc" "main" { cidr_block = "10.0.0.0/16" }

    resource "null_resource" "main" { } null_resource、その名の通り何も作らないリソースのこと。
  2. 9 だいたいこんな感じになる resource "null_resource" "vpc" { provisioner "local-exec" { interpreter

    = ["/bin/bash", "-c"] command = <<EOT aws ec2 create-vpc \ --cidr-block 10.20.0.0/16 \ --tag-specifications "ResourceType=vpc, \ Tags=[{Key=Name,Value=vpc_from_null_resource}]" EOT } }
  3. 10 記述量を比較してみる リソース 記述量(普通) 記述量(null) 倍率 VPC 4行 28行 7倍

    Subnet 7行 36行 約5倍 RouteTable 4行 32行 8倍 SecurityGroup 6行 36行 6倍 EC2 8行 46行 約6倍
  4. 11 辛いポイント① provisioner "local-exec" { when = destroy interpreter =

    ["/bin/bash", "-c"] command = <<EOT aws ec2 delete-vpc \ --vpc-id $(cat ./state/VPC_ID.txt) EOT on_failure = fail } destroy時の処理(コマンド)も記載しないとリソースが削除されない。
  5. 15