Originless
という聞き慣れない単語に興味を持ち、NRI ネットコムさん主催の勉強会に参加したのでメモ。
参加した勉強会
- Origin 負荷軽減の観点で見る CloudFront - オプション機能から Originless 設計まで -
https://nrinetcom.connpass.com/event/307324/
CloudFront の構成
活用ケース
-
Origin Shield
- Origin への全リクエストが Origin Shield を通る
- スパイクアクセスがあったときに大量の同時リクエストはひとつにまとめて Origin に届ける
- Origin がオンプレとかにあって帯域制限があるときとか効果的
- Edge 関数
- CloudFront functions 特徴
- 関数サイズ 10KB 以下
- ミリ秒未満の軽量な処理のみ
- 低コスト & デプロイ取り回し高速
- Viewer フェーズのみ適用可能
- Lambda@Edge 特徴
- 関数サイズ 128MB 以下
- 5..30s の実行時間
- Viewer, Origin フェーズどちらも適用可能
- Edge 関数の典型的利用例
- リダイレクト, Sorry サーバ
- Visitor Prioritization (visitor の優先順位付け)
ググると AWS のサンプル が出てくる。
サーバ側の状態は DynamoDB で持ったり S3 に置く(弾力性に優れたリソース)。
ユーザの識別には Cookie。
・・・特別なことは何も無かった。
- CloudFront functions 特徴
- Edge 関数による Originless
- Edge 関数からレスポンス返すこと。
-
Hono (炎) という軽量ライブラリがある。
minify すると 14KB 以下。Router とか JSX 使えるそれなりの環境が整う。 - スロットリングに注意
要するに Originless とは
文字通りの意味で、Edge でレスポンスを返して完結させること。
そのまんまでした。
所感
Origin Shield、 Visitor Prioritization、 Hono については収穫だった。
エッジコンピューティングを検討するほどシビアな性能が要求されるような経験は無いので、ふーんという感じだった。(小並感。。。すんません)
以前 Lambda@Edge を使ったときは npm package 使うとサイズで即アウト、Lambda Layer も使用不可で、こりゃ大したことできないなと泣く泣く Vanilla JS でちょろっと書いた程度だったけど。進化してるんだなあ。
勉強会運営された方、ありがとうございました & お疲れさまでした。