はじめに
AWS S3(Simple Storage Service)は、静的ウェブサイトの公開をするのに最適なサービスの1つです。低コストで信頼性が高く、アクセス制御や拡張性も備えているため、多くの開発者や企業で利用されています。
本記事では、AWS S3を使って静的サイトを公開する方法を初心者にも分かりやすく解説します。サイトをすぐに公開したい方、AWSを活用してコストを最適化をしたい方におすすめです。
ただし、HTTPSアクセスで設定を行うことはできません。
S3で静的コンテンツを公開手順
AWS S3を使用して静的ウェブサイトを公開するには、以下の手順を行います。
S3バケットを新規作成します。バケット名は一意で、公開するサイトのドメイン名に合わせた命名にすると管理が簡単にできます。
パブリックアクセス設定は以下の設定にします。
全部チェックを外すと以下のような余計な機能までアクセス許可されてしまうので、必ずアクセス制限して、オブジェクトの読み込みのみ許可するようにします。
- オブジェクトの読み込み・書き込み・削除
- バケットポリシーの変更
- ACLの変更
- バケットリストの取得
次に以下のようにバケットポリシーを設定することで外部のアクセスを許可することができます。
以下の設定をしないとHTTPアクセスができないので必ず設定してください。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[バケット名]/*"
}
]
}
最後に以下の箇所に記載されているURLをクリックして公開できているか動作確認を行いましょう。
AWS S3でHTTPSを使用できない理由
AWS S3単体では、SSL証明書を発行することができないため、カスタムドメインを使用してHTTPSアクセスを行うことはできません。AWSが設定したバケットドメインしかなく、HTTPアクセスしか行うことができません。
もしカスタムドメインでHTTPS対応を行いたい場合、CloudFrontを使用することで設定することができるので以下を参考にしてください
【AWS】S3とCloudFrontを使った静的サイトの配信方法を初心者向けに解説
まとめ
今回の記事では、S3を利用してサイトを公開するための手順を解説しました。以下のポイントをもう一度確認しておきましょう。
- 一意のバケット名を設定し、管理しやすい名前を選びましょう。
- 必要最低限の設定を解除して、外部アクセスを安全に許可することが重要です。
- バケットポリシーを正しく設定することで、HTTPアクセスを可能にします。
S3単体での公開は、コストを抑えて柔軟に対応できる方法です。個人ブログや小規模なサイトでは最適なので、ポートフォリオの作成等で使用してみましょう。
より高度な機能やパフォーマンスが必要な場合は、CloudFrontの導入も検討すると良いです。
今回の内容を参考に、実際に試してみてください。