Terraform環境をAWS Cloud9で構築する方法

TerraformをAWS Cloud9で使用するメリット

AWS Cloud9の権限管理を利用できる

TerraformでAWSリソースを操作するには権限が必要になります。

ローカルで実行する際はアクセスキーを使用することになるのですが、Cloud9ではアクセスキー以外の方法で権限を付与することができます。

Cloud9で権限を付与する主な方法は以下の4つです。

  • AWS マネージド一時認証情報を使用する。
  • インスタンスプロファイルを使用しEC2インスタンスにIAMロールを付与する。
  • 永続的な AWS アクセス認証情報を環境内に保存する
  • 永続的な AWS アクセス認証情報をコードに直接挿入します。※非推奨、使用しないでください。

AWS マネージド一時認証情報やIAMロールを利用することでアクセスキーの流出による不正利用リスクを回避することができます。
またAWSマネージド一時認証情報を使う方法はマネジメントコンソールからCloud9を開くだけでユーザーの権限を使用できるので設定の手間を省くことができます。

注意

AWSマネージド一時認証情報は基本的にはCloud9ユーザーと同等の権限が与えられているものの、一部の機能については制限されているのでご注意ください。

https://docs.aws.amazon.com/ja_jp/cloud9/latest/user-guide/security-iam.html#auth-and-access-control-temporary-managed-credentials

複数のPCで同じ環境を操作できる

自宅ではデスクトップパソコン、外出先ではノートパソコンなど複数のPCを利用している場合でもシームレスに作業を行うことができます。

AWS Cloud9を使用する際の注意点

AWS Cloud9は有料サービス

AWS無料利用枠を超えた部分には料金が発生します。

コードの実行と保存に使用された コンピューティング とストレージのリソース分 の支払いが必要です。

料金の例 (AWS Cloud9 EC2 環境の場合の月次見積もり)

デフォルトの設定 (30 分間の自動休止状態を設定して 1 か月に 20 日間、1 日 4 時間 IDE を実行) を使用する場合、90 時間の使用に対する月額料金は次のようになります。

料金のタイプ金額コメント
コンピューティング料金*1.05 USD0.0116 USD/時間の t2.micro Linux インスタンス x 1 か月あたり 90 時間使用 = 1.05 USD
ストレージ料金1.00 USDGB/月のプロビジョニングされたストレージ 0.10 USD x 10 GB のストレージボリューム = 1.00 USD
1 か月の料金2.05 USD 

AWS Cloud9 は、幅広く選択できる EC2 インスタンスタイプを提供しています。AWS Simple Monthly Calculator を使用すると、インスタンスタイプと予想使用量に基づいた月次見積もりを確認できます。

*オンデマンド EC2 Linux インスタンス料金に基づきます。

引用元: https://aws.amazon.com/jp/cloud9/pricing/ (参照 2022/04/12)


構築方法

AWS Cloud9環境を作成

AWS Cloud9にアクセス

https://ap-northeast-1.console.aws.amazon.com/cloud9/home/product

Create environmentをクリック

名前と説明を入力

AWS Cloud9 開発環境の設定

Network settings > Subnet はパブリックサブネットを選択してください。

作成されるリソースを確認してCreate environmentをクリック

数分待つと環境が立ち上がります。

Terraformをインストール

yum-utilsをインストール

bash
sudo yum install -y yum-utils

公式のHashiCorpリポジトリを追加

bash
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo

Terraformをインストール

bash
sudo yum -y install terraform

動作確認

bash
terraform --version

参考リンク

コメントを残す

メールアドレスが公開されることはありません。