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

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

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. Terraformのnull_resourceってなに?
    aws cliが実行できるらしい
    黒野 雄稀 | 2023/1/14
    1
    Step Functionsからサーバレスを始めよう!!
    2023年始めLT大会!! JAWS-UGおおいた

    View Slide

  2. 自己紹介
    黒野 雄稀 Yuki Kurono
    kurono_98
    kurono
    アイレット株式会社 所属 
    普段はインフラ設計・構築や運用構築に従事
    2022 APN ALL AWS Certifications Engineers
    2

    View Slide

  3. 3
    Terraformってなに?

    View Slide

  4. 4
    null_resourceってなに?
    resource "aws_vpc" "main" {
    cidr_block = "10.0.0.0/16"
    }
    resource "null_resource" "main" {
    }
    null_resource、その名の通り何も作らないリソースのこと。

    View Slide

  5. 5
    これ作ってて意味あるの??
    何に使うの??無を生みだして楽しい?
    resource "null_resource" "main" {
    }

    View Slide

  6. 6
    Google先生に聞いてみる

    View Slide

  7. 7
    なるほど。
    じゃあ、AWS CLI実行すれば
    リソース全部作れるじゃん!
    ちょっと前の僕

    View Slide

  8. 8
    やってみた

    View Slide

  9. 9
    だいたいこんな感じになる
    resource "null_resource" "vpc" {
    provisioner "local-exec" {
    interpreter = ["/bin/bash", "-c"]
    command = <aws ec2 create-vpc \
    --cidr-block 10.20.0.0/16 \
    --tag-specifications "ResourceType=vpc, \
    Tags=[{Key=Name,Value=vpc_from_null_resource}]"
    EOT
    }
    }

    View Slide

  10. 10
    記述量を比較してみる
    リソース 記述量(普通) 記述量(null) 倍率
    VPC 4行 28行 7倍
    Subnet 7行 36行 約5倍
    RouteTable 4行 32行 8倍
    SecurityGroup 6行 36行 6倍
    EC2 8行 46行 約6倍

    View Slide

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

    View Slide

  12. 12
    辛いポイント②
    リソースのId(VPCのIdとか)を保持したり取得できないので、
    describeコマンドを打って、ファイル保存しておかないといけない。。

    View Slide

  13. 13
    辛いポイント③
    デプロイしてみても何作ってんのか全然わからん。。。

    View Slide

  14. 14
    何が言いたいかというと...
    やれる と できるは違うよね
    ※本スライドの内容は完全にネタですので悪しからず。

    View Slide

  15. 15

    View Slide