初期セットアップ
アカウントのセットアップ
Terraformを使用してインフラストラクチャを管理するには、まずクラウドプロバイダーのアカウントと、必要に応じてTerraform Cloudのアカウントをセットアップする必要があります。
最終更新: 2026/2/3
アカウントのセットアップ
Terraformを使用してインフラストラクチャを管理するには、まずクラウドプロバイダーのアカウントと、必要に応じてTerraform Cloudのアカウントをセットアップする必要があります。
Terraformの利用形態
Terraformには主に2つの利用形態があります。
1. Terraform CLI(オープンソース版)
ローカル環境やCI/CDパイプラインでTerraform CLIを直接使用する方法です。
特徴:
- 無料で利用可能
- ローカルまたはセルフホストのバックエンドで状態管理
- 小規模なプロジェクトや個人利用に適している
必要なもの:
- Terraform CLIのインストール
- クラウドプロバイダーのアカウント
- 状態ファイルの保存場所(ローカルまたはリモートバックエンド)
2. Terraform Cloud / Terraform Enterprise
HashiCorpが提供するマネージドサービスです。
特徴:
- チームでの協調作業に最適
- リモート実行環境
- 状態管理とロック機能
- VCS(Version Control System)との統合
- ポリシー管理(Sentinel)
- プライベートレジストリ
料金プラン:
- Free: 小規模チーム向け(最大5ユーザー)
- Team: チーム向け有料プラン
- Enterprise: 大規模組織向け
Terraform Cloudの詳細については、公式サイトをご参照ください。
クラウドプロバイダーのアカウント準備
Terraformでインフラを管理するには、対象となるクラウドプロバイダーのアカウントが必要です。
AWS (Amazon Web Services)
必要な準備:
- AWSアカウントの作成
- IAMユーザーの作成
- アクセスキーとシークレットキーの取得
- 適切な権限(IAMポリシー)の付与
推奨される権限設定:
- 本番環境: 最小権限の原則に従い、必要な権限のみを付与
- 開発環境: より広範な権限を付与(例: PowerUserAccess)
アクセスキーとシークレットキーは機密情報です。コードにハードコーディングせず、環境変数や認証情報ファイルを使用してください。
認証情報の設定方法:
# 環境変数を使用
export AWS_ACCESS_KEY_ID="your-access-key"
export AWS_SECRET_ACCESS_KEY="your-secret-key"
export AWS_DEFAULT_REGION="ap-northeast-1"
または、AWS CLIの設定ファイルを使用:
# AWS CLIの設定
aws configure
Azure (Microsoft Azure)
必要な準備:
- Azureアカウントの作成
- サービスプリンシパルの作成
- 認証情報の取得
認証情報の設定:
# Azure CLIでログイン
az login
# サービスプリンシパルの作成
az ad sp create-for-rbac --name "terraform" --role="Contributor"
Google Cloud Platform (GCP)
必要な準備:
- GCPアカウントの作成
- プロジェクトの作成
- サービスアカウントの作成
- サービスアカウントキー(JSON)の取得
認証情報の設定:
# 環境変数でサービスアカウントキーを指定
export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account-key.json"
Terraform Cloudのアカウント作成(オプション)
チームでの協調作業や、リモート実行環境を利用したい場合は、Terraform Cloudのアカウントを作成します。
アカウント作成手順
- Terraform Cloudにアクセス
- メールアドレスとパスワードを入力してアカウントを作成
- メール認証を完了
- 組織(Organization)を作成
- ワークスペースを作成
組織の作成
組織は、チームメンバーやワークスペースを管理する単位です。
組織名の選択:
- 会社名やチーム名を使用
- 一意である必要があります
- 後から変更できません
ワークスペースの作成
ワークスペースは、Terraformの実行環境と状態を管理する単位です。
ワークスペースの種類:
- VCS-driven workflow: GitHubなどのVCSと連携
- CLI-driven workflow: ローカルのTerraform CLIから実行
- API-driven workflow: APIを使用した自動化
# Terraform Cloudをバックエンドとして使用
terraform {
cloud {
organization = "my-organization"
workspaces {
name = "my-workspace"
}
}
}
認証情報の管理
ベストプラクティス
- 環境変数を使用: 認証情報をコードに含めない
- シークレット管理ツールの活用: AWS Secrets Manager、Azure Key Vault、HashiCorp Vaultなど
- 最小権限の原則: 必要最小限の権限のみを付与
- 定期的なローテーション: アクセスキーやシークレットを定期的に更新
- 監査ログの確認: 不正なアクセスがないか定期的に確認
Terraform Cloudでの変数管理
Terraform Cloudでは、ワークスペースごとに変数を管理できます。
変数の種類:
- Terraform Variables: Terraformコード内で使用する変数
- Environment Variables: 環境変数(認証情報など)
機密情報の扱い:
- "Sensitive"フラグを有効にすることで、UIやログに表示されなくなります
次のステップ
アカウントの準備が完了したら、次はTerraform CLIのインストールに進みましょう。