【Terraform/AWS】【入門編1】環境準備

# はじめに
本記事は、AWS初心者でIaCに挑戦してみたい方向けに導入～コード実行までをまとめた内容となります。
今回は、Windows11環境にTerraformを動作させる準備編となります。

- 記事構成
<cite><B><font size="1">[①【Terraform/AWS】【入門編1】環境準備](https://qiita.com/rittan_girla/items/eefc45c1f9dd0a1761fa/)</B></font></cite><B>　★本記事</B>
<cite><font size="1">[②【Terraform/AWS】【入門編2】tfファイル・Terraformコマンドについて](https://qiita.com/rittan_girla/items/7dbd9a9da842ccbf8508/)</font></cite>
<cite><font size="1">[③【Terraform/AWS】【入門編3】フォルダ構成と各ファイルの役割について](https://qiita.com/rittan_girla/items/37458a11c14dacce9ca0/)</font></cite>
<cite><font size="1">[④【Terraform/AWS】【入門編4】モジュールについて](https://qiita.com/rittan_girla/items/81077f1493609eb7a6ca/)</font></cite>

# Terraformとは
HashiCorp社が提供しているインフラストラクチャ自動化(IaC)ツールです。
簡単に言うと、コードを実行するだけでインフラ(サーバやネットワーク、ストレージ等)の構築ができるツールです。
AWSではGUI(ブラウザのコンソール画面)で文字を入力したり、ボタンをクリックしながら環境を構築していくことはできます。しかし、Terraformを使えばコード一つ実行するだけで作成ができるため、環境構築の時間が短縮され、オペレーションミスを防ぐことが可能です。
また、コードの型ができてしまえば、コードを使いまわすこともできるため、開発時間は大幅に短縮することができます。

※詳細は公式サイトをご確認ください

https://www.terraform.io/

# 開発環境
- Windows 11 Home
- メモリ　16GB
- CPU　4コア

※同環境でない場合、本記事とは異なる動作等が発生する可能性があります。
※本記事はWindows向けとなりますので、Mac、Linux環境には当てはまらない部分があります。

# 1. AWS環境準備
まずはAWS環境を準備していきます。
必要な設定は下記の通りです。
- AWSアカウント
- IAMユーザー
- AWS CLI
- アクセスキー

※参考

https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli

## 1-1. AWSアカウント作成

下記を参考にAWSアカウントを作成してください。

https://aws.amazon.com/jp/register-flow/

## 1-2. IAMユーザー作成
①作成したアカウントにルートユーザーでログインします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/c57468c5-5bcb-2901-19a7-4f0de20e6e78.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/77e268e5-e91c-807d-4344-5b03e4f7630c.png)

②検索バーに【IAM】と入力して、サービス欄に表示された【IAM】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/27976278-e343-cf4d-3275-5a755a1fc21e.png)

③左ペイン【▼アクセス管理】＞【ユーザ】をクリックして、【ユーザーの作成】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/44d599c5-97f0-9240-d93f-1025801f6a82.png)

④下記を入力して、【次へ】を押下します。
1. ユーザー名：任意
2. AWSマネジメントコンソールへのユーザーアクセスを提供する：☑
3. IAMユーザーを作成します
4. コンソールパスワード：任意（本来は自動作成で次回ログイン時変更が望ましい）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/d96b1957-a84b-f311-9b19-d58f0683b6ea.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/9d923e24-6b2b-7edf-5442-60471b9f3964.png)

⑤下記を設定して、【次へ】を押下します。
1. 許可のオプション：ポリシーを直接アタッチする
2. 許可ポリシー：AdministratorAccess
※組織で利用する場合はグループを作成した方が管理が容易になりますが、個人なので直接アタッチしています

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/6acf8604-3c69-3ffd-9e0f-1304b9c55c47.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/49a962e2-bfb3-9916-a12b-40e0fedb0737.png)

⑥設定に問題がないことを確認して、【ユーザーの作成】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/20fb6bbb-b449-e5da-9520-f2f3b55c4ca3.png)

⑦作成されると下記のように表示されます。
　記載されているコンソールサインインURLにアクセスします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/573af875-43c7-9869-4cb6-c8be2b31023c.png)

⑧先ほど設定したユーザー名とパスワードを入力して【サインイン】を押下します。
　※⑦のコンソールサインインURLでアクセスすればアカウントIDは自動で入力されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/3af310a6-9aa4-cc0e-f49b-629cf6381859.png)

⑨ログインできればIAMユーザーの作成は完了です。
　※リージョンが東京以外になっている場合は、東京に変更しておきましょう。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/4c1a55f0-3233-5a9e-8781-8a368b926f94.png)

## 1-3. アクセスキー作成
Terraformを使うためにはAWSへの認証をするためのアクセスキーが必要になります。
先ほど作成したIAMユーザからアクセスキーを発行しましょう。
※ルートユーザーは使用しないようにしてください。

①AWSコンソールにて、右上のユーザー名をクリック⇒【セキュリティ認証情報】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/2629e267-599f-c0d6-82b9-12558887ef60.png)

②下にスクロールして、アクセスキー欄が表示されたら、【アクセスキーを作成】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/cc230ee3-7750-5362-0caa-0ff601620000.png)

③下記を設定して、【次へ】をクリックします。
- コマンドラインインターフェース(CLI)
- 上記のレコメンデーションを理解し、アクセスキーを作成します。：☑

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/3faac127-1fd1-63fa-5e73-3590b834008a.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/fa3ceb8a-761e-e40c-6b9a-1773a90f3037.png)

④説明タグ値に任意の値を設定して、【アクセスキーを作成】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/2d665c20-b24e-e6d0-c0fb-4fb72004bf20.png)

⑤アクセスキーとシークレットキーを控えて、【完了】を押下します。
　※【.csvファイルをダウンロード】を押下すると、アクセスキー情報をCSVファイルで取得できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/900f6fa0-5569-6ecd-9d4e-ddee4183fe3c.png)

以上でアクセスキー作成が完了となります。

## 1-4. アクセスキー情報登録
アクセスキー情報が取得できたら、環境変数を設定します。

①Win＋Rキーでファイル名を指定して実行を開き、【sysdm.cpl】と入力して、【OK】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/8224bf66-076b-3667-3a13-dccff944ecdd.png)

③システムのプロパティ画面が開いたら、上部の【詳細設定】タブを選択し、【環境変数】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/21d367ef-2c0e-b4a1-c8c1-157b841c2ddc.png)

④【新規】を押下して、環境変数を設定したら、【OK】を押下します。
| 変数 | 値 |
| --- | --- |
| AWS_ACCESS_KEY_ID | アクセスキー |
| AWS_SECRET_ACCESS_KEY | シークレットキー |
| AWS_DEFAULT_REGION | ap-northeast-1<br />※本記事では東京リージョンを使用します |

<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/92e9dda4-544f-ea02-92ec-ccf57718dc8b.png">

以上でAWS認証に使用する環境変数設定は完了です。

# 1-5. AWS CLIインストール

インストール方法はいくつかありますが、本記事では一番スタンダードなインストーラでのインストール手順とします。

※下記のWindows向けの手順を参考にします。

https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html

①下記リンクから、インストーラをダウンロードします。

https://awscli.amazonaws.com/AWSCLIV2.msi

②インストーラを実行し、ウィザードが表示されたら、【Next】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/9ee04c05-baad-195b-06b5-a1c40d9f61b1.png)

③【I accept the terms in the License Agreement】にチェックして、【Next】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/0c6f6d6c-81ff-cac5-a751-7e74199ebf91.png)

④【Next】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/1f27f971-402f-08b1-e9ff-de41800ec10d.png)

⑤インストールが完了するまで待機します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/caa73adb-2ad9-4772-a757-19a803e8c39e.png)

⑥【Finish】を押下して、ウィザードを閉じます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/1fec4b0b-c896-e03e-6fe9-a1ea2786d289.png)

⑦コマンドプロンプトを起動して、下記を実行します。
　※バージョンが表示されればインストールできています。

【実行コマンド】
```
aws --version
```
【実行結果】
```
aws --version
aws-cli/2.15.19 Python/3.11.6 Windows/10 exe/AMD64 prompt/off
```

以上でAWS CLIのインストールは完了です。

# 2. Terraform環境準備

AWS環境準備ができたので、Terraformの環境準備を行います。

※参考

https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli

# 2-1. Terraformインストール

①下記サイトから、64bit版（AMD64）をダウンロードします。

https://developer.hashicorp.com/terraform/install#Windows

②ダウンロードしたzipファイルを解凍して、terraform.exeファイルを任意のフォルダに格納します。
　※ホームディレクトリ上(C:\Users\ユーザ名\terraform\)等、分かる場所にあれば問題ありません。

# 2-2. 環境変数設定
パスを指定しなくてもterraformコマンドが実行できるようにします。

①Win＋Rキーでファイル名を指定して実行を開き、【sysdm.cpl】と入力して、【OK】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/8224bf66-076b-3667-3a13-dccff944ecdd.png)

②システムのプロパティ画面が開いたら、上部の【詳細設定】タブを選択し、【環境変数】を押下します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/21d367ef-2c0e-b4a1-c8c1-157b841c2ddc.png)

③システム環境変数の【Path】を選択して、【編集】を押下します。
<img width="600" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/4c84a465-adc0-3301-a027-2c894e5b72f9.png">

④【新規】を押下して、先ほど格納したフォルダを記載して、【OK】を押下します。
　※ホームディレクトリ上にterraformフォルダを作成した場合は、「C:\Users\ユーザ名\terraform\」を入力
<img width="500" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3698496/47dc3525-aff4-f0b6-a606-c98f0f36adee.png">

# 2-3. インストール確認
①PowerShellを起動して、下記コマンドを実行します。
 ※バージョンが表示されていれば問題ありません。

【実行コマンド】
```powershell
terraform -version
```
【実行結果】
```powershell
PS C:\WINDOWS\system32> terraform -version
Terraform v1.7.3
on windows_amd64
```
以上でTerraformの環境準備は完了です。

# 余談
terraformを利用する場合、下記エディタがあると便利です。
コードの編集だけでなく、ターミナルも使えたりするので、作業がしやすくなります。

https://code.visualstudio.com/download

# おわりに

今回はTerraformを動かすための前準備の手順を記載しました。
AWS CLIやTerraformのインストール手順はいくつか方法がありますが、一番スタンダードな方法をご紹介してみました。
AWS環境については、無料枠で登録していますが、一部機能でとある上限までが無料という枠のため、完全無料ではないのでご注意ください。（※詳細は公式サイトでご確認ください。）

次回はterraformコマンドの解説をします。
最後までお読みいただきありがとうございました。