Terraformに興味があり、とりあえず触ってみようと思ったので、
メモとして環境構築した内容を残しておこうと思います
前提
- Windows10上にTerrafrom実行環境を構築します
※WSLを利用しません - AWS上にリソースを作成する想定です
- Terraformバージョン:1.4.0
- AWS CLIバージョン:2.11.2
Terrafromとは
HashiCorp社が提供するIaC(Infrastructure as Code)ツールです。
マルチクラウドに対応しており、インフラ構成をコードで宣言、管理できるようになります。
大きなメリットとしては2つ
- 冪等性
誰が、どの環境で、何度実行しても同様のインフラ環境の構築ができます。 - 自動化
環境構築を自動で行えるため、人の手を極力減らすことができます。
CI/CDとの相性がいいため、コード修正→テスト→デプロイといったフローを構築することができます。 - ドキュメントの代わりになる
インフラ構成がコード化されているため、Terrafromのファイル自体がドキュメントになります。
注意点として、Terrafromはインフラ構成のみ管理できるツールです。
サーバ内の設定を管理したい場合は、ChefやPuppetといった構成管理ツールを利用する必要があります。
環境構築
Terraformインストール
公式サイトからインストールをダウンロードする。
ダウンロードしたzipファイルを回答し、任意の場所へ格納します。
わたしは、C直下のbinディレクトリを作成し、そこに格納しました。
Pathを通して、Powershellを開き以下コマンドを実行してバージョン情報が表示されたらOKです。
terraform -v
AWS CLIインストール
事前にAWSコンソールにログインし、IAMのアクセスキーを発行します。
わたしは、terraformユーザは新規に作成し、AdministratorAccessを付与しました。
(実際に本番利用する際は、最小限の権限のみ付与するようにしましょう。)
Powershellを開き以下コマンドを実行します。
msiexec.exe /i https://awscli.amazonaws.com/AWSCLIV2.msi
Powershellを再起動し、以下コマンドを実行してバージョン情報が表示されたらOKです。
aws --version
CLIからAWSリソースへアクセスするためにIAMクレデンシャルの設定を行います。
Powershellで以下コマンドを実行し、先程発行したアクセスキー、シークレットキー、デフォルトリージョン、出力形式の設定を行います。
わたしは、デフォルトリージョンは東京(ap-northeast-1)、出力形式はNone(json)としました。
aws configure
試しに以下IAMユーザ一覧を取得するコマンドを実行して、一覧が返却されたらOKです。
aws iam list-users