非公開のs3をcloudfront経由でブラウザで見れるようにしてみる
1, s3バケットを作成(バケット名だけ入力して、あとはデフォルトのまま)
2, cloudflontのディストリビューションを作成。ディストリビューションは配布・流通という意味で、webサーバやs3の前に入ってブラウザへ低遅延でコンテンツを届ける
2-a, オリジンドメインに作ったs3バケットを指定する
2-b, S3バケットアクセスで「はい、OAI を使用します (バケットは CloudFront のみへのアクセスとなるように制限できます)」を選択する
2-c, 「新しいOAIを作成」ボタンでOAIを作成(デフォルト名のままでOK)
2-d, cloudfrontからアクセス出来るように「はい、バケットポリシーを更新します」に変更
2-e, あとはデフォルトでディストリビューションを作成。数分待つとデプロイ状態になる。
3, 作成したディストリビューションドメイン名がurlになっているので、s3のパスを指定すればファイルが見れるようになっている
https://xxxxxxxxxxxxxx.cloudfront.net/index.html s3直下のパス&ファイルを追加する(index.htmlも省略できない!)
※間違えたらディストリビューションを無効化して、数分待つと削除できるようになる。途中で設定値は変えられないみたい…。
問題は、s3ファイルを修正してもcloudfrontキャッシュが効いていて反映されない!!
デフォルトでは24時間キャッシュしているらしい。とりあえずバージョニング有効で対応したけど、変わらない…。別ファイルで上げ直した方が早そう。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/cloudfront-serving-outdated-content-s3/
しかし、これだとs3を全公開したのと変わらんな~。