Ⅰ. はじめに

この記事はTerraformを利用してAWS環境にリソースを作成、更新、削除するハンズオンです。はじめて実行する方向けの内容です。

Ⅱ. Terraformとは

TerraformはAWS、Azure、GPCなどのクラウドサービスプラットフォームのインフラリソースをコードで管理できるツールです。利点として、インフラ環境の現状がコードでわかることや、災害などにより環境が利用できなくなった場合、同構成で新しい環境を素早くデプロイできるという点があります。

前提条件

  • AWSアカウントの用意
  • AWS Credentialの設定(ターミナルからAWS環境をアクセスするため)。設定されていない場合はこちらをご参照ください。(link
  • Terraformのインストール。インストールがお済みでない場合はこちらをご参照ください。(link

Ⅲ. 構築するリソース

今回作るのは以下の構成です。EC2インスタンス、及びインスタンスの配置に必要な仮想ネットワークを作成します。

Ⅳ. コマンド

本記事では下記のコマンドを利用します。

 

Ⅴ. 実践

以下のステップでTerraformの初期化、リソースの作成・更新・削除まで実装します。
1.Terraform構成ファイルを作成
2. Terraformディレクトリを初期化 [terraform init]
3. Terraform
コードの実行影響を確認 [terraform plan]
4. Terraform
コードを適用 [terraform apply]
5. 
構築されたリソースを確認
6. 
リソースを更新してみる [terraform apply]
7. 
リソースを削除 [terraform destroy]

1. Terraform構成ファイルを作成

まずはローカルPCでTerraformファイルを格納するディレクトリを作成し、ディレクトリ内でmain.tfファイルを作成します。

main.tfファイルの中身は下記です。

2. Terraform ディレクトリを初期化 [terraform init]

構成ファイルを作成したら、terraform init コマンドでディレクトリを初期化します。以下のような出力があればOKです。(一部出力を省略しています。)

3. Terraformコードの実行影響を確認 [terraform plan]

次にterraform planでmain.tfファイルのコードを適用したときの環境への影響を確認します。(一部出力を省略しています。)

4. Terraformコードを適用 [terraform apply]

applyコマンドでAWS環境にTerraformコードを適用します。
Do you want to perform these actions?というプロンプトが出るので、「yes」と入力します。

5. 構築されたリソースを確認

ここでAWS環境のコンソールからデプロイされた環境を確認します。

main.tfファイルで指定したCIDRでVPCが作成されています。

main.tfファイルで指定したCIDRでSubnetが作成されています。

main.tfファイルで指定した設定でinstanceが作成されています。

6. リソースを更新してみる [terraform apply]

ここで作成されたインスタンスのサイズを変更してみます。t2.micro -> t2.small
main.tfファイルのコードを以下のように修正し、再度 terraform applyを実行します。

コードを変更したので以下のような出力がされます。Do you want to perform these actions? というプロンプトが出るので「yes」と入力します。

コンソールでインスタンスサイズが変更されていることを確認します。

7. リソースを削除 [terraform destroy]

最後にterraform destroyコマンドで作成したリソースを削除します。
Do you really want to destroy all resources? というプロンプトが出るので、「yes」と入力します。

Ⅵ. まとめ

この記事では基本的なTerraformコマンドを利用して、AWS環境のリソースを作成・更新・削除しました。このようにしてクラウド環境全体をIaC (Infrastructure as Code)で管理することができます。インフラ環境をコードで管理することで環境の現状が把握でき、また同構成の環境を作成することも可能です。以上、Terraformハンズオンについてご紹介しました。

アイレット株式会社のGlobal Solutions事業部では、お客様のビジネス変革を実現しながら、最新のデータソリューションの導入を加速できるように設計されたデータ分析ソリューションとデータサービスの幅広いポートフォリオを提供しています。ビジネスの成功こそ、私たちが追求するものです。お困りの際はぜひ一度お気軽にお問い合わせください。

cloudpack サービスページ