オタクくん「ギャル先輩、Terraformってなんですか?」
オタクくんの悩み
オタクくん「ギャル先輩、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