1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】Terraformを簡単に動かしてみる

Posted at

前回は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

・出力結果例
image.png

・構文チェック
terraform validateを実行するとtfファイルの構文をチェックをしてくれます。

terraform validate

・出力結果例
image.png

・planで実行計画を作成
クラウド上に実際に構築されるリソースを模擬することができ、Terraform実行前にこのコマンドを実行して想定通りの変更なのか確認する。

terraform plan

・出力結果例
image.png
※[+]が追加されるリソースを表し、(known after apply)は現時点ではその値を特定できず、Terafformの実行計画において、実際の値が不明な場合に表示される。

・applyでリソースを作成
terraform applyを実行し、実際にAWSにリソース(EC2インスタンス)を作成します。
Enter a value:が表示されたあとにyesを入力してEnterキーを押下すると、リソースの作成が開始されます。

terraform apply

Apply complete! Resources:が出力されれば作成完了です。

image.png

・作成後確認
applyが完了したら、実際にEc2インスタンスが作成されているかAWSコンソールで見てます。
Terraform-createという名前のEC2インスタンスが東京リージョンに作成されていたら完了です。

まとめ

今回はTerraformで簡単にEc2インスタンスを作成してみました。
次はVPCやIGWなど簡単な構成をTerrraformで作成してみたいと思います。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?