1. HOME
  2. ブログ
  3. エンジニアになろう!
  4. TerraformをAWSで使ってみた!導入からインスタンス作成まで
TerraformをAWSで使ってみた!導入からインスタンス作成まで

TerraformをAWSで使ってみた!導入からインスタンス作成まで

TerraformをAWSで使ってみよう!

小山先生

(株)ライトコードの小山(こやま)です!

アメリカの HashiCorp 社が開発した、インフラ構築や設定などもコード化できる、「Terraform」というツール。

ネットワーク構築も自動化できるとあって、エンジニアの間でも、人気のツールとなっていますね!

というわけで今回は、そんな話題の Terraform を「AWS」で使ってみたいと思います。

Terraform 導入から、インスタンス作成までを試していくので、ぜひ一緒にチャレンジしてみてくださいね!

今回の構築環境

本記事では、下表のような環境を前提に、執筆されています。

OSmacOS 10.15.7
AWS登録済み
AWS CLI導入済み
Homebrew導入済み
TerraformTerraform v0.13.5(記事の中で導入します)

では早速、はじめていきましょう!

Terraformの環境導入とAWSの設定

Terraform の環境を導入

Homebrew を利用して、Terraform の環境を導入します。

導入できたかどうかを確認するために、以下のようなバージョン確認コマンドを入力します。

バージョン情報が表示されたら、環境導入は成功です。

AWSのクレデンシャルの設定

今回は、Terraform を利用して、AWS のリソースを作成していきます。

そのために、まず AWS のクレデンシャルの設定を行っておきましょう。

AWS のクレデンシャル(アクセスキー及びシークレットキー)は、AWS コンソールの IAM より発行できます。

発行できたら、クレデンシャルを、環境変数に登録します。

ご利用のリージョンが東京でない方は、「AWS_DEFAULT_REGION」を、ご利用のリージョンに設定してください。

Terraformを実際に使ってみる

「tfファイル」を作成

まずは、任意の名前でディレクトリを作成し、そこへ移動します。

次に、以下のコマンドで、Terraform のファイルを作成してください。

拡張子「tf」のファイルを作成すると、Terraform がテンプレートとして認識します。

「main.tf」を編集

続いて、main.tf の内容を、次のように編集していきましょう。

インデントが整う便利コマンド

ここで、Terraform の便利なコマンドを利用します。

上記のコマンドを入力すると、拡張子が「tf」のファイルのインデントなどを整えてくれます。

実際に入力したら、インデントが整っているかを、確認してみてください。

キレイに整いましたね!

「main.tf」のコードの意味

main.tf では、AWS の EC2 インスタンスを作成するコードを実装しています。

aws_instance の内容を変更すれば、EC2 以外のリソースも作成することができます。

今回は、EC2 のインスタンスを作成するので、AMI とインスタンスのタイプを設定しておきました。

ちなみにインスタンスのタイプは、

  1. nano
  2. micro
  3. large

など、様々なサイズがあります。

基本的には、費用を抑えるために、なるべく小さいサイズを選ぶと良いかと思います。

また、最後の  tags では、その名の通り、タグを設定しています。

必須ではありませんが、設定しておくと AWS コンソールで確認しやすくなるので、ぜひ活用してみてください。

「main.tf」のエラーの解消と実行

さて、main.tf ですが、今のまま実行するとエラーとなってしまいます。

試しに実行してみます。

「プラグインを読み込めない」というエラーが出てしまいました…。

このエラーを解消するために、次のコマンドを実行して、プラグイン環境を整えます

そして、次のコマンドを実行します。

「何がどうなるのか」を、教えてくれるはずです。

内容を確認して問題がなければ、実行コマンドを再度入力してみましょう。

実行して良いかどうか尋ねられるので、「yes」と入力すると実行されます。

実行されたら、下記のコマンドを入力してください。

「resource "aws_instance" "hoge"」と、その詳細が表示されたら成功です!

インスタンスの確認 & 後処理をする

AWS のコンソールを開いて、EC2 を確認すると、インスタンスが作成されているはずです。

AWS の EC2 インスタンスは、起動したままだと料金がかかるので、終了させておきましょう!

次のコマンドで、作成したリソースを、削除することができます。

再び、実行して良いかどうか尋ねられるので、「yes」を入力し実行します。

実行されたら再度、下記コマンドを入力します。

リソースを削除する「destroy」コマンドを実行したあとは、何も表示されないはずです。

以上が、Terraform の基本の流れとなります。

さいごに

今回の記事では、以下の流れで作業をしていきました。

  1. tfファイルを作成
  2. init
  3. plan
  4. apply
  5. show
  6. destroy
  7. show

基本的には、今回の流れで Terraform を操作することになるかと思います。

ただ、「show」や「destroy」については、使わないこともあります。

アクセスキーやシークレットキーなどのクレデンシャルは、外部に流出すると大変なことになるので、扱いにはご注意ください。

また、Terraform で作成したリソースについても、適切に管理しないと AWS の使用額がとんでもないことになってしまいます。

さて今回は、特に認知度の高い AWS を用いました。

Terraform は、Azure や Heroku など、様々なサービスにも対応しています。

これを機に、Terraform を活用して、業務の効率化を目指してみるのも良いですね!

こちらの記事もオススメ!


関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア