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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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



    Pull
    Pull
    12

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

  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

    View Slide

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

    View Slide

  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

    View Slide