【レポート】Amazon CloudFrontとLambda@Edgeで開発する柔軟性の高いアプリケーション #AWSSummit

AWS Summit Tokyo2019にて、Day3のセッションH3-05「Amazon CloudFrontとLambda@Edgeで開発する柔軟性の高いアプリケーション」の参加レポートです。
2019.06.15

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

セッション概要

AWS Summit Tokyo 2019の3日目に開催されたセッション「Amazon CloudFrontとLambda@Edgeで開発する柔軟性の高いアプリケーション」H3-05 を聴講してきましたのでレポートします。

スピーカー(敬称略)

  • Greg May (Amazon Web Services, Inc.CloudFront, Sr. Software Dev Manager)
  • ゲストスピーカー:泉 純一郎 (株式会社メディアドゥ 技術本部 テックリード)

資料

(後日公開されましたら掲載します)

セッションの内容

CloudFrontが必要なわけ

  • 可用性耐障害性の保証がない
  • これがCDNが必要な理由
  • Internetは安定しているわけではない
  • ISPからリージョン、ISP, オリジンなど経路の一部で輻輳が発生したり、ルートが異なったり、パスが非対称だったりする
  • これにより、ロス、再送信、時間がかかる、パフォーマンスの低下が発生する

  • Edge Serviceを利用した高速化、安定化

    • なるべくユーザーに近いネットワークで、サービスへのアクセスを提供
    • パブリックインターネットを介さずアマゾンのネットワークで利用すればOK

CloudFrontのいま

  • 180のロケーションに接続ポイント
  • キャッシュ機能を提供
  • ヒットレートを改善している
  • 2008年からサービス開始。安定した成長を達成
    • フットプリントが拡大
  • 2018年新たに53 Location増えた
  • 東京は6 Locations増えた。最大の増加率
    • 現時点で東京は14 Locationsで最大の密度がある
  • 多くのお客様が利用

  • 静的コンテンツだけではなく、APIや動画にも対応
  • エッジでTLS接続
  • ネットワーク最適化、一貫性のあるPersistentなコネクション、コネクションプーリング
  • AWSバックボーンの利用
  • セキュリティ機能の利用

  • 高スループットとオフロード

  • VOD/Live Streaming
  • Elemental Media Serviceとうの統合
    • AWS買収した企業。タイトにインテグレーションされている
  • Lambda@Edge

CloudFrontのセキュリティ

  • すべてセキュリティを確保した形で提供
  • Security is Top Priority
  • かなりの投資をしている
  • さまざまなComplianceを満たしている

  • AWSセキュリティサービスとの統合

    • AWS WAF
    • AWS Sheild
    • AWS Certificate Manager
    • AWS IAM
    • AWS Config & CloudTrail
  • 暗号化データの転送
    • SSLがデフォルトに。ほとんどがSSLとなる。
    • 2018 Octで75%を占めている
  • セルフサービス可能なコンフィギュレーション

  • Lambda@Edgeを利用したプログラムの実行

    • node.js
    • すべてのエッジロケーションで動かせる=グローバル分散
  • Lambda@Edgeが実行されるCloudFrontのイベント

  • 4つのタイミングがある
    • Viewer Request
    • Origin Request
    • Origin Response
    • Viewer Response
  • Lambda@Edgeはパワフルなツール -デバイスタイプ、認証などいろいろなことに使える

事例紹介

ゲストスピーカーとして、泉 純一郎氏(株式会社メディアドゥ 技術本部 テックリード)から事例紹介がありました。 メディアドゥはCloudFronnt&Lambda@Edgeを活用して100万冊、1億ページの配信サービスを運営しているとのことです。

事業紹介

  • 電子書籍の流通事業
  • 電子書籍の市場は拡大傾向、3000億円
  • シェアNo1
  • 配信システムを運営
    • LINEマンガなどがメディアドゥの配信システムでCDNで配信されている
    • 探すのはストアアプリの責務
    • コンテンツそのものの配信は配信システムが担う
  • ミッション
    • 大規模アクセスに対応
    • 70000req/sec
    • 大量のコンテンツの保護
    • 100万冊1億ページのコンテンツを配信

配信システムの構成

  • オンプレ時代にはアプリケーションサーバで実装していた
    • アプリケーションサーバがSPOF
  • 配信システム on AWS
    • CloudFront + S3
    • 基本は署名付きURLで。それで対応できない部分は Lambda@Edgeで解決
    • トークン検証による認証処理
    • コンテンツの有効期限チェック
    • オリジンのディレクトリ構成に合わせたURL変更=ビューアーによっていろいろある
    • 特定パターンのみ動的レスポンスを生成

課題

  • コンテンツのファイル構成がまちまち
  • epubは原本
  • DRMをかけてから配置。しかしこの仕様がまちまち。単一ファイルだったり、ばらばらだったり。
  • ビューアの仕様によって、ファイルパスや、ヘッダを付与したり。
  • コンソールから簡単にデプロイ
  • CLIは職人芸で対応している

最後に

  • Lambda@Edgeは、CFにロジックを挟めるのでとても便利
  • 制限緩和が必要だったりするので注意
  • 採用中!テクノロジーで出版に貢献したい人

全体のまとめ

  • エッジサービスをクラウドフロントで行うことで、インターネットの非効率性という問題を解決
  • ビジネスロジックを追加することで、さまざまなユースケースに対応可能
  • セキュリティ
  • AWSの強力な基盤のうち90%は、ユースケースが起点となって、お客様のフィードバックから開発されている
  • 何か要望があれば、ぜひAWSのアカウントマネージャに伝えて欲しい。

感想

電車のなかで多くの人がスマホでマンガや電子書籍を読んでいますが、その裏側の仕組みの一端を伺い知れました。Lambda@Edgeが非常に効果的だったという見解はなるほどと納得できるものでした。Lambda@Edgeは、幅広い応用が可能だとは思いますが、効果的なユースケースを知っておくことはソリューションを検討する上で、必ず役に立つことと思います。