本記事は、開発環境のCloud9からAWSサービスを連携してデプロイすることをゴールにした連載記事です。

Railsアプリをデプロイしよう!!の全体目次はこちらをご覧ください。

本編では、AWS環境構築を行います。

VPC※1つ

VPCを作成していきます。

AWSサービス: VPC

下記にて設定します。
名前タグ:VPC_for_DC(任意の名前)
IPv4 CIDR ブロック:10.0.0.0/16
テナンシー:デフォルト

VPC作成完了です。

サブネット※4つ

VPCの中に、「インターネットから直接通信できる EC2用 のサブネット」と「インターネットから直接通信できない RDS用 のサブネット」を2つずつ作成していきます。
左のメニューからサブネットを選択して作成します。

AWSサービス: VPC

下記のように設定します。

1つめのサブネット
VPC ID:先ほど作成したVPCを指定
サブネットの設定
サブネット名:Subnet_for_DC_public_a(任意の名前)
アベイラビリティーゾーン:ap-northeast-1a
IPv4 CIDR ブロック:10.0.0.0/24

2つめのサブネット
VPC ID:先ほど作成したVPCを指定
サブネットの設定
サブネット名:Subnet_for_DC_public_c(任意の名前)
アベイラビリティーゾーン:ap-northeast-1c
IPv4 CIDR ブロック:10.0.1.0/24

3つめのサブネット
VPC ID:先ほど作成したVPCを指定
サブネットの設定
サブネット名:Subnet_for_DC_private_a(任意の名前)
アベイラビリティーゾーン:ap-northeast-1a
IPv4 CIDR ブロック:10.0.10.0/24

4つめのサブネット
VPC ID:先ほど作成したVPCを指定
サブネットの設定
サブネット名:Subnet_for_DC_private_c(任意の名前)
アベイラビリティーゾーン:ap-northeast-1c
IPv4 CIDR ブロック:10.0.11.0/24

作成完了すると下記の画面に移ります。

インターネットゲートウェイ※1つ

続いて、インターネットゲートウェイを作成します。
左のメニューからインターネットゲートウェイを選択して作成します。

AWSサービス: VPC

下記のように設定します。

名前タグ:Gateway_for_DC(任意の名前)

インターネットゲートウェイ作成完了です。

続いて、VPCと紐付けます。

先ほど作成したVPCを選択してアタッチした後の画面です。

ルートテーブル※2つ

左側のメニューからルートテーブルを選択して作成します。

AWSサービス: VPC

下記のように設定します。

名前:Tabel_for_DC(任意)
VPC:先ほど作成したVPCを選択

作成完了後の画面です。

サブネットの関連付けを行います。対象は、Subnet_for_DC_publicの2つです。

そして、このルートテーブルに対して、「インターネットゲートウェイをルーティングするというルール」を追加します。
下記画像の通り、先ほど作成したルートテーブルを選択した状態で、ルートを編集をクリックします。

ルートを追加をクリックします。

下記にて設定します。

送信先:0.0.0.0/0
ターゲット:「インターネットゲートウェイ」を選択して、先ほど作成したものを選択

更新後の画面です。

もう一つルートテーブルを追加します。

名前:Tabel_for_DC_local(任意)
VPC:先ほど作成したVPCを選択

サブネットの関連付けを行います。対象は、Subnet_for_DC_privateの2つです。

セキュリティグループ※2つ

EC2用とRDS用の2つ作成します。
※後ほど、ALB用で追加で1つ作成します。

左メニューからセキュリティグループ選択して作成します。

AWSサービス: VPC

下記にて設定します。

■EC2用
セキュリティグループ名:Security_ec2_for_DC
説明:Security_ec2_for_DC
VPC:先ほど作成したVPCを選択

そして、インバウンドルールは下記のように設定しました。
1つめ
タイプ:HTTP
プロトコル:自動選択
ポート範囲:自動選択
ソース:0.0.0.0/0
2つめ
タイプ:SSH
プロトコル:自動選択
ポート範囲:自動選択
ソース:自分のグローバルIPアドレス/32

■RDS用
セキュリティグループ名:Security_db_for_DC
説明:Security_db_for_DC
VPC:先ほど作成したVPCを選択

そして、インバウンドルールは下記のように設定しました。
タイプ:MySQL/Aurora
プロトコル:自動選択
ポート範囲:自動選択
ソース:先ほど作成したセキュリティグループ(Security_ec2_for_DC)を指定

セキュリティグループは以上です。

Amazon RDS※1つ

事前準備①(サブネットグループ作成)

既に作成済みのRDS 用のサブネット2つをグループ化します。
左メニューからサブネットグループを選択して、サブネットグループを作成します。

AWSサービス: VPC

下記にて設定します。
名前:SubnetGroup_db_for_DC
説明:SubnetGroup_db_for_DC
VPC:作成したVPCを指定

サブネットを2つ追加します。

作成完了画面です。

事前準備②(パラメータグループの作成)

RDS の MySQL のデフォルト文字コードは latin1 であり,日本語に未対応です。

左メニューからパラメーターグループを選択して作成します。

下記にて設定しました。
パラメータグループファミリー:mysql5.7
グループ名:mysql57-supported-in-ja
説明:parameter group for mysql5.7 supported in ja

作成後、赤枠をクリックします。

赤枠の検索窓へ下記のキーを入力してそれぞれ値を変更します。

キー
character_set_clientutf8
character_set_connectionutf8
character_set_databaseutf8mb4
character_set_resultsutf8
character_set_serverutf8mb4
skip-character-set-client-handshake1

データベースの作成

左メニューからデータベースを選択して作成します。

下記にて設定します。
データベース作成方法を選択:標準作成
エンジンのオプション:MySQL
バージョン:MySQL 5.7.* (*の箇所は最新のものを推奨)
DB インスタンス識別子:dc-db
マスターユーザー名:root
パスワード:*****
DB インスタンスクラス:db.t2.micro(デフォルト指定されているもの)
※下記図の赤枠箇所参照

これでデータベースが出来上がりました。

エンドポイントの確認

後々使用するため、エンドポイントをメモしておきます。

左メニューのデータベースで作成済みのDBを選択します。

赤枠箇所がエンドポイントです。
ちなみに、データベース作成後、少し時間が経過してから表示されます。

本編は以上です。お疲れ様でした。