2022.02.27  

【Terraform】AWSでEC2インスタンスを作成する

Terraform,  AWS    

TerraformでEC2インスタンスを作成する方法について記載します。
動画で勉強したい方はこちらをどうぞ。
AWS と Terraformで実現するInfrastructure as Code

前提として以下条件を満たしているものとします。

■端末はMacを使用
■AWS CLIをインストール済み :手順
■AWS IAMでユーザー作成済み(権限: AdministratorAccess)

AWS CLIでconfigureを設定

CLIがインストール済みのMacでawsのユーザープロファイルを設定します。
ユーザー名はなんでも良いですが、AdministratorAccess権限を付与しておきます。
今回ユーザー名はTF_USERとします。
ここで設定したユーザー名はTerraform設定時に利用します。

$ aws configure --profile TF_USER
AWS Access Key ID [None]: 
AWS Secret Access Key [None]: 
Default region name [None]: ap-northeast-1
Default output format [None]: json

コマンドを実行すると、上記の項目を確認されます。
Default region nameはap-northeast-1
efault output formatはjson
を設定しておきます。

aws_access_key_idaws_secret_access_key が分からない場合は次の手順で生成します。

設定がうまくいくとcredentialsファイルに情報が記載されます。

$ cd ~/.aws
$ cat credentials
[TF_USER]
aws_access_key_id = AAAAAAAAAAAAAAAAAAAAAAA
aws_secret_access_key = BBBBBBBBBBBBBBBBBBBBBBBBB

tfenvのインストール

tfenvのインストールします。
tfenvとはTerraformのバージョン管理ツールです。

$ cd ~
$ git clone https://github.com/tfutils/tfenv.git .tfenv

インストールできらたPATHにtfenvの場所を設定します。

$ echo 'export PATH=$PATH:~/.tfenv/bin' >> ~/.bash_profile
$ export PATH=$PATH:~/.tfenv/bin

パスが上手く通ればtfenvコマンドでtfenvのバージョン確認が行えます。

$ tfenv
tfenv 2.2.3

Terraformのインストール

Terraformのインストールを行います。
まず、現在利用できるバージョンを確認します。

$ tfenv list-remote
1.1.6
1.1.5
1.1.4
### 以下略 ###

上記コマンドで出力された最新版のTerraformをインストールします。

$ tfenv install 1.1.6

インストールできたら以下のコマンドでTerraformの利用バージョンを指定します。

$ tfenv use 1.1.6

terraformコマンドが利用できるか確認します。

$ terraform version
Terraform v1.1.6

terraformコードの作成

任意の場所にディレクトリを作成し、main.tfファイルを作成します。

[任意のフォルダ]
  └── main.tf

次にmain.tfを設定します。

main.tf
provider "aws" {
    profile = "TF_USER"
    region = "ap-northeast-1"
}

resource "aws_instance" "test" {
  ami = "ami-xxxxxxxxxxxxxxx"
  instance_type = "t2.micro"
}

profileregionにはそれぞれaws configure list --profile <ユーザー名>コマンドで設定したユーザー名とDefault region nameを設定してくさださい。

amiはAWSの画面でEC2→インスタンス→インスタンスの起動 の順にクリックすると、次の赤枠部分で確認できます。
instance_typeは無料枠のt2.microを設定します。

terraformを始めて実行する場合は次の初期化コマンドを実行します。

$ terraform init

初期化コマンドが上手くいったら次のコマンドでmain.tfを実行します。
実行すると最後にEnter a value:が表示されるので、yesを入力してEnterを押すとEC2の作成が始まります。

$ terraform apply
### メッセージ中略 ###

Enter a value: yes

AWSの画面でEC2→インスタンスを確認すると、terraformで定義したEC2が作成されていることを確認できます。



参考

コメント
現在コメントはありません。
コメントする
コメント入力

名前 (※ 必須)

メールアドレス (※ 必須 画面には表示されません)

送信