🚀

オタクくん「ギャル先輩、Terraformってなんですか?」

2024/05/23に公開

オタクくんの悩み

オタクくん「ギャル先輩、Terraformってなんですか?」

ギャル先輩「また何か困ってるの?てーか、オタクくんってパソコンに詳しそうなのに、そんなのもわからないの?www。」

オタクくん「いや、インフラの自動化って聞いたことあるんですけど、Terraformがどういうものかよくわからなくて…」

ギャル先輩「んー、そっか。じゃあ、あーしが基本的なことから教えてあげる!」

Terraformの概要

ギャル先輩「まず、Terraformはインフラをコードで管理するためのツールだよ。いわゆる『Infrastructure as Code(IaC)』ってやつね。」

オタクくん「インフラをコードで管理するってどういうことですか?」

ギャル先輩「簡単に言うと、サーバーとかネットワークとか、クラウド上のリソースをコードで定義して、自動的に作成・変更・削除できるってこと。」

オタクくん「なるほど、それで効率的にインフラを管理できるんですね。」

Terraformの基本構文

ギャル先輩「そうだよ。じゃあ、実際にTerraformの基本的な構文を見てみようか。例えば、AWSでEC2インスタンスを作成するコードはこんな感じ。」

provider "aws" {
  region = "us-west-2"
}

resource "aws_instance" "example" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"

  tags = {
    Name = "example-instance"
  }
}

オタクくん「これはAWSのEC2インスタンスを作成するコードなんですね。」

ギャル先輩「そうそう。まずプロバイダーを設定して、それからリソースを定義する感じだね。」

Terraformのメリット

オタクくん「Terraformを使うとどんなメリットがあるんですか?」

ギャル先輩「まずは再現性だね。同じコードを使えば、どこでも同じ環境を作れるから、環境の違いによる問題が減るんだ。」

オタクくん「確かに、それは便利ですね。」

ギャル先輩「それからバージョン管理もできるよ。コードだからGitで管理できるし、変更履歴も追えるから安心。」

オタクくん「変更履歴が追えるのは大事ですね。」

状態管理とプランニング

オタクくん「他にも重要なことってありますか?」

ギャル先輩「状態管理プランニングが大事だよ。Terraformは現在のインフラの状態を管理して、それを元に変更を計画してくれるの。」

オタクくん「具体的にはどうやるんですか?」

ギャル先輩「まず、terraform initで初期化して、それからterraform planで計画を確認するんだ。」

# 初期化
terraform init

# 計画の確認
terraform plan

オタクくん「これでどんな変更が行われるか確認できるんですね。」

ギャル先輩「そうだよ。そして、問題がなければterraform applyで実際に変更を適用するの。」

# 変更の適用
terraform apply

オタクくん「なるほど、計画を確認してから適用するんですね。」

オタクくん「ギャル先輩、ありがとうございます!これでTerraformについて少しわかりました。」

ギャル先輩「よかったってばよ!」

オタクくん「てばよ?」

Discussion