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

Terraform超超入門

 Terraform超超入門

KishiKyosuke(Kyo18)

November 18, 2022
Tweet

More Decks by KishiKyosuke(Kyo18)

Other Decks in Programming

Transcript

  1. 目次 1. 今日話すこと, 話さないこと 2. Terraform って何? 3. Terraform を使うと何が嬉しいの?

    4. Terraform の基本的な使い方 5. tfstate ファイルに関して 6. まとめ 2
  2. ◦ 構築設定をコード化できる 一つ一つ手で設定していくよりも 設定ファイルのような形式でコード化した方が便利では… ? → Infrastructure as Code(IaC) resource

    "aws_instance" "hello-world" { ami = "ami-02c3627b04781eada" instance_type = "t2.micro" tags = { Name = "HelloWorld" } } 2.Terraform って何? 8
  3. Terraform ( IaC )のメリット ① . 素早く正確にインフラ構築ができる ② . GitHub

    でのバージョン管理ができる ③ . コードがそのままドキュメントになる 3.Terraform を使うと何が嬉しいの? 11
  4. ② . GitHub でのバージョン管理ができる ◉ 設定の変更履歴を残すことができる → いつでも以前の構成・設定に戻すことができる ◉ GitHub

    Actios での CI/CD の実現 →Terraform のファイルの変更がコミットされると自動的にインフラ に変更が反映される仕組みづくりなど 3.Terraform を使うと何が嬉しいの? 14
  5. Terraform ( IaC )のメリット ① . 素早く正確にインフラ構築ができる ② . GitHub

    でのバージョン管理ができる ③ . コードがそのままドキュメントになる 3.Terraform を使うと何が嬉しいの? 16
  6. ① .tf ファイルの書き方 AWS のリソースの設定を書き込むのが .tf ファイル resource <RESOURCE_TYPE> <RESOURCE_NAME>

    { # リソースの各種設定 <KEY> = <VALUE> ... } resource: Terraform 管理対象となるリソースを表すブロックタイプ。 <RESOURCE_TYPE>: ブロックタイプに与えられるラベル。 4 .Terraform の基本的な使い方 19
  7. ① .tf ファイルの書き方 EC2 インスタンスを作成する .tf ファイルの例 provider "aws" {

    profile = "terraform-user" region = "ap-northeast-1" } resource "aws_instance" "hello-world" { ami = "ami-02c3627b04781eada" instance_type = "t2.micro" tags = { Name = "HelloWorld" } } 4 .Terraform の基本的な使い方 20
  8. ② 基本となる 3 つのコマンド $ terraform apply $ terraform destroy

    $ terraform plan 4 .Terraform の基本的な使い方 21
  9. $ terraform plan .tf ファイルの内容を反映 した際の設定の diff を 確認するためのコマンド $

    terraform plan -destory で destroy 時の diff を確認 4 .Terraform の基本的な使い方 26