#AWSチュートリアル
AWSを実際に触ってみようと思っても、何をどうすれば良いか分からない...そんな時は...
こんにちは、学生アルバイトのsosonoです。
今回は簡単にLambda、APIGateway、S3、DynamoDB、Cognitoが体感できるAWSチュートリアルを詳説していきます。全4回の予定です!!
以下のリンクから手順に沿って、数時間で完了できます。
AWS公式チュートリアル
チュートリアルは理解しながら進めるべきです。ということで、初心者ながら気になった部分を整理してみました。今回は第一回めの記事になります!(上記❶の部分に該当します!!)
以下のステップは実際のチュートリアルのステップに対応しています。
##(ステップ1)リージョンを選択する
バケットや後出のLambda関数は全て同じリージョンで作成する必要があります。
コスト最小化などを考えて、地理的に近い部分にするべきでしょう。
##(ステップ2)S3バケットを作成する
作成自体は簡単です。名前が一意になるようにすることに注意すればたります。
##(ステップ4)パブリック読み込みを許可するバケットポリシーを追加する
コピペさせることから分かるように(?)S3ではここが一番不明瞭。少し整理してみる。
[Qiita]S3のアクセスコントロールまとめ
この記事でほとんど把握できるはず。。。
###パブリックアクセス(設定機能)
チュートリアルでは4つのチェックボックスがあって、よく分からないままポチポチさせられた。
ACL、バケットポリシーの公開設定をブロックしたりする機能で、イメージとしては下述バケットポリシーの監視役みたいな感じ。他にも既存の公開設定の削除なども可能。
-
4つのチェックボックスを整理してみると、、、
-
ACLの公開に関する設定
- 新規バケット、オブジェクトへのACLをブロック
- 全てのACLを無視 -
バケットポリシーの公開に関する設定
- バケットポリシーによる、バケット・オブジェクトへのバケットポリシーをブロック
- バケットポリシーによる、バケット・オブジェクトへのパブリックアクセス、クロスアカウントアクセスを無視
という作りになっている。これをポチるだけでアカウント全体を管理できるという優れもの。
このチュートリアルでは、ACLの公開に関する設定、の部分にチェックを入れているので、ACLはブロック、無視しようとしているということが分かります。
###バケットポリシー
バケットに対してアクセス管理を行います。今回のチュートリアルでコピペするのがこれ(JSON形式)。
バケットポリシーがなければ、アクセスは全て拒否される。それはこちらとしてもまずい、、、
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::[YOUR_BUCKET_NAME]/*"
}
]
}
詳しく見ていきます。
-
"Effect":Allow
バケットへの操作を許可しておいて、、、 -
"principal"
特定のIAMユーザからのアクセスを許可するために使用 -
"Action"
バケットのARNを指定する(ARNは第二回以降登場します。今はふーんくらいで。。。) -
"Resource"
このポリシーの対象となるリソース(先ほど作成したバケットのこと)
これによって新しいポリシーが追加される
(という動作になっていたことはチュートリアルでは触れられていない、、、)
###注意
コピペした後、[YOUR_BUCKET_NAME]を変更するが、 []まで含めて変更すること(詰まりそうなポイント!!!)
この後に”保存”を押すと、”このバケットにはパブリックアクセス権限があります”と表示されるが気にしないこと(チュートリアルなのだから、、、)
##(ステップ5)ウェブサイトのホスティングを有効にする
S3のバケット内に、静的ウェブサイトをホストできる。サイトにアクセスできるようにウェブサービスの実行、他のサービスの使用、等は必要ないのです。
##(ステップ6)実装を検証する
あとはウェブエンドポイントURLをクリックするだけです!!!
#まとめ
第一回はS3に関するチュートリアルでした。よく分からないままコピペさせられると、チュートリアルを完了しても腑に落ちない感じがして嫌です。。。
この調子であと3回、作っていけたらなと思います。