kakakakakku blog

Weekly Tech Blog: Keep on Learning!

Lambda@Edge と CloudFront Functions に入門できるワークショップ「Handling Rewrites and Redirects using Edge Functions」

Lambda@Edge と CloudFront Functions を使って HTTP リクエストのリダイレクトとリライトを体験するワークショップ「Handling Rewrites and Redirects using Edge Functions」を実施してみた❗️

Lambda@Edge と CloudFront Functions に入門したいな〜という人に特におすすめ💡アーキテクチャ図も多く載っていてイメージしやすく構成されているのも良かった〜 \( 'ω')/

catalog.us-east-1.prod.workshops.aws

目次

大きく2部構成になっていて,Module 1 では Lambda@Edge を使ってキャッシュ可能なリダイレクトとリライトを体験して,Module 2 では CloudFront Functions を使って動的なリダイレクトとリライトを体験する📝

  • Getting Started
  • Overview
  • Module 1 - Cacheable Use Cases
    • URI based Redirects
    • Geo Location Redirects
    • Device Redirects
    • URI based Rewrites
  • Module 2 - Dynamic Use Cases
    • Dynamic Geo Location Redirects
    • Cookie Based Redirect
    • Bot Signatures Based Rewrite
  • Conclusion

所要時間はワークショップの冒頭に以下のように書いてあって妥当だと思う👌僕は計3ポモドーロ (90 minutes) で最後のクリーンアップまで完了できた.

This workshop takes about 90-120 minutes to complete all the labs covered.

Lambda@Edge と CloudFront Functions の比較

Lambda@Edge と CloudFront Functions の比較はワークショップ (Overview) で出てくるけど,ワークショップ環境を AWS CloudFormation で構築する待ち時間などに以下のドキュメントを軽く読んでおくと理解しやすくなって良いと思う💪

docs.aws.amazon.com

Module 1

Module 1 では Lambda@Edge を使って4種類のリダイレクトとリライトを体験する.Lambda@Edge のコード (Python 3.9) はコピペする.シンプルな実装で理解しやすいし,AWS Lambda 関数の実装に慣れているから特に詰まるところもなかった💡

Lambda@Edge に Amazon CloudFront のトリガーを設定して,AWS CloudShell から curl コマンドを実行しながらリダイレクト・リライトの挙動確認や X-Cache ヘッダーの結果を確認していく.

また2番目の Geo Location Redirects では Amazon CloudFront で CloudFront-Viewer-Country ヘッダーを追加したりする.勉強になる👌

docs.aws.amazon.com

そして4番目に試す URI based Rewrites もプロダクション運用でニーズがありそうで実践的だな〜と思った💡

Module 1 の実施ログ

最終的に4種類の Lambda@Edge を追加した.

Module 1 で追加した Lambda@Edge

Module 2

Module 2 では CloudFront Functions を使って3種類のリダイレクトとリライトを体験する.CloudFront Functions の言語は JavaScript なので TypeScript で実装してデプロイできたら良さそうだな〜なんて考えながら進めていた👀

3番目に試す Bot Signatures Based Rewrite は AWS WAF と組み合わせてボット対応を体験する.awswaf:managed:aws:bot-control:bot:category:social_media ラベルを使ったりして,実践的で良かった🛡️

Module 2 で設定した AWS WAF Web ACLs

最終的に3種類の CloudFront Functions を追加した.

Module 2 で追加した CloudFront Functions

まとめ

Lambda@Edge と CloudFront Functions に入門できるワークショップ「Handling Rewrites and Redirects using Edge Functions」を実施してみた❗️面白かった〜 \( 'ω')/

ちなみに朝活でワークショップを実施した🌅朝活だと頭もスッキリしてて集中して取り組めるからおすすめ.

ワークショップは AWS Workshops で探せるよ〜

awsworkshop.io