はじめに
今回は、AWSに登録して最初に試したAWS S3についてです。
今回は無料枠もあり設定が比較的単純なHTMLをS3で表示するまでです。
S3:画面(HTML)
Lambda:処理(コード)
API Gateway:画面と処理をつなぐ
AWSコンソールでの設定
- AWSコンソールで右上にあるリージョン:Tokyo (ap-northeast-1) を選択
- 今度は左上にある、Amazon Qに尋ねるにS3と入力
- バケットを作成します。
名前: 任意でxxx-simple-app-demoなど)
リージョン:東京
以下の項目は初心者🔰の私が設定で迷った箇所です。
- バケットタイプは汎用(General purpose)
- オブジェクト所有者はACL 無効(Bucket owner enforced)
- パブリックアクセスは無効
- バージョニングは無効
- タグもなし
- 暗号化はSSE-S3(Amazon S3 管理キー)
- バケットキー有効
バケットにindex.htmlを用意してS3にアップロードする
今回使ったサンプルのindex.html :
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Simple AWS S3 App</title>
</head>
<body>
<h1>It works 🎉</h1>
<p>This file is stored in Amazon S3.</p>
</body>
</html>
index.htmlをアップロードしたら設定を少し変更
-
静的ウェブサイトホスティング:有効にします
-
パブリックアクセスブロックを調整(以下のチェックを外す):
ー新しいアクセスコントロールリスト (ACL) を介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする
ー新しいパブリックバケットポリシーまたはアクセスポイントポリシーを介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックするか
ー任意のパブリックバケットポリシーまたはアクセスポイントポリシーを介した
バケットとオブジェクトへのパブリックアクセスとクロスアカウントアクセスをブロックする
ー新しいパブリックバケットポリシーまたはアクセスポイントポリシーを介して付与されたバケットとオブジェクトへのパブリックアクセスをブロックする -
バケットポリシーを追加: アクセス許可にある、バケットポリシーを編集
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/*"
}
]
}
ブラウザで表示確認
- バケットのプロパティに行き静的ウェブサイトホスティングにあるURLをクリック
- ブラウザで表示を確認し以下が表示されればS3 単体Webアプリ完成
It works 🎉
This file is stored in Amazon S3.
おわりに
今回、初めてAWS S3を触って、作ってみました。
まだ用語を全て理解していないながらも、AIのサポートで作れました。