読者です 読者をやめる 読者になる 読者になる

Tech memo

日々学んだ技術のびぼうろく

AWS VPC/EC2/ALB(+SSL)/お名前.comで作るWebシステム

概要

Web制作においていろいろ使えるツール集のサイトWebtoolsをローンチする際、
こんな感じのシステムを久しぶりに構築した。

f:id:yjhm214:20170325162906p:plain

一般的なシステムだけど、
一からつくるとなると意外といろんなことを考慮しなければいけなかった。

今後のために、忘れがちな手順やはまったところをメモ程度にまとめておく。
一度サクッと全体を読んでから構築に入るといいかも。

いつかここらへん 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を指定してちゃちゃっとつくる。

つくったあと、

  1. 『ルートタグ』からこんな感じ↓に設定

    • 送信先 : 0.0.0.0/0
    • ターゲット : さっきつくったインターネットゲートウェイ
  2. 『サブネットの関連付け』からさっきつくったサブネットを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つの方法 がまとまってていい感じ。

関連記事

www.yjhm214.com

www.yjhm214.com

まとめ

細々とした手順が意外とあったり、
一度設定したらもう戻せないものとかがあるので、
システム構築時にはこういうまとまった手順書があるとありがたいなと思った。

ここらへんを全て Terraform でまとめられたらめちゃくちゃ楽なのに。

スポンサーリンク