前回はTerraformを動かす事前の環境構築を実施しました。
今回は実際にTerraformを動かし、AWSにEC2インスタンスを作成してみます。
目次
1.概要
2.tfファイル作成
3.Terraform実行
4.AWSリソースの削除
1.概要
・Terraformを利用し、AWS環境にEC2インスタンスを作成します。
・事前の環境構築は完了済みとします。
・参考:https://developer.hashicorp.com/terraform/tutorials/aws-get-started/aws-build
2.tfファイル作成
【前提】
・tfファイルはHCLと呼ばれる、HashiCorp社開発の独自記法となる。
・基本的な構文は以下となります。
resource "リソースの種類" "リソース名" {
設定項目1 = 値1
設定項目2 = 値2
設定項目3 = 値3
}
・リソースの種類、設定項目はTerraformで定義されている名前にする必要あり。(任意の名前ではNG)
・リソース名は任意の名前でOK
【手順】
・Terraform設定用のディレクトリを作成します。
※Terraformの設定は必ずワーキング・ディレクトリ内に作成される。
今回は公式ドキュメントに従って” learn-terraform-aws-instance”という名前のディレクトリを作成します。
mkdir learn-terraform-aws-instance
・作成したディレクトリにてtfファイルを作成
touch main.tf
・main.tf
ファイルを作成したら、ファイルに以下の内容を記載します。
リージョンは東京
を指定し、AMIIDは東京リージョンのUbuntu(ami-0595d6e81396a9efb
)を指定しています。
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "~> 4.16"
}
}
required_version = ">= 1.2.0"
}
provider "aws" {
region = "ap-northeast-1"
}
resource "aws_instance" "app_server" {
ami = "ami-0595d6e81396a9efb"
instance_type = "t2.micro"
tags = {
Name = "Terraform-create"
}
}
・terraform {}ブロック
- Terraformの設定が入る
- 対象のプロバイダー(Aws.Azure等)を指定
- Teraformのバージョン指定
・provider {}ブロック
- 特定のプロバイダーを指定し、今回はaws
でリージョンは東京を選択
・resource {}ブロック
- インフラの構成要素を定義
- aws_instance”はEC2インスタンスを指す
- ”ami”作成するEC2インスタンスのAMIを指定
- ”instance_type”作成するEC2インスタンスタイプを指定
※Terraformでは各リソースに名前を付けることができ、その名前を使用してリソースを参照したり、他のリソースに渡したりすることができる。コード内の参照ポイントとして利用。
3.Terraform実行
【概要】
・流れとしては、以下になります。
①initでワークスペース初期化
②planで実行計画を作成
③applyでリソースを作成
④作成後確認
【手順】
・initでワークスペース初期化
terraform initはTerraformを実行する前の準備作業として必要となり、ここで必要なプラグインやモジュールをインストールし、バックエンドを初期化することで、Terraformが正しく実行できる状態を整えます。
terraform init
・構文チェック
terraform validateを実行するとtfファイルの構文をチェックをしてくれます。
terraform validate
・planで実行計画を作成
クラウド上に実際に構築されるリソースを模擬することができ、Terraform実行前にこのコマンドを実行して想定通りの変更なのか確認する。
terraform plan
・出力結果例
※[+]が追加されるリソースを表し、(known after apply)は現時点ではその値を特定できず、Terafformの実行計画において、実際の値が不明な場合に表示される。
・applyでリソースを作成
terraform applyを実行し、実際にAWSにリソース(EC2インスタンス)を作成します。
Enter a value:が表示されたあとにyes
を入力してEnterキーを押下すると、リソースの作成が開始されます。
terraform apply
Apply complete! Resources:が出力されれば作成完了です。
・作成後確認
applyが完了したら、実際にEc2インスタンスが作成されているかAWSコンソールで見てます。
Terraform-create
という名前のEC2インスタンスが東京リージョンに作成されていたら完了です。
まとめ
今回はTerraformで簡単にEc2インスタンスを作成してみました。
次はVPCやIGWなど簡単な構成をTerrraformで作成してみたいと思います。