雪ん子パースペクティヴ

読むとちょっとタメになるエントリー。コメントあると嬉しいです。

【Terraform】Windows10にインストールし、AWSのEC2を構築する。

コンソールで構築するのも良いんだけど、クリックするの疲れるよね。

 

はろー、yukiです。

 

今回は、インフラ構築を自動化するオープンソースのツールTerraformを使い、AWSのEC2を構築します。 

 

まずは、Terraformを使えるようにします。 

下のリンク先にアクセスし、OSに従ってパッケージをダウンロードします。

 

パッケージを解凍後、システムパスを含むディレクトリに移動します。

システムパスについては下記を参照。

 

 

僕の場合、Windows10ですので、同じ方は参考にしてください。

ーーーーーーーーーーーーーーーーーーーー

1. パッケージのダウンロード

ダウンロードし、解凍したTerraformをCドライブの直下に配置します。

f:id:yuki_sasano:20200222184258p:plain

 

2. 環境変数の設定

エクスプローラーを開き、アドレスバーに下記を入力します。

コントロール パネル\システムとセキュリティ\システム

 

左にある[システムの詳細設定]をクリックします。

「システムのプロパティ」が開き、[環境変数]をクリックします。

環境変数」の[システム環境変数]にあるPathをダブルクリックします。

環境変数名の編集」が開き、[新規]をクリックします。

Terrafromを配置したアドレスをコピーし、張り付けます(下記は例)。

C:\terraform\

 

3. 実行確認

コマンドプロンプトを開き、terraformと入力し、Enterを押します。

コマンドが実行されれば、成功です。

ーーーーーーーーーーーーーーーーーーーー

 

 

 

 

 

次に、AWSのEC2を構築します。

Terraformで作業を始める前に、AWSの下準備をしてください。

アカウント作成: https://aws.amazon.com/jp/

AWS CLIインストール: https://aws.amazon.com/jp/cli/

 ※AWS CLIの設定

 

TerraformでのAWS操作は下の公式ドキュメントを参考にしてください。

tfファイルに記述する各パラメータは、こちらが詳しいです。

 

Terraform初心者のためのガイドは下記です。こちらを参考に進めるのが良いです。

 

僕の場合は、下記になります。ご参考ください。

ーーーーーーーーーーーーーーーーーーーー

1. tfファイルの用意

設定ファイルはJSON形式で記述します。

ファイルの保存場所は任意ですが、Terraformがそのファイルを参照します。

そのため、このプロジェクト用にディレクトリを新規に用意すると良いです。

provider "aws" {
  profile = "default"
  region = "ap-northeast-1"
}

resource "aws_instance" "example" {
  ami = "ami-8e4181ef"
  instance_type = "t1.micro"
}

providerブロックでクラウドを指定します。

Terraformは、ここで指定したクラウドAPIを使用します。

 ※providerブロックには複数のproviderを指定できます。Terraformの例ではDatadogを指定していますが、Datadog(監視サービス)は今回使いませんので割愛します。

profileは構成設定と認証情報になります。AWS CLIで特に指定していない場合、defaultになっています。

 cf.) 設定ファイルと認証情報ファイルの設定

regionは使用するリージョンを指定します(必ず指定する必要がある)。

 

resourceブロックでリソースを指定します。

今回はEC2を構築しますので、aws_instanceを記述し、次にインスタンス名を決めます。

インスタンスの設定は、OSがCentOS、タイプがt1.microになります。

 

2. 初期化 

コマンドプロンプトで、プロジェクトのディレクトリへ移動します。

terraform initを実行します。

awsプラグインがダウンロードされ、ディレクトリが作成されます。

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

 

3. 構築と結果確認

terraform applyを実行し、出力情報が表示されます。

 ※「Do you want to perform these actions?」で一時停止する

yesと入力すると、構築が開始されます。

「Apply complete! Resources: 1 added, 0 changed, 0 destroyed.」が表示されると、完了です。

 

構築されたインスタンスの確認は、AWSのコンソールからでも良いですが、terraform showでもできます。

ーーーーーーーーーーーーーーーーーーーー

 

 

 

 

 

ここからはおまけ。

インスタンスを編集する

インスタンスタイプをt2.microにしてみましょう。

resource "aws_instance" "example" {
  ami = "ami-8e4181ef"
  instance_type = "t2.micro"

上記のようにthファイルを修正後、 terraform applyを実行します。

yesと入力する前に、「~ instance_type = "t1.micro" -> "t2.micro"」を確認します。

修正内容が正しいので、yesと入力します。

「Apply complete! Resources: 0 added, 1 changed, 0 destroyed.」と表示されると完了です。

 

terraform showで確認すると、変更されていることが分かります。

 

 

インスタンスを削除する

terraform destroyを実行します。

「# aws_instance.example will be destroyed」となり、各パラメータで「-> null」と表示されています。

yesと入力します。

「Destroy complete! Resources: 1 destroyed.」と表示されました。

インスタンスが削除されたため、terraform showを実行しても何も表示されません。

 

なお、tfファイルは残っているので、再び構築することもできます。

(似た構成のシステムが、手間なく構築できることになりますね)

 

 

以上。

 

 

Googleアドセンス