1.はじめに
皆さん、こんにちは!
私は先日CLFを取得したので、さあ次はSAAだ!!
・・・といきたいんですが、CLFの時に感じていた「問題文のキーワードで回答は推測できるけど、ぶっちゃけ何言ってるのかよく分かんない...」
という、根本的なモヤモヤを解決できずにいます。
これを解決するには、やはり構成図を作成して全体像を掴むことが大事かな?と思ったので、今回練習内容を記事にしてAWSサービスへの理解を深める&記憶の定着を図ります。
(自分用になってしまい読みにくいかもしれません。その場合は申し訳ありません。)
2.シナリオの準備
さて、構成図作成といってもシナリオがなければ作れませんよね。
AIにいくつか聞いて、気になったものを作ってみましょう。
・・・ふむふむ。
グローバル向け配信といえば、CloudFlontが思い浮かびます。
アクセス制御、トラフィック急増時のスケーラビリティといえば、ELBやAuto Scalingでしょうか。
しかし著作権保護?キャッシュ戦略??
この辺りは見当もつきません。
私の無知を晒したところで、もう少し踏み込んで聞いてみましょう。
今回の構成図で使うサービスの一覧のようです。
聞き馴染みのあるサービスが多いですが、構成図となるとなかなかピンときませんね。
流れとしては、
S3に動画を保存→ユーザーからの配信リクエスト→Lambdaが起動→S3からCloudFlontでユーザーに配信をする。
といった流れでしょうか?
今回は勉強なので、これ以上のヒントは得ずに一旦構成図を作ってから答え合わせをしてみましょう。
3.構成図作成~答え合わせ
それでは、私が作成した構成図がこちらです。
どんっ!
大きく2つに分けて作成しました。
①APIリクエスト・・・ログイン~動画のタイトルなどの情報を取得。
②動画配信・・・①で得た動画の情報をもとに、動画そのもののデータをユーザーへ配信する。
これだけでも色々悩みながら作成したのですが、普通に考えて当初使う予定であった
- Amazon Cognito
- Amazon API Gateway
- AWS Lambda
- IAM(Identity and Access Management)
- Amazon CloudWatch
- AWS CloudTrail
が存在していません。
不正解であることは確実なのですが、これらがどこに入ってくるのかよく分かりません・・・。
さて、この辺りで正解発表に移りましょう。
~以下、AIからの返答です~
改善点・アドバイス
-
Webアプリ(SPA)の配信経路が抜けている
ユーザーはまず「Webアプリ(SPA)」にアクセスしますが、その静的ファイル(HTML/JS/CSS)はS3+CloudFrontで配信するのが一般的です。
今回の図では「動画配信」だけになっているので、アプリ配信の流れも追加するとより実践的です。
例:
ユーザー
↓
Route 53
↓
CloudFront(ACM)
↓
S3(Webアプリ的ファイル) -
Cognito(ユーザー認証)の記載
ユーザー認証・認可はCognitoを使うのが一般的です。API GatewayやWebアプリの近くにCognitoを配置し、「認証」の流れを矢印で示すとベストです。 -
CloudFrontとLambda@Edgeの関係
Lambda@EdgeはCloudFrontの「中」で動くイメージ、CloudFrontの横や下に小さく添える形が分かりやすいです。
CloudFront→Lambda@Edge→S3という直列ではなく、「CloudFrontのリクエスト時にLambda@Edgeが動く」という表現がベストです。 -
WAFの位置
WAFはCloudFrontやAPI Gatewayの「前」に配置するのが一般的です(リクエストを最初に検査するため)。 -
ACMの表現
ACMは「証明書を提供する」だけなので、CloudFrontやAPI Gatewayの横に「ACM(証明書)」と注釈で表現するのが一般的です。 -
** GatewayとCloudFrontの関係**
APIリクエストと動画配信は別経路です。API Gatewayは動画ファイルの配信には関与しません。
~ここまで~
4.振り返り
さて・・・。
色々と足りない点、間違っている点がありましたね。
今回の記事はここまでにして、次回は修正~正しい構成図を完成させるところまでできればいいかなと考えています。
ここまでお読み頂き、ありがとうございました!