サーバレスアーキテクチャ

AWS S3で独自ドメインでSSLを使う方法

AWS S3で独自ドメインでSSLを使う方法をまとめました。AWS内の機能で完結させる方法と、Cloudflareを使って完全無料で実現する方法の二つがあります。

前提条件

AWS S3で独自ドメインを使う場合は、バケット名がそのドメイン名である必要があります。

DNSにAWS CloudFrontとRoute53を使う

S3と同じAWSファミリーのCDN・Amazon CloudFrontと、DNSサービス・Route53を使えば無料でSSLを追加することができます。

Amazon CloudFront

S3・CloudFront・Route53で独自ドメインを使う方法は、下記のページがわかりやすいです。

CloudFront 経由で S3 のファイルにアクセスする

S3もAWSサービスなので、AWSで完結するという意味ではこの方法がベストです。ただし、CloudFrontもRoute 53も従量課金サービスなので、無料では使えないところは押さえておきましょう。

特に予算に限りがある場合は、「アクセスが増えるたびに料金が増えていく」この方法はあまりお勧めできません。というのも、S3もCloudFrontもRoute53も全て転送やファイル呼び出しに対しての従量課金なので3重課金になるからです。

DNSにCloudflareを使ってProxyする

DNSをCloudFrontにする必要がありますが、こちらのCloudflareを利用した方法は簡単かつ無料で使えるためお勧めです。

CloudflareとAWS S3の連携方法は、公式のドキュメントに記載されています。

Configuring an Amazon Web Services static site to use Cloudflare

設定方法は簡単で、DNSレコードにS3のバケットドメインを指定してProxy(クラウドマーク)をオンにするだけ。簡単ですね。上記のドキュメントのように、S3でバケットポリシーにCloudflareのIPアドレスを追加すると、セキュリティも高めることができます。

これだけで無料かつ独自ドメインでSSLが使え、さらに静的ファイルも無料で高速キャッシュしてくれます。


AWS S3で独自ドメインでSSLを使う方法をまとめました。

AWS内でまとめるのはキレイな方法ではありますが、3重課金というデメリットが気になります。一方で、Cloudflareは無料で使えるサービスなので、この機会にDNSをCloudflareにしてしまうというのも手でしょう。


価格は記載がある場合を除き、すべて税込みです。

この記事の関連キーワード

サーバレスアーキテクチャの記事