はじめての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 AWSとMicrosoft Azureの導入検討のコンサルティング(勉強会)から構築、運用・保守までワンストップのクラウド支援サービスです。
お客様のご要望に柔軟に対応いたします。まずはお気軽にご相談ください。