2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS CloudFrontとLambda勉強まとめ

Posted at

#CloudFront

CDN

  • Contents Delivery Network
  • エッジのキャパシティを利用して効率的かつ高速にコンテンツ配信
    →ユーザに最も近いサーバに誘導して、配信を高速化
    →エッジサーバではコンテンツのキャッシングを行い、オリジンに負荷をかけない

・最適なエッジへの誘導方法
①ドメイン名問い合わせ(クライアント→DNS)
②IPアドレス問い合わせ(DNS→CloudFrontDNS)
③最適なEdgeアドレス応答(CloudFrontDNS→DNS)
④最適なEdgeへアクセス(クライアントからEdge)
⑤キャッシュがある場合:コンテンツ配信
キャッシュがない場合:オリジンサーバから取得

・CloudFront特徴

  • 84拠点のエッジサーバ
  • 予測不可能なスパイクアクセスへの対応
  • ビルトインのセキュリティ機能(WAF連携、DDoS対策)
  • 充実したレポート

・動的コンテンツ:ELBでEC2に負荷分散。HTML
静的コンテンツ:S3などで保存

・84エッジロケーション→11リージョナルキャッシュ→オリジン
→オリジンに対するコンテンツ取得を削減

CloudFront Distribution

  • ドメインごとに割り当てられるCloudFrontの設定
  • 40Gbpsもしくは100,000RPSを超える場合上限申請必要
  • HTTP/2対応
  • IPv6対応
  • CNAMEエイリアスを利用して独自ドメイン名の指定可能
    →Route53と合わせたZone Apex(wwwがないもの)も利用可能

Gzip圧縮機能
エッジでコンテンツをGzip圧縮することでより高速にコンテンツ配信
※S3はGzip圧縮をサポートしていないので有効

キャッシュコントロール

  • キャッシュヒット率の向上がCDNのポイント
    →URLおよび有効化したパラメータ値の完全一致でキャッシュが再利用

キャッシュの無効化
コンテンツごとの無効化パス指定

ダイナミックコンテンツ機能
オリジンサーバに対して下記情報をフォワードすることで、動的なページの配信にも対応

  • ヘッダー(必要最小限)
  • Cookie(Cookie名と値をセットでCloudFrontがキャッシュ)
  • クエリ文字列パラメータの値

ダイナミックキャッシング
リクエストパターンをもとにオリジンへのアクセスルールを個別指定可能

カスタムエラーページ
4xx系:クライアントエラー。オリジン側で対処
5xx系:サーバエラー。CloudFrontで対処
参考URL:https://goo.gl/NcUQiY

読み取りタイムアウト
CloudFrontがオリジンからの応答を待つ時間を指定
デフォルトは30秒

キープアライブタイムアウト
接続を閉じる前に、CloudFrontがオリジンとの接続を維持する最大時間
デフォルトは5秒

・セキュリティ

  • HTTPS対応
  • SSL証明書
    →専用IPアドレスSSL証明書には申請必要
  • ビューワーSSLセキュリティポリシー
    →クライアントとCloudFront間のSSL/TLSプロトコルとCipherの組み合わせを指定可能
  • オリジン暗号化通信
  • オリジンカスタムヘッダー
  • GEOリストリクション
    →地域情報でアクセス判定。制御されたアクセスには403を応答
  • 署名付きURL
    →プライベートコンテンツ配信。
    →署名付きURLを生成する認証サイトにクライアントから認証リクエスト
    →認証サイトからEdgeにアクセス※署名付き出ない場合は、403を返す
    -オリジンサーバーの保護
    →Origin Access Identitiy(OAI)を利用
    S3のバケットへのアクセスをCloudFrontからのみに制限
  • AWS WAF連携
    AWS ShieldによるDDoS攻撃対策
    ブロック時は403応答
  • AWS ShieldによるDDoS攻撃対策
    デフォルトで有効

・CloudFrontレポート・アクセスログ機能
任意のS3バケットに出力可能

・CloudWatchアラームの活用
リアルタイム障害・異常検知

・S3オリジン自動キャッシュの無効化(Invalidation)
S3にアップロード→Lambdaファンクション呼び出し→CloudFront Invalidation APIの呼び出し→CloudFront上でキャッシュの無効化

Lambda

高度にパーソナライズされたウェブサイト
ビューワーリクエストに応じたレスポンス生成
URLの書き換え
エッジでのアクセスコントロール
リモートネットワークの呼び出し

参考URL:https://www.slideshare.net/AmazonWebServicesJapan/aws-blackbelt-online-seminar-2017-amazon-cloudfront-aws-lambdaedge

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?