CloudFrontとACM連携でハマった話。

こんばんは。

この間ドメインを取得しないといけない機会があり、
せっかくとったからということで
色々(Route53とかELBとかACMとかS3とか)遊んでいたのですが、
最後の最後CloudFrontにACMで取得した証明書設定するところで
めちゃめちゃハマりました。。

同じ苦しみを味わう人を一人でも救済したく、
重い腰を上げてキーボードをたたき始めた次第です。

結論

CloudFrontにACMで取得した証明書を適用する場合は、
us-east-1のACMで証明書を取得しないといけない!!!!

はい。以上です。
ap-northeast-1のACMで取得したSSL証明書
CloudFrontに適用できません。

よくよく考えると、CloudFrontはグローバルなんだから
どこかしらのメインリージョンのACMで取得したSSL証明書じゃないといけないのは当たり前だし。

そもそもよくよく考えるまでもなく、
ちゃんと書いてあったし。

f:id:iryond:20161008124530p:plain (小さい!小さすぎるよAmazonさん!!)

よく考えて、よく読みましょうということでした。

やりたかったこと

いえ、今となっては実現できたことと言っていいでしょう。

f:id:iryond:20161008124357p:plain

ごく普通の構成だと思います。
こんなの30分だろと思っていた日もありました。
そう、CloudFrontにハマるまでは。

やったこと

  1. お名前.comでドメインを取得する
  2. お名前.comのネームサーバにAWSDNSサーバを登録する f:id:iryond:20161008125000p:plain
  3. 自分がもつドメインへのメールをSESで受信してS3に保存する f:id:iryond:20161008125316p:plain
  4. S3を静的ウェブサイトホスティングでたてる
  5. us-east1ACMSSL証明書を発行する
  6. S3にメールが届くのでVerifyする f:id:iryond:20161008130509p:plain
  7. 上記でたてたS3をオリジンとするCloudFrontを構成する
  8. 構成する際にCNAMEを書くこととCustomSSLCertificateを選択する f:id:iryond:20161008125526p:plain
  9. Route53でimg.iryond.xxxの名前解決先をCloudFrontにする

するとこうなる

f:id:iryond:20161008130610p:plain

ACMのリージョンさえ間違えなければ超簡単ですね。

この前のJAWSでも
「ManagementConsole使っていいのは中学生までだよねー☆」
という話があったので、次回はCLIで頑張ろうと思います。。

それでは。