シンジです。
最近インフラ周りを勉強しているんですが、ドメインの設定方法とか証明書とか、わかないことがたくさんでした。
そんな中、ようやくAWSで環境構築ができたため、メモとして残します。
ドメインや証明書などもすべてAWSの機能(Route53、ACM)を利用。
システム全体

ネットワークの設定
リージョン |
CIDR IPv4 |
インターネットゲートウェイ |
東京 |
192.168.0.0/16 |
アタッチ |
サブネット
名前(Name) |
AZ |
環境 |
CIDR IPv4 |
自動割当 |
public-api-1a |
1a |
Public |
192.168.10.0/24 |
あり |
public-api-1d |
1d |
Public |
192.168.20.0/24 |
あり |
踏み台 |
1a |
Public |
192.168.50.0/24 |
あり |
ルートテーブル
名前(Name) |
関連付けサブネット |
ルート |
メイン |
public-table |
public-api-1a,pbulic-api-1d |
192.168.0.0/16 -> local, 0.0.0.0.0/0 -> インターネットゲートウェイ |
いいえ |
セキュリティグループ
名前 |
インバウンド |
アウトバウンド |
API |
SSH 22 192.168.0.0/16, カスタム 3000 0.0.0.0/0 |
すべて |
DB |
PostgreSQL 5432 192.168.0.0/16 |
すべて |
踏み台 |
SSH 22 0.0.0.0/16 |
すべて |
ロードバランサー |
カスタム 3000 0.0.0.0/0 |
すべて |
フロントエンドの設定
S3の設定
- Webアプリケーションをアップロードする
- プロパティの「静的ウェブサイトホスティング」をONにする
- 「パブリックアクセスをすべてブロック」をOFFにする
CloudFrontの設定
- 「General」の設定
- 「Alternate Domain Names」を取得したドメインにする
- 「Custom SSL Certificate (example.com):」に設定後、対象の証明書を設定する。
- 「Default Root Object」を「index.html」に設定する
-「Behaviors」の設定
- 「Viewer Protocol Policy」を「Redirect HTTP to HTTPS」
- 「Compress Objects Automatically」を「Yes」に設定する。
-「ErrorPage」の設定
- SPAの場合、「403」が発生した場合「/」へリダイレクトするように設定する。
バックエンドの設定
EC2
名前(Name) |
AZ |
IPアドレス ipv4 |
セキュリティグループ |
api-1a |
1a |
192.168.10.XXX |
API |
api-1d |
1d |
192.168.20.XXX |
API |
踏み台 |
1a |
192.168.50.XXX |
踏み台 |
証明書の取得
※ CloudFrontがバージニア北部でのみ設定可能なため。
ドメイン(ホストゾーン)の設定
レコード名 |
タイプ |
値 |
XXX.com |
A |
クラウドフロントのドメイン |
api.XXX.com |
A |
ロードバランサーのドメイン |
XXX.com |
NS |
(自動生成) |
XXX.com |
SOA |
(自動生成) |
_XXX.XXX.com |
CNAME |
証明書のCNAME(Web用) |
_XXX.XXX.com |
CNAME |
証明書のCNAME(API用) |