(この記事は続きです)
下記記事を参考にさせていただき、dockerで環境構築してデプロイまでもっていきました。
多分何度も作り直すことになると思ったので、コピペするだけでスムーズに作れるように
バージョン情報を自分用に合わせて記事に残させていただきました。
※内容は下記記事とほとんど変わらないです。
▼参考にさせていただいた記事▼
バージョン情報
Ruby 3.0.0
Rails 6.1.4
MySQL 5.7
Nginx 1.19.10
前提
AWSにアカウント作成済
docker hubにアカウント作成済
docker インストール済
VPC
VPC
VPC → VPC → VPCを作成
項目 | 値 |
---|---|
名前タグ | remote-work-space-vpc |
IPv4 | 10.0.0.0/16 |
IPv6 | なし |
テナンシー | デフォルト |
サブネット
VPC → サブネット → サブネットを作成 × 3つ
項目 | 値 |
---|---|
VPC ID | remote-work-space-vpc |
サブネット名 | remote-work-space-subnet-public |
アベイラビリティーゾーン | ap-northeast-1a |
IPv4 | 10.0.0.0/20 |
項目 | 値 |
---|---|
VPC ID | remote-work-space-vpc |
サブネット名 | remote-work-space-subnet-private01 |
アベイラビリティーゾーン | ap-northeast-1a |
IPv4 | 10.0.64.0/20 |
項目 | 値 |
---|---|
VPC ID | remote-work-space-vpc |
サブネット名 | remote-work-space-subnet-private02 |
アベイラビリティーゾーン | ap-northeast-1c |
IPv4 | 10.0.80.0/20 |
インターネットゲートウェイ
VPC → インターネットゲートウェイ → インターネットゲートウェイの作成
→ 作成 → (選択状態で)アクション → VPCへアタッチ
項目 | 値 |
---|---|
名前タグ | remote-work-space-igw |
VPC | remote-work-space-vpc |
ルートテーブル
VPC → ルートテーブル → ルートテーブルを作成
→ 作成 → (選択状態で)ルート → ルートの編集 → ルートの追加
→ (選択状態で)サブネットの関連付け → サブネットの関連付けの編集
項目 | 値 |
---|---|
名前タグ | remote-work-space-rt-public |
ルートの編集
ターゲットは「Internet Gateway → igw-0xxxxx(remote-work-space-igwのタグ名)」を選択
対象 | 送信先 | ターゲット |
---|---|---|
local | 10.0.0.0/16 | Local |
外部 | 0.0.0.0/0 | remote-work-space-igw |
サブネットの関連付け
名前 |
---|
remote-work-space-subnet-public |
セキュリティグループ
VPC → セキュリティグループ → セキュリティグループを作成
・アウトバウンドルールは設定しなくて良い
項目 | 値 |
---|---|
セキュリティグループ名 | remote-work-space-sg-ec2 |
説明 | for ec2 |
VPC | remote-work-space-vpc |
インバウンドルール | タイプ:SSH ソース:0.0.0.0/0 |
インバウンドルール | タイプ:HTTP ソース:0.0.0.0/0 |
インバウンドルール | タイプ:HTTPS ソース:0.0.0.0/0 |
EC2
EC2 → インスタンス → インスタンスを起動
→ (「確認と作成」ではなく「次のステップ」ボタンを押すこと) → 起動 → キーペアダウンロード → インスタンスの作成(数分かかる)
・下記の他はデフォルトの設定にしておく
・セキュリティーグループは「既存のセキュリティグループを選択する」で、defaultとremote-work-space-sg-ec2にチェック
・キーペアは「新しいキーペアの作成」で「remote-work-space-ec2」を入力し、キーペアを~/Downloadsフォルダにダウンロード
項目 | 値 |
---|---|
Amazonマシンイメージ | Amazon Linux2 AMI |
インスタンスタイプ | t2.micro |
ネットワーク | remote-work-space-vpc |
サブネット | remote-work-space-subnet-public |
自動割り当てパブリックIP | 有効 |
EBSサイズ(GiB) | 20 |
タグ | Name:remote-work-space-ec2 |
セキュリティグループ | default + remote-work-space-sg-ec2 |
キーペア名 | remote-work-space-ec2 |
動作確認
※キーペアはremote-work-space-ec2.pemとして、~/Downloadsフォルダにダウンロードしたと仮定する
EC2 → インスタンス → (選択状態で)詳細 → パブリックIPv4アドレス をコピー
$ ls ~/Downloads # remote-work-space-ec2.pemがあるか確認
$ mv ~/Downloads/remote-work-space-ec2.pem ~/.ssh/
$ chmod 700 ~/.ssh/remote-work-space-ec2.pem
$ ssh -i ~/.ssh/remote-work-space-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 |
グループ名 | remote-work-space-db-pg |
説明 | remote-work-space parameter group |
オプショングループ
項目 | 値 |
---|---|
グループ名 | remote-work-space-db-og |
説明 | remote-work-space option group |
エンジン | mysql |
メジャーエンジンバージョン | 5.7 |
サブネットグループ
RDS → サブネットグループ → サブネットグループの作成
・remote-work-space-subnet-private01 ・・・ 10.0.64.0/20
・remote-work-space-subnet-private02 ・・・ 10.0.80.0/20
項目 | 値 |
---|---|
グループ名 | remote-work-space-db-subnet |
説明 | remote-work-space db subnet |
VPC | remote-work-space-vpc |
アベイラビリティゾーン | ap-northeast-1a + ap-northeast-1c |
サブネット | remote-work-space-subnet-private01 + remote-work-space-subnet-private02 |
データベース
RDS → データベース → データベースの作成(作成から起動まで約10分かかる)
・下表の他はデフォルトの設定にしておく
・DBパラメータグループとオプショングループは「追加設定」を開くと選択できる
項目 | 値 |
---|---|
作成方法 | 標準作成 |
エンジンのタイプ | MySQL |
バージョン | 5.7.33 |
テンプレート | 無料利用枠 |
DBインスタンス識別子 | remote-work-space-db |
マスターユーザー名 | admin |
マスターパスワード | admin_password |
DBインスタンスクラス | db.t2.micro |
Virtual Private Cloud | remote-work-space-vpc |
サブネットグループ | remote-work-space-db-subnet |
パブリックアクセス可能 | なし |
既存のVPCセキュリティグループ | default |
データベース認識オプション | パスワード認証 |
最初のデータベース名 | (空欄) |
DBパラメータグループ | remote-work-space-db-pg |
オプショングループ | remote-work-space-db-og |
動作確認
RDS → データベース → remote-work-space-dbを選択 → 接続とセキュリティ → エンドポイントをコピー
$ ssh -i ~/.ssh/remote-work-space-ec2.pem ec2-user@xxx.xxx.xxx.xxx # EC2のパブリックIPv4アドレス
[ec2]$ sudo yum -y install mysql
[ec2]$ mysqladmin ping -u admin -p -h remote-work-space-db.xxxxxxxxxxxx.ap-northeast-1.rds.amazonaws.com -p # RDSのエンドポイント
Enter password: admin_password
[ec2]$ exit
mysqld is alive が返ってくればOK
デプロイ編へ続く
https://qiita.com/asami___t/items/a54fc6a7f1f9a8571b14