やっとできた。
はまったところを概要だけ書いておく。あとで詳細な手順を書こう。
作業順
- S3のバケットを作る
- バケット名はサブドメイン名と同一にする。
- 一旦静的Web hostingを有効にして,httpでアクセスできることを確認しておく。
- Certificate Manager
- N.Virginia限定。
- ドメイン名はワイルドカード指定とそうでないものの2件を登録する。
- CloudFront
- 先にOrigine Access Controlを作る
- CloudFront Distributionを作る。
- alternate domain nameに,サブドメイン名を指定する。
- Certificate Managerで作成した証明書を指定する。
- distribution作成時に出力されるS3 Bucket policyをS3バケットに適用する。
- この段階で,distributionのDNS名を使用してS3バケットにアクセスできることを確認する。
- Route53
- Xserverに登録したドメイン名でHosted Zoneを作る。
- 「サブドメイン CNAME CloudFront_distribution_DNS名」レコードを作る。
- Xserver
- Route53に記載されているNSレコードをXserverに追加する。
- https://サブドメイン名/パス でS3バケット内のオブジェクトにアクセスできることを確認する。
要所要所でnslookup,digを使用し,DNSが正しく反映されているかを確認する。
いや長い。長いよ。頭が整理できるとこの構成の意味も分かるのだが,どこにドメイン名,サブドメイン名が必要なのかを初見で判断するのは難しい。最初は「Route53が必要なわけ無いじゃん」と思ったけど,SSL証明書をAWSサービス内で完結させるためにはRoute53が必要ってことですかね。
AWSの勉強というより,いわゆるネットワーク,DNSの勉強が重要。