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

第一回 似てるサービス使い分け大会 / AWS DevDay Tokyo 2023 E-5

第一回 似てるサービス使い分け大会 / AWS DevDay Tokyo 2023 E-5

よく似てるサービスと機能、いっぱいありますよね?例えば、API キーやパスワードを保存するには Parameter Store を使うべきか、Secrets Manager を使うべきか…ETL のオーケストレーションを Step Functions でやるべきか、あるいは…

そんな選定の時に出る疑問を、徹底的な解説で解消します!

ユースケース別で解説するので、こういうときにそもそも有効なサービスはどれか、についても学べるかもしれない!

アマゾン ウェブ サービス ジャパン 合同会社
スタートアップ事業本部 ソリューションアーキテクト
Torgayev Tamirlan

2018 年、株式会社サイバーエージェントに新卒入社し、2020 年からアマゾン ウェブ サービス ジャパンのソリューションアーキテクトとして国内のスタートアップ企業を支援。データ分析、Infrastructure as Code、コンテナ、サーバレスを中心に支援、発信をしている。

Tamirlan 893 Torgayev

June 23, 2023
Tweet

More Decks by Tamirlan 893 Torgayev

Other Decks in Technology

Transcript

  1. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. 第⼀回 似てるサービス使い分け⼤会 Tamirlan Torgayev E - 5 Startup Solutions Architect Amazon Web Services Japan G.K. @prog893
  2. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Tamirlan Torgayev (ティーマ) Startup Solutions Architect Amazon Web Services Japan G.K. スタートアップの⽀援、データ分析案件の⽀援 好きなもの: Amazon Kinesis、 Amazon ECS、 📸 カメラ、 🐈 猫 ⾃⼰紹介 @prog893
  3. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 内容についての注意点 • 本資料では 2023 年 06 ⽉時点のサービス内容および価格について ご説明しています。最新の情報は AWS 公式ウェブサイト (https://aws.amazon.com/) にてご確認ください • 資料作成には⼗分注意しておりますが、資料内の価格と AWS 公式 ウェブサイト記載の価格に相違があった場合、 AWS 公式ウェブサイトの価格を優先とさせていただきます • 価格は税抜表記となっています • ⽇本居住者のお客様には別途消費税をご請求させていただきます 3
  4. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 160 280 516 722 1017 1430 1957 2345 2757 3084 2012年 2013年 2014年 2015年 2016年 2017年 2018年 2019年 2020年 2021年 Pace of Innovation 新機能の追加 お客様からの声に基づき、 絶え間ないサービスや機能の拡張を進めています 4
  5. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 本⽇話すこと • 似ているサービスがある中、 ざっくりどういう時に何を使えばいいか • ⼤まかにジャンルに分類した上で使い分けのコツを解説 • 初⼼者にもわかりやすく、中級者〜上級者でも参考になる(はず) • 選定に困ったら参照できる逆引きを⽬指しての第⼀歩 5
  6. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 本⽇話さないこと • 細かいユースケース • 細かい機能の紹介 • 料⾦体系の詳細 • 優勝者を決めない • ⾃分のユースケースでの優勝者を決めるのは「審査員」のみなさま︕ • もっと詳しいこと聞きたい、議論したい⽅は ぜひ、セッション後の Ask the speaker で話しましょう︕ 6
  7. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 第⼀回 似てるサービス使い分け⼤会 • パラメータとシークレット管理 • キャッシュ • ワークフローオーケストレーション • バッチ処理 7
  8. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. パラメータとシークレット管理
  9. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Systems Manager (SSM) ハイブリッドクラウド環境のための安全なエンドツーエンドの管理ソリューション 9
  10. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 運⽤管理 アプリケーション管理 変更管理 ノード管理 Explorer OpsCenter AppConfig Parameter Store Change Manager Automation Change Calendar Fleet Manager Inventory Run Command Patch Manager Distributor State Manager Session Manager Incident Manager Quick Setup AWS Systems Manager の機能 Application Manager Maintenance Windows 10
  11. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Systems Manager Parameter Store アプリケーション構成値の⼀元的な格納 • アプリケーションの設定値とシークレットを格納 • すべてのパラメーターを 1 か所で⼀元的に更新することで、 コードのメンテナンスと⾃動化を簡素化 11
  12. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Systems Manager AppConfig アプリケーション構成を作成、管理、デプロイ • アプリケーションを実⾏したまま アプリケーション構成の変更をデプロイ • 製品の新発表など、タイムリーな展開が必要な新機能の展開を、 機能フラグで実現 • デプロイ戦略を指定でき、 少しずつデプロイが可能 デプロイ戦略 AWS AppConfig AWS Lambda 新 設 定 Pull Pull 12
  13. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Secrets Manager データベースへの認証情報や API キーなどシークレットのライフサイクルマネージメント • シークレットを安全に保管 • ⾃動的にローテーション • 粒度の細かいポリシーで アクセス管理 13
  14. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • まずはシンプルに、安価に使いたい: • Parameter Store • 4 KB 以内の 10,000 パラメータまで無料、有料で 8 KB 以内の 100,000 パラメータまで対応 • シークレットのローテーション、監査が必要: • Secrets Manager • Amazon Relational Database Service と Amazon Aurora は実装不要で ⾃動ローテーション可能 • Lambda で拡張する形でそれ以外のシークレットのローテションも定義可能 パラメータとシークレット管理 サービスの使い分け概要 14
  15. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • パラメータを⾼度にデプロイしたい • AppConfig • 実⾏中のアプリケーションに対してパラメータやシークレットのデプロイ • Amazon CloudWatch アラームをトリガーに⾃動ロールバック • デプロイ前のパラメータの検証 • 定義したJSONスキーマやルールを満たしているか • Lambdaを使ったカスタム検証 • パラメータやシークレットは以下から参照可能: • Parameter Store、Secrets Manager • Amazon S3 • AppConfig ホスト構成ストア パラメータとシークレット管理 (続) サービスの使い分け概要 15
  16. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. キャッシュ
  17. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. (本来の) キャッシュ • データストアにおいて、I/Oや処理に時間がかかる • 処理: SQLクエリの実⾏、変換、など • この時間は、アプリケーションのレイテンシーに影響する • 短縮するには: • I/O: メモリに乗せる • 処理: 処理済みのものを保持 • ロジック: キャッシュを確認して、データがあればそのまま利⽤ • なければ、データストアから取り出し、以後のためにキャッシュに⼊れる • 代表的なキャッシュ⽤データストア: RedisとMemcached
  18. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 究極のパフォーマンス インメモリデータストア キャッシュの用途で マイクロ秒の応答時間 大規模なワークロードに 簡単にスケーリング 書き込みはシャーディング 読み取りはレプリカ を利用してスケーリング 安全、信頼できる ネットワーク分離、マルチ AZ 保存/転送時の暗号化 HIPAA、PCI、FedRAMP 自動フェールオーバー Amazon ElastiCache 完全マネージド型サービス Redis & Memcached 互換 オープンソース Redis Memcached と完全互換 18
  19. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon MemoryDB for Redis 超⾼速パフォーマンスを実現するRedis互換で耐久性に優れた インメモリデータベースサービス 耐久性と高可用性 耐久性と⾼可⽤性のための マルチ AZ トランザクションログ Redisとの互換性 柔軟で扱いやすい Redis API とデータ構造 フルマネージド型 AWS が管理するハードウェアと ソフトウェアのセットアップ、 設定、モニタリング、 スナップショット 高いスケーラビリティ クラスタあたり 100 TB を 超えるストレージ (シャードあたり 1 つの レプリカを使⽤) 超高速パフォーマンス 数百万の TPS による マイクロ秒の読み取りおよび ⼀桁ミリ秒の書き込み レイテンシー セキュリティ Amazon VPC、保存時および 転送中の暗号化、 アクセス制御リスト (ACL) 19
  20. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 耐久性と⾼可⽤性 • MemoryDB は、データの耐久性、⼀貫性、およびリカバリ性のために、 マルチ AZにトランザクションログを保存してデータを格納 • 複数の AZ にまたがって⾃動的に レプリケートすることにより ⾼可⽤性をサポート • 異なる AZ に最⼤5 つのレプリカを 持つマルチ AZ 可⽤性を持つ MemoryDB クラスターを作成 Availability Zone B Availability Zone C Redis Cluster Availability Zone A P R Slots 0–5454 Slots10910–16363 R Slots 5455–10909 R R Slots 0–5454 Slots10910–16363 P Slots 5455–10909 R P Slots 0–5454 Slots10910–16363 R Slots 5455–10909 Shards, primaries, and read replicas Example: 3 shards 2 replicas per shard Multi-AZ S S S 20
  21. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. (実際の) キャッシュ • すでにRedisを使っているから、 汎⽤オンメモリーキーバリュストア (KVS) としてそのまま使われる • クラスタが⽤意されている • すでにRedis対応のドライバーがアプリケーションに⼊っている • Redis APIでの操作にも慣れている • ユースケース • アプリケーションを動かすためのパラメータを⼊れる • 全てのリクエストで必要になる情報がある (セッショントークン) • こういったものの取り出しレイテンシーは全てのリクエストに加算されるので メモリに載せてできるだけ早くしたい • 本来なら、キャッシュの中にデータがあればより⾼速に処理できる • なければ、DBなどのストレージにアクセスするだけ
  22. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. キャッシュ サービスの使い分け概要 • 消えたら困るデータを⼊れてるかどうか • ⼊れていて、そのデータの移⾏が難しい: MemoryDB for Redis (特にセッションストアにおすすめ) • ⼊れていて、そのデータの移⾏ができる: DB や Parameter Store などの適したサービス • ⼊れていない: ElastiCache • 書き込みレイテンシーの要件が厳しい (< 1ms): • ElastiCache • 複数のクラスタが必要で、それぞれのデータ量が少ない: • 集約して上で MemoryDB for Redis or ElastiCache 22
  23. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. ワークフローオーケストレーション
  24. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ワークフローオーケストレーションとは • ワークフロー: • ⼀連の処理(ワーク)を⼀定の順序(フロー)に並べたもの • オーケストレーション: • ワークフローの管理、実⾏、 タスクの順序制御、状態の追跡 • よくあるユースケース • データ処理、ETL • インフラ管理 • 複数のサービス、マイクロサービスに跨った処理 • AWS の複数のサービスを利⽤する場合も
  25. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Glue ワークフロー • 複数の AWS Glue ETL ジョブの実⾏タイミングや依存関係を管理 • クローラ、トリガー、ジョブの組み合わせによりワークフローを定義 • トリガーはスケジュール (⽇時・曜⽇・cron)、ジョブイベント、 Amazon EventBridge、⼿動(即時実⾏)で指定可能 25
  26. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon SageMaker Pipelines • Amazon SageMaker の中で機械学習ワークロードの CI/CD を実現 • 機械学習ワークフローのデータロードや学習処理などの⼀連の 処理ステップを任意のタイミングや所定の時間に実⾏できる • 各ステップの処理結果は SageMaker Experiments で記録され、 モデルの出来映えや学習パラメータなどを視覚化できる • テンプレートを利⽤してワークフローを⼿軽に構築可能 26
  27. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon Managed Workflows for Apache Airflow (MWAA) • Apache Airflow によるワークフローのマネージドサービス • Python で記述された Directed Acyclic Graphs (DAG) の デプロイをすぐに開始 • OSS の Apache Airflow を⼤規模に実⾏する⼿間を省き、 ビルトインセキュリティで Airflow を実⾏ • Athena, Batch, CloudWatch, DynamoDB, DataSync, EMR, ECS / Fargate, EKS, Firehose, Glue, Lambda, Redshift, SQS, SNS, SageMaker, S3 などのワークフローに必要な AWS またはオンプレミスのリソースと接続可能 27
  28. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Step Functions フルマネージドなオーケストレーター • 弾⼒性のあるワークフローオートメーション • 組み込みのリトライ、エラーハンドリング • AWS サービスとの強⼒な統合 • 同期型 Express Workflow も提供 • ビジュアル編集可能な Step Functions Workflow Studio • データサイエンティスト向けに Python で記述できる Step Functions Data Science SDK も提供 28
  29. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Step Functions Distributed Map • より⼤規模な並列分散処理に対応する Map ステートのモード • 従来 40 並列処理上限に対し、最⼤ 10,000 並列 まで対応可能 • Amazon S3 上にある⼤量のデータの処理、 などのユースケース • ⼤量のログデータ、動画の解析、画像の変換 • 東京を含む 10 のリージョンでご利⽤可能 29
  30. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. ワークフローオーケストレーション サービスの使い分け概要 • Glue と SageMaker のみを使う場合、簡単に始めたい場合: • それぞれ Glue ワークフロー や SageMaker Pipelines を使う • 失敗したステップからの再開もできる • 様々な AWS サービスを組み合わせたい場合: • Step Functions • GUIでコードなしで多数の AWS API を利⽤するワークフローが定義可能 • Step Functions Distributed Map を使うと⼤規模な並列処理も可能 • 既存のAirflowの資産があって管理コストを下げたい: • Managed Workflows for Apache Airflow (MWAA) • リトライや並列処理を含む⾼度なワークフローをGUIで作成可能 • 動的なワークフローの定義も可能 30
  31. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. バッチ処理
  32. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. 似て⾮なる「バッチ処理」 俗に⾔う「バッチ処理」は 2 種類ある A) 定型業務における「バッチ処理」 夜間バッチのように、予めジョブの起動や順序を 定義しておいてジョブの実⾏・管理をするシステム B) ⼤規模計算における「バッチ処理」 スーパーコンピュータ等で⾏う⼤規模科学計算、 メディア処理、CG レンダリング、機械学習における 学習プロセス等アドホックな計算 JobA JobB JobF JobC JobD JobE 毎⽇ 23:00 起動 ⼟曜 00:00 起動 5:00 までに完了 JobB JobA JobA JobB キューイング セントラルマネージャ submit submit dispatch dispatch コンピューティングノード群 A) B) 32
  33. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Batch ⼤規模バッチ処理のため環境をフルマネージドで提供 • AWS Batch がインスタンスの起動や停⽌を⾏うた め、スケジューラや計算ノードなどの 管理が不要 • ジョブは Docker コンテナイメージ を元に作成し、 ⾃動でスケールする コンピューティング環境で実⾏する • コンピューティング環境ではインスタンス タイプや vCPU 数、スポットインスタンス 利⽤有無などを任意に指定可能 • コンテナイメージを⽤意するだけで スケーラブルな⼤規模バッチ処理環境が得られる 33
  34. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. AWS Batch のアーキテクチャ ユーザ Elastic Container Registry Elastic Container Service Cluster EC2 インスタンス群 or Fargate ジョブ ジョブ定義 ジョブキュー コンテナイメージ Docker Hub コンテナレジストリ コンピューティング環境 S3 Elastic File System コンテナ Scale-Out Scale-In Amazon FSx for Lustre 34
  35. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Amazon EventBridge Scheduler マネージドなサーバーレススケジューラー • タスクの作成、実⾏、管理 § 定期スケジュール: 毎⽇ 0 時に特定の Lambda 関数を実⾏ § 指定⽇時に⼀回だけ: 2022/12/31 15:00 に EC2 インスタンスを停⽌ • 270+ の AWS サービス、6000+ の API アクションを 呼び出すことが可能 • 少なくとも 1 回 (at-least-once) の信頼性のある配信を保証 • リトライポリシー、デッドレターキューを設定可能 • マネジメントコンソール、AWS CLI、AWS SDK から設定可能 35
  36. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • ⼤規模計算: • AWS Batch • バックエンドとして EC2、EC2 Spot、Fargate、Fargate Spot が選べる • キューが挟まる処理: • AWS Batch • ジョブキューが提供されている • 単発、定期実⾏で軽いもの: • EventBridge Scheduler + Lambda • 単発、定期実⾏でもっとリソース、実⾏時間が必要: • EventBridge Scheduler + ECS on EC2/Fargate バッチ処理 サービスの使い分け概要 36
  37. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • さらにリトライロジックを追加するなど、複雑なフローを組みたい: • EventBridge + Step Functions + お好みのコンピュート (EC2/Fargate/Lambda/Glue/etc.) • Step Functions Workflow Studio という GUI からワークフローが定義できる • Lambda、コードなしで様々な AWS API と連携可能 • フローの中から AWS Batch を利⽤することも可能 • Step Functions Distributed Map を使うと⼤規模な並列処理も可能になる バッチ処理 (続) サービスの使い分け概要 37
  38. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. • 第⼆回以降の使い分け⽐較予定: • ETL処理 • NoSQLデータベース • サーバレスコンピュートとコンテナ • キューとメッセージング • and more • ⽐較してほしいジャンルがあれば教えてください︕ 最後に 38
  39. © 2023, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Thank you! © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. Tamirlan Torgayev [email protected] 感想やご質問は Twitter や Ask the Speaker まで︕ @prog893