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

AWSでTerraform超入門

hr0hr57
October 21, 2023

 AWSでTerraform超入門

2023/10/26の「めぐろLT大会#8」で発表した資料です。

hr0hr57

October 21, 2023
Tweet

More Decks by hr0hr57

Other Decks in Technology

Transcript

  1. 自己紹介 • ryosaan (@hr0hr57) • 某金融系SIerでインフラ設計・構築を担当 • 業務ではAWSを利用中 • 所属コミュニティ

    ◦ AWS Community Builder(Cloud Operations) ◦ Ops-JAWS運営 ◦ CNDT2023運営 ◦ この他クラウド系コミュニティによく出没 • 2022-23 APN ALL AWS Certifications Engineers 2
  2. Terraformとは • HashiCorp社が開発 • マルチクラウドに対応したIaC (Infrastructure as Code) ツール ◦

    AWS CDK , AWS CloudFormation , Pulumi , Bicep , Ansible , etc.. • 作成したいリソースをコードとして管理し、数コマンドで環境が構築できる • 宣言型モデルで作りたい環境のあるべき姿を定義 ◦ cf. 命令実行モデル:作成する手順をコード化 • 独自のHCL言語でコードを記述する • 内部的にはGo言語で構成され、内部で各プロバイダのSDKを呼び出すことでリソー スを作成する PR 4
  3. 必要な準備 • 実行環境 ◦ コードを実行する環境にインストール https://developer.hashicorp.com/terraform/downloads • 実行コード ◦ .tfファイル

    構成情報、プロバイダー情報、変数などを定義する ◦ .tfstateファイル(実行時に自動的に作成される) 作成されたリソース情報が定義されている ◦ (オプション).tfvarsファイル 変数を外出しして管理する ◦ (オプション).outputファイル 他リソースで参照するための値を定義する 5
  4. 実際のコード例 • 各リソース毎のresourceブロック • 各パラメータはリファレンスを参照 (Terraform AWS Provider) • コメントの記載も可能

    • モジュール化やWorkspaceの利用 など、チーム開発にも適応できる • 最短3コマンドで作成できる ◦ terraform init (初回のみ) ◦ terraform plan ◦ terraform apply https://github.com/nnydtmg/terraform-ec2-sample 7