本記事では、
- terraformでAWSを使用するには何が必要なの?
- terraformは、どんな環境で実行できるのかな?
と、こういった疑問に答えます。
terraformでAWSを作成する場合、以下2点が必要です!
・terraformを実行する環境 ・IAMユーザ(又はIMAロール)
次の項目では、この2点について説明します。
[st_toc]
terraformを実行する環境について #
Terraformは、いろんなOS(macOS、Window、Linux等)で使用できます。
また、公式からコンテナイメージ(hashicorp/terraform)も出していますね。
今回は、Linux環境でのやり方を調べてみました。
terraformの実行を自動化しないの? #
terraformは、GitHub Actions、AWS CodeBuildで自動化して 利用することも可能です。
そのため、CI/CDでAWS環境を構築する際に、terraformが 利用されていたりします。
CI/CD環境の構築はterraform以外の知識も必要になりますよね。
はじめてterraformを使用する際には、「コマンドライン→自動化」の 順番で習熟していく方が混乱せずにすみます。
次に、AWSで必要な設定を説明します。
AWS terraformを実行するには? #
AWSを操作するにはterraformからAWSへアクセスする必要があります。
AWSへアクセスするには、IAMユーザ(又はIMAロール)が必要です。
IAMロールは、AWSサービス上に環境がないと利用できませんので 今回はIAMユーザー(シークレットアクセスキー)を使用します。
AWS IAMユーザー(アクセスキー)を作成する #
AWSコンソールにサインインして、IAMユーザを作成します。
公式手順「AWSアカウントでのIAMユーザーの作成(コンソール)」 を参考にIAMユーザを作成します。
※注意 ・アクセス許可の種類は[Programmatic access (プログラムによるアクセス)]を選択 ・ポリシーは、「既存のポリシーを直接アタッチします」で「AdministratorAccess」を選択 ・ユーザ作成後の画面で表示される「アクセスキーID」「シークレットアクセスキー」を メモ又は、CSVファイルをダウンロードしてください。
今回設定したポリシー「AdministratorAccess」はAWSで権限が強いポリシーなので 「アクセスキーID」「シークレットアクセスキー」が漏れてしまうと大変です。
「アクセスキーID」「シークレットアクセスキー」は厳重に管理してください。
なお、ポリシー設計はセキュリティ上とても重要ですが、最初から制限すると エラーが多発して、terraformでの作業が進みません。
まずは、この権限を使用しAWSリソースの作成を行い terraformになれたきたら、ポリシー権限を検討するのがいいでしょう。
terraformの実行環境でAWS CLIを利用できるようにする #
Linux環境でterraformを使用してAWSサービスを作成するには 以下2点の対応が必要です。
・AWS CLIのインストール ・AWS CLIの初期設定
次の項目からこの2点を説明します。
AWS CLIをインストールする #
公式手順の「LinuxでのAWS CLIバージョン2のインストール、更新、アンインストール」でLinux環境へAWS CLIインストールします。
AWS CLIの初期設定 #
AWS CLIの初期設定を公式手順の「aws configureを使用したクイック設定」で行います。
設定値は以下です。
AWS Access Key ID [None]: 作成したiamユーザ名「アクセスキーID」「シークレットアクセスキー」を入力 AWS Secret Access Key [None]:「シークレットアクセスキー」を入力 Default region name [None]: 環境を作成したいリージョン Default output format [None]: json ※このままでOK
別途terraformのコードでリージョン設定しますが、AWS CLIを使用して terraformで作成したリソース確認も行うので、同じリージョンにした方が便利です。
terraformのインストール #
terraformのインストール方法はこちらの記事を参考にしてください。
まとめ #
今回説明した内容は、
- terraformでAWSを作成するには実行環境を選択する
- IAMユーザ作成し「アクセスキーID」「シークレットアクセスキー」をダウンロード
- 実行環境にAWS CLIをインストールし初期設定する
- terraformのインストール
になります。
これでterraformにてAWS環境を作成できる準備が整いました。 次はterraformを使ってAWSリソースを作成してみましょう!