LoginSignup
1
1

More than 1 year has passed since last update.

【Rails+Docker+AWS】開発環境構築から本番公開まで(2/3 AWSコンソール画面編)

Last updated at Posted at 2021-06-17

(この記事は続きです)
なんだか結構苦労したので、自分の整理のためにも記事におこしました。
初学者でポートフォリオをとりあえず公開したい方は参考になるかもしれません。

完成図

Ruby 2.5.1
Rails 5.2.0
MySQL 5.7
qiita用のインフラ構成図.png

全部で3記事あります。
(1)開発環境構築編 https://qiita.com/obr-note/items/a923e7acf77652a6994e
(2)AWSコンソール画面編 この記事
(3)デプロイ編 https://qiita.com/obr-note/items/44290f2011ad09240129

前置き

本番環境構築はこちらの本を参考にしました
www.amazon.co.jp/dp/4798163430

AWSアカウントは事前に作ってある前提です
https://aws.amazon.com/jp/
リージョンは「アジアパシフィック (東京)ap-northeast-1」にしておきます。
リージョン.png

VPC

VPC

VPC → VPC → VPCを作成

項目
名前タグ webapp-vpc
IPv4 10.0.0.0/16
IPv6 なし
テナンシー デフォルト

サブネット

VPC → サブネット → サブネットを作成 × 3つ

項目
VPC ID webapp-vpc
サブネット名 webapp-subnet-public
アベイラビリティーゾーン ap-northeast-1a
IPv4 10.0.0.0/20
項目
VPC ID webapp-vpc
サブネット名 webapp-subnet-private01
アベイラビリティーゾーン ap-northeast-1a
IPv4 10.0.64.0/20
項目
VPC ID webapp-vpc
サブネット名 webapp-subnet-private02
アベイラビリティーゾーン ap-northeast-1c
IPv4 10.0.80.0/20

インターネットゲートウェイ

VPC → インターネットゲートウェイ → インターネットゲートウェイの作成
→ 作成 → (選択状態で)アクション → VPCへアタッチ

項目
名前タグ webapp-igw
VPC webapp-vpc

ルートテーブル

VPC → ルートテーブル → ルートテーブルを作成
→ 作成 → (選択状態で)ルート → ルートの編集 → ルートの追加
→ (選択状態で)サブネットの関連付け → サブネットの関連付けの編集

項目
名前タグ webapp-rt-public

ルートの編集

ターゲットは「Internet Gateway → igw-0xxxxx(webapp-igwのタグ名)」を選択

対象 送信先 ターゲット
local 10.0.0.0/16 Local
外部 0.0.0.0 webapp-igw

サブネットの関連付け

名前
webapp-subnet-public

セキュリティグループ

VPC → セキュリティグループ → セキュリティグループを作成
・アウトバウンドルールは設定しなくて良い

項目
セキュリティグループ名 webapp-sg-ec2
説明 for ec2
VPC webapp-vpc
インバウンドルール タイプ:SSH ソース:0.0.0.0/0
インバウンドルール タイプ:HTTP ソース:0.0.0.0/0
インバウンドルール タイプ:HTTPS ソース:0.0.0.0/0

EC2

EC2 → インスタンス → インスタンスを起動
→ (「確認と作成」ではなく「次のステップ」ボタンを押すこと) → 起動 → キーペアダウンロード → インスタンスの作成(数分かかる)
・下記の他はデフォルトの設定にしておく
・セキュリティーグループは「既存のセキュリティグループを選択する」で、defaultとwebapp-sg-ec2にチェック
・キーペアは「新しいキーペアの作成」で「webapp-ec2」を入力し、キーペアを~/Downloadsフォルダにダウンロード

項目
Amazonマシンイメージ Amazon Linux2 AMI
インスタンスタイプ t2.micro
ネットワーク webapp-vpc
サブネット webapp-subnet-public
自動割り当てパブリックIP 有効
EBSサイズ(GiB) 20
タグ Name:webapp-ec2
セキュリティグループ default + webapp-sg-ec2
キーペア名 webapp-ec2

ec2.png

動作確認

※キーペアはwebapp-ec2.pemとして、~/Downloadsフォルダにダウンロードしたと仮定する
EC2 → インスタンス → (選択状態で)詳細 → パブリックIPv4アドレス をコピー
ec209.png

$ ls ~/Downloads # webapp-ec2.pemがあるか確認
$ mv ~/Downloads/webapp-ec2.pem ~/.ssh/
$ chmod 700 ~/.ssh/webapp-ec2.pem
$ ssh -i ~/.ssh/webapp-ec2.pem ec2-user@xxx.xxx.xxx.xxx # パブリックIPv4アドレス
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
[ec2]$ exit

ec2にログイン出来たらOK

RDS

パラメータグループ

RDS → パラメータグループ → パラメータグループの作成

項目
パラメータグループファミリー mysql5.7
グループ名 webapp-db-pg
説明 webapp parameter group

オプショングループ

RDS → オプショングループ → オプショングループの作成

項目
グループ名 webapp-db-og
説明 webapp option group
エンジン mysql
メジャーエンジンバージョン 5.7

サブネットグループ

RDS → サブネットグループ → サブネットグループの作成
・webapp-subnet-private01 ・・・ 10.0.64.0/20
・webapp-subnet-private02 ・・・ 10.0.80.0/20

項目
グループ名 webapp-db-subnet
説明 webapp db subnet
VPC webapp-vpc
アベイラビリティゾーン ap-northeast-1a + ap-northeast-1c
サブネット webapp-subnet-private01 + webapp-subnet-private02

データベース

RDS → データベース → データベースの作成(作成から起動まで約10分かかる)
・下表の他はデフォルトの設定にしておく
・DBパラメータグループとオプショングループは「追加設定」を開くと選択できる

項目
作成方法 標準作成
エンジンのタイプ MySQL
バージョン 5.7.xx
テンプレート 無料利用枠
DBインスタンス識別子 webapp-db
マスターユーザー名 admin
マスターパスワード admin_password
DBインスタンスクラス db.t2.micro
Virtual Private Cloud webapp-vpc
サブネットグループ webapp-db-subnet
パブリックアクセス可能 なし
既存のVPCセキュリティグループ default
データベース認識オプション パスワード認証
最初のデータベース名 (空欄)
DBパラメータグループ webapp-db-pg
オプショングループ webapp-db-og

動作確認

RDS → データベース → webapp-dbを選択 → 接続とセキュリティ → エンドポイントをコピー
rds.png

$ ssh -i ~/.ssh/webapp-ec2.pem ec2-user@xxx.xxx.xxx.xxx # EC2のパブリックIPv4アドレス
[ec2]$ sudo yum -y install mysql
[ec2]$ mysqladmin ping -u admin -p -h webapp-db.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p # RDSのエンドポイント
Enter password: admin_password
[ec2]$ exit

mysqld is alive が返ってくればOK

デプロイ編へ続く
https://qiita.com/obr-note/items/44290f2011ad09240129

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1