はじめてのTerraform構築 ハンズオン

2024年3月29日- By Rika Chinen

Ⅰ. はじめに

この記事は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環境のコンソールからデプロイされた環境を確認します。

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

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

<Instance> 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ハンズオンについて書かせて頂きました。

Rackspaceについて 

Rackspace Technologyの日本国内サービスは、アイレット株式会社Global Solutions事業部より提供させていただきます。Amazon AWSMicrosoft Azureの導入検討のコンサルティング(勉強会)から構築、運用・保守までワンストップのクラウド支援サービスです。

お客様のご要望に柔軟に対応いたします。まずはお気軽にご相談ください。