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

今日から使えるTerraform 〜初心者向けIaC実践ガイド〜

Avatar for Yuuuuuuu Yuuuuuuu
July 19, 2025
550

今日から使えるTerraform 〜初心者向けIaC実践ガイド〜

JAWS-UG初心者支部#66 hands-on
https://jawsug-bgnr.connpass.com/event/360104/
2025/07/21(月)

Avatar for Yuuuuuuu

Yuuuuuuu

July 19, 2025
Tweet

Transcript

  1. 突然ですが!!! では、複数台EC2(サーバ)をAWSで作成することを考えてみると?? 1. マネコンにログイン 2. EC2画面にアクセス 3. 「インスタンスを起動」 4. 設定をごにょごにょ…

    5. 「インスタンスを起動」 6. できた!!! 最低限ここを 複数回実行する 必要がある 100台、1000台 間違わずに 作成できますか? ツイートはこちら⇒#jawsug_bgnr
  2. IaCとは ◼Infrastructure as Code(インフラストラクチャ アズ コード)の略 ◼インフラをコードで管理する手法 ◼従来の方法 ◼マネジメントコンソールで手作業 ◼設定手順書を見ながら一つずつ作業

    ◼IaCの方法 ◼インフラ構成をコードで記述 ◼コードを実行して自動でインフラを構築 ◼同じコードで何度でも同じ環境を作成可能 https://aws.amazon.com/jp/what-is/iac/ ツイートはこちら⇒#jawsug_bgnr
  3. IaCの例 ◼AWS ◼AWS CDK(Cloud Development Kit) ◼AWS CloudFormation ◼Azure ◼Azure

    Resource Manager Template(ARM) ◼Google Cloud ◼Infrastructure Manager(Infra Manager) ◼その他 ◼Terraform ← 今回のメインはこれ ◼Puppet/Chef ◼Ansible https://aws.amazon.com/jp/what-is/iac/ ツイートはこちら⇒#jawsug_bgnr
  4. HCL(Terraformコード) の書き方 (Amazon S3バケットを1つ作成) ツイートはこちら⇒#jawsug_bgnr Terraformブロック Terraform全体の設定を記述 バージョン指定もこちら AWSやAzure、Vmwareなど 何(Provider)に対して実行するか

    今回はAWSに対してリソースを 作成したいので、AWS Providerを指定 Provider ブロック 認証情報やリージョンなど Resourceブロック そのTerraformコードでどんな リソースを作成するか
  5. HCL(Terraformコード) の書き方 (Amazon S3バケットを1つ作成) ツイートはこちら⇒#jawsug_bgnr Resourceブロック そのTerraformコードでどんな リソースを作成するか 左記の例だと “aws_s3_bucket”:リソースタイプ

    どんなリソースを作成するか “beginner-bucket-20250721”:リソース名 そのterraformコード内でそのリソース を一意に識別するための名前 AWSの中の名前ではない点に注意 bucket = “beginner-bucket-20250721” そのリソースタイプで指定された変数 リソースタイプによって、 必須/オプションが存在
  6. Terraformの実行の仕方 at AWS 1. AWSの認証を設定 2. コードを書く 3. terraform init

    4. terraform plan 5. terraform apply 6. terraform destroy ツイートはこちら⇒#jawsug_bgnr
  7. Terraformの実行の仕方 at AWS 1. AWSの認証を設定 2. コードを書く 3. terraform init

    4. terraform plan 5. terraform apply 6. terraform destroy 【推奨】Identity Centerの認証トークン 【非推奨】アクセスキー/シークレットアクセスキー 詳細は以下を参照 https://qiita.com/Hikosaburou/items/1d3765d85d5398e3763f ツイートはこちら⇒#jawsug_bgnr
  8. Terraformの実行の仕方 at AWS 1. AWSの認証を設定 2. コードを書く 3. terraform init

    4. terraform plan 5. terraform apply 6. terraform destroy AWSの場合、以下のTerraform registryを参照 https://registry.terraform.io/providers/hashicorp/aws/latest/docs ツイートはこちら⇒#jawsug_bgnr
  9. Terraformの実行の仕方 at AWS 1. AWSの認証を設定 2. コードを書く 3. terraform init

    4. terraform plan 5. terraform apply 6. terraform destroy ディレクトリの初期化 プロバイダーファイルをダウンロード ツイートはこちら⇒#jawsug_bgnr
  10. Terraformの実行の仕方 at AWS 1. AWSの認証を設定 2. コードを書く 3. terraform init

    4. terraform plan 5. terraform apply 6. terraform destroy 実行は(実は)オプション ただし実行は強く推奨 Terraformコードを実行するとどうなるか、 想定結果を表示(Dry run) ツイートはこちら⇒#jawsug_bgnr
  11. Terraformの実行の仕方 at AWS 1. AWSの認証を設定 2. コードを書く 3. terraform init

    4. terraform plan 5. terraform apply 6. terraform destroy 記載内容通りにリソースを作成/変更 作成リソースに応じて、コストが発生 新規作成(create)、設定変更(update)、置換(replace)、 削除(destroy)の4パターンの状態変更が存在 実行時の状態を保存するため、Stateファイルを作成/更新 ツイートはこちら⇒#jawsug_bgnr
  12. Terraformの実行の仕方 at AWS 1. AWSの認証を設定 2. コードを書く 3. terraform init

    4. terraform plan 5. terraform apply 6. terraform destroy terraformコードのリソースを削除 削除は取り消せないため、必ずそのリソースを 削除してよいかを確認してから実行すること ツイートはこちら⇒#jawsug_bgnr
  13. 応用編 ◼HCLの記述 ◼dataブロック ◼ 既存のリソース(IAMロールやVPC)を、Terraform内で管理対象とはせず、利用可能にする ◼Importブロック ◼ 既存のリソース(IAMロールやVPC)を、Terraform内で管理対象に追加し、利用可能にする ◼Stateファイルの管理 ◼本資料では、ローカル(実行ディレクトリ)にてStateファイルを保管

    ◼複数人で実行する場合は、リモート(S3やHCP Terraformなど)で保管 ◼コマンド ◼terraform fmt ◼ Terraformの推奨構文に即して、インデント(空白)や改行などをきれいに整理 ◼terraform validate ◼ HCLの文法が正しいかチェック ツイートはこちら⇒#jawsug_bgnr
  14. 参考 ◼参考書 ◼[詳解]AWS Infrastructure as Code――使って比べるTerraform&AWS CDK エンジ ニア選書 https://amzn.asia/d/9wKEawZ

    ◼詳解 Terraform 第3版 ―Infrastructure as Codeを実現する https://amzn.asia/d/ewUrE1g ◼Terraformの教科書 (Compass Booksシリーズ) https://amzn.asia/d/jaNauti ◼Terraformではじめる実践IaC ―AWSでのインフラストラクチャ構築の基本から継続的 デプロイまで 7/26発売 https://amzn.asia/d/dQ8fzJ4 ◼資格(2025.7時点で英語のみ) ◼Terraform Associate(003) https://qiita.com/ec2_on_aws/items/51761c24f2c3e87e36c4 ◼Terraform Authoring and Operations Professional https://developer.hashicorp.com/terraform/tutorials/pro-cert