Slide 1

Slide 1 text

© 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. AWS ソリューションで ⾞輪の再発明をしない⽣活 JAWS-UG OSAKA 「AWSアーキテクチャ祭り」 Shinichi Hama / track3jyo Startup Solutions Architect, West Japan Amazon Web Services Japan G.K.

Slide 2

Slide 2 text

© 2022, Amazon Web Services, Inc. or its affiliates. 2 Shinichi Hama / track3jyo Startup Solutions Architect Amazon Web Service Japan --- work: - ⻄⽇本のスタートアップ⽀援 - コンテナ技術のあれこれ 過去のスライド: https://speakerdeck.com/track3jyo 趣味︓家のアーキテクチャを考えること

Slide 3

Slide 3 text

© 2022, Amazon Web Services, Inc. or its affiliates. AWS ソリューション 知ってますか︖︖ • AWS サービス、コード、設定を組み合わせた すぐにデプロイできるソリューションや参考アーキテクチャ(2022/8時点で54個) 3 https://aws.amazon.com/jp/solutions/

Slide 4

Slide 4 text

© 2022, Amazon Web Services, Inc. or its affiliates. AWS ソリューションの実体 • 概要、構成図、デプロイガイド(ドキュメント)、CloudFormation、GitHubリンク • すぐに利⽤できるので、⾞輪の再発明を回避できることも 4

Slide 5

Slide 5 text

© 2022, Amazon Web Services, Inc. or its affiliates. 5 https://twitter.com/track3jyo/status/1574045739923419136 AWS ソリューションの嬉しいところ

Slide 6

Slide 6 text

© 2022, Amazon Web Services, Inc. or its affiliates. AWS ソリューションの⼀例 • Amazon WorkSpaces コストオプティマイザー § Workspaces のコスト⾃動最適化のソリューション • Instance Scheduler on AWS § EC2 や RDS をスケジュール決めて停⽌・起動するための仕組み • Distributed Load Testing on AWS § AWS 上に分散負荷テスト環境を構築 • Limit Monitor § 上限緩和の状況を Watch・Nortification するための仕組み • AWS Health Aware § SHD や PHD のモニタリング・通知基盤 • Workload Discovery on AWS § アカウント上のワークロードの可視化 6 • AWS QnABot § 多⾔語対応の Chatbot ソリューション • AWS DevOps Monitoring Dashboard § CI/CD 環境の継続的な改善をするためのダッシュボード • AWS Edit in the Cloud § クラウド上での動画編集環境 • AWS WAF セキュリティオートメーション § AWS WAF のセキュリティオートメーションソリューション • Serverless Image Handler § 動的な画像変換配信の仕組み ・・・and more

Slide 7

Slide 7 text

© 2022, Amazon Web Services, Inc. or its affiliates. AWS ソリューションの⼀例 • Amazon WorkSpaces コストオプティマイザー § Workspaces のコスト⾃動最適化のソリューション • Instance Scheduler on AWS § EC2 や RDS をスケジュール決めて停⽌・起動するための仕組み • Distributed Load Testing on AWS § AWS 上に分散負荷テスト環境を構築 • Limit Monitor § 上限緩和の状況を Watch・Nortification するための仕組み • AWS Health Aware § SHD や PHD のモニタリング・通知基盤 • Workload Discovery on AWS § アカウント上のワークロードの可視化 7 • AWS QnABot § 多⾔語対応の Chatbot ソリューション • AWS DevOps Monitoring Dashboard § CI/CD 環境の継続的な改善をするためのダッシュボード • AWS Edit in the Cloud § クラウド上での動画編集環境 • AWS WAF セキュリティオートメーション § AWS WAF のセキュリティオートメーションソリューション • Serverless Image Handler § 動的な画像変換配信の仕組み ・・・and more

Slide 8

Slide 8 text

© 2022, Amazon Web Services, Inc. or its affiliates. 今⽇のおはなし • ありそうなお悩みベースで、AWS ソリューションを アーキテクチャや実装という観点で⾒ていきます 8

Slide 9

Slide 9 text

© 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. ケース 1. 社内利⽤のシステムや開発環境で使っている EC2 や RDS を夜間・休⽇に Start/Stop する仕組みを Lambda 使って…むむむ 9

Slide 10

Slide 10 text

© 2022, Amazon Web Services, Inc. or its affiliates. Instance Scheduler on AWS • 指定したタグの値に基づいて、指定の時間に EC2 インスタンスや RDS インスタンスを開始・停⽌させる仕組み • 開発環境、テスト環境は平⽇の⽇中以外は停⽌してコストを削減したい︕ • ⽇を跨ぐスケジュール、曜⽇指定、毎⽉第⼀⽉曜⽇といった柔軟なスケジュール 設定が分単位で可能 • 異なるアカウントやリージョン間のインスタンスの起動及び停⽌スケジュールを 設定可能 E C 2 や R D S を ス ケ ジ ュ ー ル 決 め て 停 ⽌ ・ 起 動 す る た め の 仕 組 み 10 https://aws.amazon.com/jp/solutions/implementations/instance-scheduler/

Slide 11

Slide 11 text

© 2022, Amazon Web Services, Inc. or its affiliates. アーキテクチャとその実装 11 Amazon EventBridge

Slide 12

Slide 12 text

© 2022, Amazon Web Services, Inc. or its affiliates. DynamoDB へのスケジュール登録 12 ピリオド定義︓インスタンスの開始時刻、終了時刻、曜⽇を設定 スケジュール定義︓ピリオド定義の組み合わせで定義 12 DynamoDB にて 設定管理

Slide 13

Slide 13 text

© 2022, Amazon Web Services, Inc. or its affiliates. Scheduler CLI • 専⽤の CLI ツールである Scheduler CLI を提供 13 $ scheduler-cli create-period --name "mon-start-9am" --begintime 09:00 --endtime 23:59 --weekdays mon \ --stack InstanceScheduler $ scheduler-cli create-period --name "tue-thu-full-day" --weekdays tue-thu --stack InstanceScheduler $ scheduler-cli create-period --name "fri-stop-5pm" --begintime 00:00 --endtime 16:59 --weekdays fri \ --stack InstanceScheduler $ scheduler-cli create-schedule --name mon-9am-fri-5pm --periods mon-start-9am,tue-thu-full-day,fri-stop-5pm \ --timezone Asia/Tokyo --stack InstanceScheduler

Slide 14

Slide 14 text

© 2022, Amazon Web Services, Inc. or its affiliates. 利⽤料⾦例 (us-east-1) 14 サービス 項目 月額料金 AWS Lambda 24 時間あたり 1,440 回実⾏ 1 つの Lambda 関数は1回あたり 8 秒間の実⾏時間 Lambda 関数は 5 つ実⾏ $7.25 Amazon CloudWatch Metrics (enabled) オプションで有効化した場合 $0.90 AWS DynamoDB ⽉あたり 1,080,000 回の書き込み ⽉あたり 1,080,000 回の読み込み ストレージ料⾦は 1 GB 未満 (最初の 25 GB は無料です) $1.75 合計: 9.90 USD/⽉ ソリューション⾃体は無償、各 AWS サービス利⽤料は発⽣ ※前提︓2 つのアカウントの Amazon EC2 及び Amazon RDS に対するスケジュールを設定

Slide 15

Slide 15 text

© 2022, Amazon Web Services, Inc. or its affiliates. 参考情報 • ソリューション概要 • https://aws.amazon.com/jp/solutions/implementations/instance-scheduler/ • サーバーを指定した期間で停⽌する「AWS Instance Scheduler」を試してみる • https://aws.amazon.com/jp/builders-flash/202110/instance-scheduler/ • GitHub (ソースコード) • https://github.com/aws-solutions/aws-instance-scheduler • デプロイガイド • https://d1.awsstatic.com/Solutions/ja_JP/instance-scheduler-on-aws.pdf 15

Slide 16

Slide 16 text

© 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. ケース 2. 新システムの導⼊前に負荷テストをするんだけ ど、負荷をかける側のサーバーやラップトップがボトル ネックになるんです。ちょっと⼿間だけど、分散負荷テ スト⽤の仕組み作るか・・・はぁ 16

Slide 17

Slide 17 text

© 2022, Amazon Web Services, Inc. or its affiliates. Distributed Load Testing on AWS 17 分散負荷テスト⽤の AWS Solutions (Solutions⾃体は無償, 各AWSサービス利⽤料は発⽣) AWS Fargate タスク1 タスク2 タスクn … 1〜1000タスク (リージョン毎 Quotaに注意) 1タスクあたりの 仮想ユーザー数を指定して 並列処理 Apache JMeter テストシナリオ (.jmx) S3バケット 各タスクが S3バケット から取得 負荷テスト対象アプリ ※ご注意︓Network Stress Testに関する 留意事項を事前にご確認ください https://aws.amazon.com/ec2/testing/ … Distributed Load Testing on AWS の提供範囲

Slide 18

Slide 18 text

© 2022, Amazon Web Services, Inc. or its affiliates. 負荷テスト実⾏の流れ (1) 新規テストの作成で、シナリオ定義ファイルと負荷設定を⾏い投⼊ (v1.3.0からはスケジュール型実⾏も可能) # 設定 説明 1 Task Count 負荷エンジンとなるFargateタスクの数(最⼤1,000) 2 Concurrency タスク毎に⽣成される仮想ユーザー数 3 Ramp Up Concurrencyに到達する時間(0以上, 単位︓秒 or 分) 4 Hold For Concurrencyの維持時間 (1以上, 単位︓秒 or 分) Test Typeで「JMeter」を選択 JMeterシナリオ定義(.jmx) またはZIPを選択&アップロード (→S3バケットに保存される)

Slide 19

Slide 19 text

© 2022, Amazon Web Services, Inc. or its affiliates. 負荷テスト実⾏の流れ (2) 負荷テストの実⾏状況や結果は、詳細画⾯にて確認可能 TaskCount シナリオ上タスク数 Provisioning Count Fargateタスク要求中の数 Pending Count タスク起動待ち数 Running Count タスク起動済み数 シナリオ実⾏状況 Fargateタスク状況

Slide 20

Slide 20 text

© 2022, Amazon Web Services, Inc. or its affiliates. 負荷テスト実⾏の流れ (3) 負荷テストの実⾏状況や結果サマリーは、詳細画⾯にて確認可能 (同じ設定 や タスク数などの設定を変更し、再実⾏も可能) 同⼀シナリオに対する実⾏毎の履歴

Slide 21

Slide 21 text

© 2022, Amazon Web Services, Inc. or its affiliates. アーキテクチャとその実装 21

Slide 22

Slide 22 text

© 2022, Amazon Web Services, Inc. or its affiliates. 利⽤料⾦例 (us-east-1) サービス 項⽬ ⽉額料⾦ AWS Fargate 10 個のオンデマンドタスク (2 つの vCPU と 4 GB のメモリ を使⽤) を 30 時間実⾏ 29.62 USD Amazon DynamoDB 1,000 件のオンデマンド書き込みキャパシティーユニット 1,000 件のオンデマンド読み込みキャパシティーユニット 0.0015 USD AWS Lambda 1, 000 件のリクエスト 合計所要時間 10 分 0.00146 USD AWS Step Functions 1,000 件の状態遷移 0.025 USD 合計: 29.65 USD/⽉ ※前提︓10個の Fargate タスクで⽉に 30 時間の負荷試験を実施した場合

Slide 23

Slide 23 text

© 2022, Amazon Web Services, Inc. or its affiliates. 参考情報 23 • ソリューション概要 • https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/ • ⼤規模な負荷テストを実⾏可能。「Distributed Load Testing on AWS」を試してみる • https://aws.amazon.com/jp/builders-flash/202108/distributed-load-testing/ • GitHub (ソースコード) • https://github.com/aws-solutions/distributed-load-testing-on-aws • デプロイガイド • https://d1.awsstatic.com/Solutions/ja_JP/distributed-load-testing-on-aws.pdf

Slide 24

Slide 24 text

© 2022, Amazon Web Services, Inc. or its affiliates. © 2022, Amazon Web Services, Inc. or its affiliates. 時間があれば他のソリューション ⾒てみる︕ 24

Slide 25

Slide 25 text

© 2022, Amazon Web Services, Inc. or its affiliates. まとめ • AWS ソリューションはサービス、コード、設定を組み合わせた すぐにデプロイできるソリューションや参考アーキテクチャ • その実装やアーキテクチャが公開されているので、リファレンス として⾮常に便利 • 概念的に似た仕組みで実現できそうなソリューションを⾒つけれ ば、そのテンプレートをベースにして開発して⾞輪の再発明を回 避しましょう 25

Slide 26

Slide 26 text

© 2022, Amazon Web Services, Inc. or its affiliates. Thank you! © 2022, Amazon Web Services, Inc. or its affiliates. Shinichi Hama track3jyo