AWS VPC/EC2/ALB(+SSL)/お名前.comで作るWebシステム
概要
Web制作においていろいろ使えるツール集のサイトWebtoolsをローンチする際、
こんな感じのシステムを久しぶりに構築した。
一般的なシステムだけど、
一からつくるとなると意外といろんなことを考慮しなければいけなかった。
今後のために、忘れがちな手順やはまったところをメモ程度にまとめておく。
一度サクッと全体を読んでから構築に入るといいかも。
いつかここらへん Terraform で全部まとめたいな。
ちなみに、お名前.com ですでにドメインを取得していることが前提。
構築するもの
- VPC 構築
- VPC
- サブネット
- インターネットゲートウェイ
- ルートテーブル
- EC2 構築
- EC2
- Elastic IP の割り当て、関連付け
- ALB(+SSL)の構築
- SSL 証明書を ACMでつくる
- ALB
- ドメインの設定
スポンサーリンク
VPC 構築
つくるもの
- VPC
- サブネット
- インターネットゲートウェイ
- ルートテーブル
VPC
IPv4 CIDR block は /16 とかにしておけばOK。
こうすることで、サブネットを2つ登録できる。
サブネットを2つつくらないと ALB が作れない。
例: IPv4 CIDR block : 10.0.0.0/16
最初 10.0.0.0/24
で作っちゃったから サブネットが2つ作れなくて ALB 作れんかった。
一度つくったVPCのCIDR は変えられないから、
『VPC再作成 → EC2 を AMI から立て直し』 で直ったけどめんどかった。
サブネット
アベイラビリティゾーンが異なるよう2つつくる。
ALB を作るときに2つ必要。
例:
- サブネット1
- アベイラビリティゾーン : ap-northeast-1a
- IPv4 CIDR block : 10.0.0.0/24
- サブネット2
- アベイラビリティゾーン : ap-northeast-1c
- IPv4 CIDR block : 10.0.1.0/24
インターネットゲートウェイ
ちゃちゃっとつくる。
つくったあと、『VPC にアタッチ』ボタンからさっき作った VPC にアタッチ。
ルートテーブル
さっき作ったVPCを指定してちゃちゃっとつくる。
つくったあと、
『ルートタグ』からこんな感じ↓に設定
- 送信先 : 0.0.0.0/0
- ターゲット : さっきつくったインターネットゲートウェイ
『サブネットの関連付け』からさっきつくったサブネットを2つとも関連付け。
EC2 構築
つくるもの
- EC2
- Elastic IP の割り当て、関連付け
ここは簡単。
EC2の構築
さっき作った VPC とかを指定してちゃちゃっとつくる。
Elastic IP の割り当て、関連付け
EIP を新しく割り当てて、さっき作った EC2 に関連づける。
ALB(+SSL)の構築
つくるもの
- SSL 証明書を ACMでつくる
- ALB
SSL 証明書を ACMでつくる
ACM にいって SSL 証明書をつくる。
ACM で SSL 証明書を申し込む場合、
そのドメインが本当に自分のものかを確認するために認証メールが送信される。
その認証メールを受信して認証をすると、SSL証明書が発行される。
*.example.com
というドメインで申し込んだ場合、
下記のメールアドレス宛に認証メールが送信される。
- ドメインを whoisした時のDomain registrant、Technical contact、Administrative contact
- administrator@example.com
- admin@example.com
- hostmaster@example.com
- postmaster@example.com
- webmaster@example.com
これらのメールアドレスでメールが受信できるようにしなければならない。
今回はお名前.com でドメインを購入していたので、
お名前.comのメール専用サーバを申し込んでメール受信設定をしておく必要がある。
ここがわかりやすかった。
AWS上で独自ドメイン+SSLを実現 - S3/ACM/CloudFront/Route 53( + お名前.com)
メール受信方法には、ほかにもこんなやり方もあるみたい。
[ACM] SSL証明書発行時のドメイン認証メールをSESで受け取ってみた
これしらなくてよくわかんなくていろいろ調べた。
メールの設定が終わったら、ACM から SSL 証明書を作成する。
そして認証メールがきたらどれか一つだけでいいので認証処理を行えばOK!
ALB
- 上で作ったサブネットを2つとも指定。
- 『証明書タイプ』は『AWS 証明書マネージャ (ACM) から、既存の証明書を選択する』を選択し、さっき作った証明書を指定。
- セキュリティポリシーはTLS1.2が良さそうなため
ELBSecurityPolicy-TLS-1-2-2017-01
を選択。
SSLとTLSの違いはここがわかりやすい。
SSLとTLSの違いと脆弱性
あとは適当に設定。
ドメインの設定
今回はサブドメインでの登録のため、お名前.comでサブドメインの設定を行う。
サブドメインの作成はここがわかりやすかった。
今回は ALB の DNS を登録するため、
- TYPE は CNAME
- VALUE は ALB の DNS名
にする。
※参考
Route 53 に委任する場合や移管する場合などは
お名前.comのドメインをAWSで使用する4つの方法 がまとまってていい感じ。
関連記事
まとめ
細々とした手順が意外とあったり、
一度設定したらもう戻せないものとかがあるので、
システム構築時にはこういうまとまった手順書があるとありがたいなと思った。
ここらへんを全て Terraform でまとめられたらめちゃくちゃ楽なのに。
スポンサーリンク