静的サイトを配信するだけなのに、サーバーを立ててnginxの設定して…って、ちょっと大げさすぎるんだよね。そこでCloudFront + S3。これ、マジで安くて速くてサーバーいらずの三拍子だ。
仕組みは簡単すぎて拍子抜けする。S3バケットにHTML/CSS/JSを置いて、CloudFront(AWSのCDN)で配信するだけ。ユーザーは世界400以上のエッジロケーションのうち一番近いところからコンテンツを受け取る。東京からでもニューヨークからでも爆速。
僕がこの構成にハマったきっかけは、Reactで作ったポートフォリオサイト。最初はEC2でNginx立てて配信してたんだけど、ある日「これ、S3に置くだけで良くない?」って気づいた。移行したら月額$7から$0.5に。そしてなぜか表示速度も上がった。CDNの威力、ナメてた。
設定で絶対に守るべき鉄則:
- OAI(Origin Access Identity)を使う — S3バケットを直接公開せず、CloudFront経由でのみアクセス可能にする。公開設定のS3バケットから情報漏洩、ってニュース何度も見てきた。OAIは必須。
- キャッシュポリシーを適切に — CSSやJSは1ヶ月キャッシュ、HTMLは数分でOK。更新頻度に合わせて調整。ここ間違えると「更新したのに反映されない」地獄にハマる。
- ACMでSSL無料 — AWS Certificate ManagerでSSL証明書をタダで発行して、自分のドメインでHTTPS配信。Let’s Encryptみたいに更新の手間なし。
さらに凝るならLambda@Edge。エッジでリクエストを加工できるから、リダイレクト処理とか国別の表示切り替えとか、あれこれできる。
静的サイト持ってるなら、一度この構成を試してみてほしい。サーバー管理のストレスから解放される快感、クセになるから。