やりたい事
AWSのチュートリアルがすごく充実していたので勉強がてらやってみたい。
参照ページ
サーバーレスのウェブアプリケーションを構築する
https://aws.amazon.com/jp/getting-started/projects/build-serverless-web-app-lambda-apigateway-s3-dynamodb-cognito/module-1/
作業ログ
1.S3でバケットを作成「serverless-test-20190627」って名前で作成した
2.AWSCLIの設定
$ aws configure --profile [profilename]
3.テンプレートをコピー
$ aws s3 sync s3://wildrydes-us-east-1/WebApplication/1_StaticWebHosting/website s3://serverless-test-20190627 --region ap-northeast-1 --profile [profilename]
※ ユーザにアクセス権限がなかったのでIAMから「AmazonS3FullAccess」の権限を付与した。
4.パブリック読み込みを許可するバケットポリシーを追加する
- GUI上でバケットの中に入る
- ブロックパブリックアクセス
- [パブリックアクセスをすべてブロック]のチェックを外す
5.ウェブサイトのホスティングを有効にする
- プロパティタブを開く
- Static website hosting のカードを選択
- [このバケットを使用してウェブサイトをホストする] を選択し、インデックスドキュメントに「index.html」と入力
※ 他にも暗号化やログの記録についてのプロパティがあるので一通り見ておくと後学のために良いかもしれない。
- ダイアログ の上部にあるエンドポイント URL を書き留めてから、[保存] を選択します。
※ AWS が提供する Amazon S3 ウェブサイトのエンドポイント URL を使用します。形式は、http://{your-bucket-name}.s3-website.{region}.amazonaws.com のようになります
- アクセス権限タブ → バケットポリシー → エディターが出てくるので下記を入力
※serverless-test-20190627の部分は作成したバケット名
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadForGetBucketObjects",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::serverless-test-20190627/*"
}
]
}
}
AWSが用意してくれてたサンプルHTMLが公開されました。
今回練習でやっただけなので最後にバケットを削除しておしまい。