経験浅いながら、Terraformを実際に動かしてみたので参考になればと思いTerraformを使う環境構築から書いてみることとします。
自己紹介
・年齢は25歳、エンジニア歴3年です。
・都内のSier企業でエンジニアをやっています。
・主にSASE基盤、Azureを触っております。
・パブリッククラウドとセキュリティに興味あり。
目次
1.概要
2.IAMユーザーのアクセスキー作成
3.AWS CLIのインストール
4.AWS CLI認証情報の設定
5.Terraformのインストール
1.概要
Terraformを利用して、設定ファイルからインフラ構築、変更、管理を行う為、まずはTerraformを実行できる環境を作ります。
環境
・AWS
・EC2インスタンス(Linux):Amazon Linux2
・インスタンスサイズ:t2.micr
前提
・IAMユーザーは作成済みで、「AdministratorAccess」ポリシーが適応されています。
準備の流れ
①IAMユーザーのアクセスキー作成
②AWS CLIのインストール
③AWS CLI認証情報の設定
④Terraformのインストール
2.IAMユーザーのアクセスキー作成
【概要】
・AWSのアクセスキーとは認証情報のことで、IAMユーザーの長期的認証を指す
AWSのアクセスキー認証によって、外部からのAWSのサービスへのアクセスが可能となる
・Teraformを使用するには、IAMユーザーとアクセスキーが必要となる
【注意点】
・ユーザー名、パスワードが不要でプログラムにアクセスできるようになる為、アクセスキー管理の徹底が必要となる。
【手順】
・まずは、AWSコンソールにIAMユーザーでログインします。
・ログイン後、コンソール画面右上の「IAMユーザー名@AWSアカウント名」▼を押して「セキュリティ認証情報」をクリックします。
・「自分の認証情報」の画面に遷移される為、下にスクロールし、「アクセスキーを作成」をクリック。
・「アクセスキーを取得」の画面が表示される為、情報を保存しておく。
※CSVで資格情報がダウンロードできるので、しておきます。
3.AWS CLIのインストール
【概要】
・AWS CLIとは、AWSのサービスをコマンドラインから制御・管理するツールです。
・Terraformは実行されると、AWS CLIを使用してAWSの現行リソース状態と設定ファイルに定義する状態を比較する為、AWS CLIがAWSの情報取得する用途で利用されます。
【手順】
・Terraformを動かす、EC2インスタンスにSSHでログインします。
※デフォルトのユーザーIDは「ec2-user」で秘密鍵で認証
・対象のインスタンスにログイン後、インスタンスにAWS CLIをインストールします。
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
・インストールが正常にされたか確認します。
aws --version
出力結果にて、[aws-cli/]の後に2.~となっていればAWS CLIバージョン2がインストールできていることになります。
4.AWS CLIの認証情報の設定
【概要】
インストールしたAWS CLIを利用するAWSアカウントに紐づける(認証)する必要がある為、設定をします。
【手順】
・AWS CLIの初期の接続情報を確認
aws configure list
※初期状態ではほぼセットされていないかと思います。
・アクセスキーを aws cli の認証情報と紐付ける
aws configure
対話型で[2.IAMユーザーのアクセスキー作成]にて作成したアクセスキーの情報(csvで出力した)を入力します。
・登録した情報は~/.aws/credentials
に記載されている為、念の為cat
コマンドで確認します。
cat credentials
・AWS CLI認証情報が正しく設定されているか確認します。
aws iam get-user
自分のIAMユーザーの情報が確認できれば、認証成功です。
5.Terraformインストール
【概要】
・TerraformをEC2インスタンスにインストールします。
・インストール方法は2つあります。
①Terraformをコマンドで直接インストールする。(公式:https://developer.hashicorp.com/terraform/tutorials/aws-get-started/install-cli)
②tfenvツールを利用してインストールする。(https://zenn.dev/takesaya/articles/terraform_install)
・TfenvはTerraformのバージョンの切り替えを容易に行えるツールで、チーム単位で開発する際はバージョン管理が重要な為、こちらの方法がよさそうですが、今回は個人で利用する為、①の方法を採用します。
【手順】
・公式ドキュメントから、Amazon LinuxディストリビューションでTerraformをインストールする手順を確認。
・Terraformをインストールします。
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/AmazonLinux/hashicorp.repo
sudo yum -y install terraform
・Terraformコマンドを入力し、Terraformが正常にインストールされていることを確認します。
terraform –help
terraform -v
※出力結果でエラーがなければ、Terraformコマンドが利用できるようになってるので、インストール成功です。
まとめ
Terraformが利用できる事前準備はこれにて完了です。
ここから、設定ファイルを実際に作成し、AWSリソースを作っていきたいと思います。