Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[AWS Dev Day 2021 A-1] ゼロから始めるAWS AppSync導入の軌跡と振り返り 〜課題も添えて〜

goro ohba
October 30, 2021

[AWS Dev Day 2021 A-1] ゼロから始めるAWS AppSync導入の軌跡と振り返り 〜課題も添えて〜

AWS Dev Day JAPAN 2021 / 2021-09-28 A-1
[Abstract]
AWS AppSyncを利用してNewsPicksの一部のサービスにGraphQLの導入を行いました。
導入の第一段階として既存のAPIや認証方法は変えずにGraphQLのQueryのみを用い、メリットが高い部分から段階導入しています。
このセッションではAWS CDK・Serverless Framewokを用いた環境構築、ChatOps・CodeBuildを用いたデプロイフローなどAppSync導入で検証したこと、ぶつかった問題とその解決、そして今後の課題と改善を紹介させていただきます。

goro ohba

October 30, 2021
Tweet

More Decks by goro ohba

Other Decks in Technology

Transcript

  1. 大場 吾郎 Goro Ohba • 新卒でERPパッケージベンダー • 2018年 イノベーションテックカンパニー •

    2020年3月アルファドライブにジョイン ◦ 最近は主にフロント開発 ◦ AWS CDK、ChatOps使って仕組み作り 2 自己紹介 株式会社アルファドライブ / 株式会社ニューズピックス テックリード
  2. Apollo Server AWS AppSync 環境 手動で構築 フルマネージド サーバー管理 必要 不要

    パフォーマンス レイテンシ チューニング サービス依存 負荷耐性 チューニング 耐性強 クォータ、Pre-warming コスト Fargateなど構築方法による クエリ操作、データ転送、AWS Lambdaなど リクエスト数、データ量、接続時間に依存 10 アーキテクチャ比較
  3. Apollo Server AWS AppSync 環境 手動で構築 フルマネージド サーバー管理 必要 不要

    パフォーマンス レイテンシ チューニング サービス依存 負荷耐性 チューニング 耐性強 クォータ、Pre-warming コスト Fargateなど構築方法による クエリ操作、データ転送、AWS Lambdaなど リクエスト数、データ量、接続時間に依存 11 アーキテクチャ比較
  4. リクエスト • 40,000 / Day • 80 / min 16

    サービスの構成 動画関連API
  5. Apollo Server AWS AppSync 環境 手動で構築 フルマネージド サーバー管理 必要 不要

    パフォーマンス レイテンシ チューニング サービス依存 負荷耐性 チューニング 耐性強 クォータ、Pre-warming コスト Fargateなど構築方法による クエリ操作、データ転送、AWS Lambdaなど リクエスト数、データ量、接続時間に依存 18 アーキテクチャ比較
  6. 24 パフォーマンス計測1 API Speed (sec) クライアント AWS AppSync 0.11 0.06

    ※ Response data 0.5KB程度のシンプルなAPIで計測
  7. • API_KEY 認証 • AWS_IAM 認証 • OPENID_CONNECT 認証 •

    AMAZON_COGNITO_USER_POOLS 認証 40 認証方法を選択 ここの認証
  8. • API_KEY 認証 →◦ • AWS_IAM 認証 →× CloudFront挟んでると使えない •

    OPENID_CONNECT 認証 →× パブリックAPIへの対応が難しい、導入コストが高い • AMAZON_COGNITO_USER_POOLS 認証 →× NewsPicks全体に入れるとクォータに引っかかる可能性がある 41 認証方法を選択 ここの認証
  9. 49 パフォーマンス計測2 0.19 0.11 0.11 0.06 ※ Response data 0.5KB程度のシンプルなAPIで計測

    API Speed (sec) クライアント CloudFront Lambda Resolver AWS AppSync
  10. 58 Chatbot Lambda CodeBuild Slack Notification SNS デプロイフロー構築 Chatbot Invoke

    Serverless Framework AWS CDKで構築 ※Chatbotは別スタック or 手動で管理
  11. AWS AppSyncよかったこと • インフラ詳しくなくても短期間で構築・検証できた 気をつけたいこと • レイテンシは 0.05 sec(AWS Appsync)

    + 0.08 sec(Lambda Resolver) • Cookieを使いたい場合はちょっと手間がかかる • アクセス数・スパイクアクセスを考慮してクォータを確認し、 必要があれば戦略を立てる • Lambdaを使う場合はコスト、負荷の確認が必要 61 まとめ