terraform AWS環境構築 事前準備

AWS

AWSRails + Nginxな環境をTerraformで構築してみようと思います。

はじめに

本連載で一つずつインフラを構築していきます。

ドメインのhttps化したり、ECSを使用したコンテナオーケストレーションを用いてアプリケーションをデプロイします。

この記事では、インフラ構築の事前準備をします。

環境は以下です。

OS Cataline 10.15.6
Terraform 0.14.4

 

 

 

terraformが初めて方はこちらで簡単に説明していますので見てみてください。
Terraform入門 AWSにEC2を作成してみよう

インストール方法は → Terraform Macにインストールする方法

連載一覧

やること

以下の実装を行います。

  • IAMユーザの作成
  • ドメイン設定
  • tfstate用のbackend作成

事前準備

今回使用する作業フォルダを作成しておきましょう。

$ mkdir terraform
$ cd terraform

IAMユーザ作成

terraformでインフラを構築できる権限持ちのIAMユーザの作成を行います。

AWSIdentity and Access Management (IAM)にてユーザの作成をします。

ユーザ名の入力、「プログラムによるアクセス」にチェックします。

「既存のポリシーを直接アタッチ」から「AdministratorAccess」ポリシーを選択します。

タグは特に入力せず進みます。

確認して「ユーザーの作成」を選択します。

「.csv のダウンロード」を選択してアクセスキー・シークレットキーを控えておきましょう。

aws cliにてプロファイルを設定しておきます。

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

ドメイン設定

今回は、テストですので無料で取得しましょう。

こちらで取得できます。
https://www.freenom.com/ja/index.html?lang=ja

ドメイン名によっては、取得できないので注意しましょう。

ドメイン取得

取得したいドメインを入力しましょう。

好きなURLの「今すぐ入手!」をクリック。

「チェックアウト」をクリック。

無料で12ヶ月使えるので、「12 Months @ FREE」を選択しておきます。

そしたら、「Continue」をクリックします。

「I have read and agree to the Terms & Conditions」にチェック✓

「Complete Order」をクリックして、購入しましょう!

DNSサーバー設定

AWS Route53 設定

取得したドメインをAWSで使用できるように設定をします。

AWSRoute53にいきましょう。

そして、「ホストゾーン作成」を選択し「開始」をクリックします。

取得したドメインを入力。

入力したら「ホストゾーンの作成」をクリックして作成します。

作成したドメインをクリックしたら、「ホストゾーンの詳細」をクリックします。

こちらの4つのネームサーバーを控えておきます。

ドメインのネームサーバー設定

freenomに戻って、AWSのネームサーバーをドメインを設定しましょう。

「Services」から「My Domains」をクリック。

「Manage Domain」をクリック。

「Management Tools」から「Nameservers」をクリック。

そして、「Use custom nameservers (enter below)」を選択して、先程控えたネームサーバー4つ全て入力して「Change Nameservers」をクリックしてネームサーバーを適用します。

これで完了です。

backend作成

tfstate管理用にS3バケットとロック用のDynamoDBを作成しておきます。

作成方法はこちらにまとめていますので、ご覧ください。
terraform tfstateファイルを管理する

今回使用する、backend.configは以下です。

bucket         = "terraform-and-rails-remote-state"
key            = "rails_hello/terraform.tfstate"
region         = "ap-northeast-1"
dynamodb_table = "terraform-and-rails-state-lock"
encrypt        = true

terraform/内にenvフォルダを作成して、そこに入れておきましょう。

$ mkdir env
$ touch env/backend.config

おわり

これで、Rails + Nginx な環境をTerraformで構築する事前準備が完了しました!

お疲れさまでした。

次回は、ネットワークの環境構築をします!

リンクはこちら→ terraform AWS環境構築(Rails + Nginx) 第1回 -ネットワーク環境構築編-

コメント

タイトルとURLをコピーしました