1. はじめに
未経験からクラウドエンジニアを目指すにあたり、手動(マネジメントコンソール)ではなく、コードでインフラを管理するIaC (Infrastructure as Code) の学習を開始しました。
今回は、WSL2環境でTerraformを動かせるようにし、実際にAWS上にVPCを作成するまでの手順と、各コマンドの意味を備忘録として残します。
2. 開発環境の構成
今回の構築環境は以下の通りです。
- OS: Windows 11 (WSL2 / Ubuntu)
-
ツール:
- tfenv: Terraformのバージョン管理ツール
- Terraform: v1.14.8
- AWS CLI: AWS操作用コマンドラインツール
3. 環境構築のステップ
AWS CLIの認証設定
TerraformがAWSを操作できるように、アクセスキーを登録します。
# 認証情報の設定
aws configure
-
設定内容:
Access Key ID/Secret Access Key/Region (ap-northeast-1) -
確認コマンド:
aws sts get-caller-identity- 自分のアカウント番号(Account: "1234...")が表示されれば、AWSへの接続準備は完了です。
tfenvによるTerraformのインストール
プロジェクトごとにバージョンを切り替えられるよう、tfenv を使用してインストールします。
# 最新版のインストール
tfenv install 1.14.8
# 使用するバージョンの切り替え(重要!)
tfenv use 1.14.8
# バージョン確認
terraform -v
4. Terraform基本コマンドの意味(逆引き)
実際に使用したコマンドの流れと、その「役割」を整理しました。
| コマンド | 役割 | 実行される内容 |
|---|---|---|
terraform init |
初期化 | 設計図(.tf)を読み、AWS用プラグイン(Provider)をダウンロードする。 |
terraform plan |
計画確認 | 設計図とAWSの現状を比較し、変更差分を表示する(まだ作成はされない)。 |
terraform apply |
実行 | 実際にAWSへリソースを作成する。yes の入力で確定。 |
terraform destroy |
一括削除 | 作成したリソースをすべて安全に削除する。 |
5. はじめての設計図 (main.tf)
今回作成した最小構成のコードです。VPC(仮想ネットワークの箱)を東京リージョンに作成します。
# 1. AWSプロバイダーの設定
provider "aws" {
region = "ap-northeast-1"
}
# 2. VPCリソースの定義
resource "aws_vpc" "example" {
cidr_block = "10.0.0.0/16" # ネットワークの範囲を指定
tags = {
Name = "my-first-vpc" # AWSコンソール上で表示される名前
}
}
6. 遭遇したエラーと解決法(ハマりポイント)
① Command 'tfenv' not found
- 原因: インストール直後で、実行ファイルのパス(PATH)が今のターミナルに反映されていなかった。
-
解決:
source ~/.bashrcを実行して設定を再読み込みした。
② Apply cancelled
-
原因:
terraform applyの途中で出る確認メッセージに対し、yesと打たずにエンターを押したため。 -
解決: プロンプトに対して正確に
yesと入力して実行。
③ version: No such file or directory
-
原因:
tfenv installだけして、tfenv useによるバージョン指定を忘れていた。 -
解決:
tfenv use [バージョン番号]を打つことで、使用するTerraformが確定した。
7. まとめ
Terraformを使うことで、「設計図を書いてコマンドを打つだけ」でインフラが構築できる便利さを実感しました。
手動での設定漏れを防げるだけでなく、後から見返したときに「どのような構成になっているか」がコードで一目瞭然なのが最大のメリットだと感じています。
今後はこのVPCの中に「サブネット」や「EC2インスタンス」を追加し、より実践的なWebサーバー構成に挑戦していきます。