この記事には広告を含む場合があります。
記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
Amazon S3 にホスティングの設定をインターネットに公開する
以前の S3 は秒間100アクセスも処理できませんでしたが、機能拡張により GET リクエストであれば秒間5,500アクセスまで耐久できるようになりました。
〇ベストプラクティスの設計パターン: Amazon S3 パフォーマンスの最適化
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/dev/optimizing-performance.html
アプリケーションでバケット内のプレフィックスごとに 1 秒あたり 3,500 回以上の PUT/COPY/POST/DELETE リクエストと 5,500 回以上の GET/HEAD リクエストを達成できます。
上記のように大幅に性能が向上したのであれば、HTML + CSS + Javascript のみのページであれば、ウェブサイトとしても公開できるのでは!ということで、S3 の公開手順をまとめてみます。
S3 をウェブサイトとして公開する手順
まずは公開したいバケットを選択して、バケットの詳細画面に遷移します。
「プロパティ」>「Static website hosting」を選択。
静的ウェブサイトをホストします。サーバー側技術は必要ありません。
エンドポイント = URL とインデックスドキュメントとエラードキュメントがあるので、これを設定すればOKです。
このままではアクセス権限が付与できていないため、外部からの接続ができませんでした。そこで「バケットポリシー」で全ての IP アドレスから GET リクエストのみを許容する設定を行います。
〇バケットポリシーに記述する内容
1 2 3 4 5 6 7 8 9 10 11 12 |
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PublicReadGetS3Object", "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::(バケット名)/*" } ] } |
最後に「ブロックパブリックアクセス」を全て OFF にして設定完了です。
実際に URL にアクセスすると接続できているのが確認できます。
さいごに
実際に s3 でホスティング設定を行ってみると、HTML + CSS + Javascript のみで構成したサイトであれば耐えれそうですね。
良い点としては、EC2 + ELB を使わない分、大規模なアクセスがあるサイトであれば料金の軽減ができます。ただアクセス制限の設定が大変だったり、.htaccess が利用できなかったりと不便な点も多いので、状況に合わせてご利用をご検討ください。