Slide 1

Slide 1 text

2022/8/4 AWSでお⼿軽︕負荷テスト環境構築【初⼼者向け】 雲勉 @ オンライン

Slide 2

Slide 2 text

0.講師⾃⼰紹介 2 n 名前︓⾨⾺康太郎 • プロジェクト企画推進セクション PMOグループ • 経歴 2015年 4⽉ ~ 電機メーカーSE 2021年11⽉ ~ 現職 • アイレット歴︓9ヶ⽉ • 最近ホルモン焼きにハマっています

Slide 3

Slide 3 text

0.今回お話すること 3 AWS上で負荷テスト環境を構築する⽅法をご紹介いたします。 AWSが提供するCloudFormationテンプレートを使⽤して環境を構築し、負荷テストを実 施するまでの⼿順について解説いたします。 負荷テスト環境をお⼿軽に作成、使い終わったら削除できます! 負荷テスト⽤の サーバの⽤意は? 購⼊?レンタル? モノが届くのは いつ? 次使うのはいつ? レンタル延⻑する? 必要なときに作って、 終わったらすぐに削除。 そう、AWSならね。 必要なソフトの ⼊れ込みしないと・・

Slide 4

Slide 4 text

アジェンダ 4 0. ⾃⼰紹介/今回お話すること 1. 負荷テストとは(19:05~19:10) 2. 構築する負荷テスト環境のご紹介(19:10~19:20) 3. 負荷テスト環境構築&負荷テスト実施デモ (19:20~19:45) 4. 質疑応答(19:45~20:00)

Slide 5

Slide 5 text

1. 負荷テストとは 5

Slide 6

Slide 6 text

1-1.負荷テストとは 6 n 負荷テストとは 負荷テストとは、機器やソフトウェア、システムのテスト(試験)の⼀種で、負荷を⾼ めていったときの状態や性能などを計測し、どのくらいの負荷まで正しく動作するかを 検証するもの。※1 今回はWEBサイトにおける負荷テストについて取り扱います。 n 負荷テストの⽬的 • システムの利⽤における各種ユースケースを想定し、応答性能を推測する • ⾼負荷時におけるシステムの性能改善を⾏う • ⽬的の性能を提供するために必要なハードウェアをあらかじめ選定する • システムのスケール性を確認する ※1 https://e-words.jp/w/%E8%B2%A0%E8%8D%B7%E3%83%86%E3%82%B9%E3%83%88.html

Slide 7

Slide 7 text

1-2.負荷テストのために⽤意するもの 7 負荷テストにあたり、負荷テストの対象となる環境とは別に、「負荷掛け環境」を⽤意する 必要があります。 今回は「負荷掛け環境」の構築⽅法についてご紹介いたします。 負荷掛け環境 負荷テスト 対象環境

Slide 8

Slide 8 text

1-3.負荷テストの進め⽅ 8 負荷テストの流れは以下となります。 負荷テストの⽬的・⽬標の決定 シナリオ作成 負荷掛け環境構築 負荷テスト実施 チューニング 負荷テスト完了

Slide 9

Slide 9 text

1-4.AWS環境における負荷テストの注意点 9 • ⽣成するトラフィック量により、事前の申請が必要となる場合がある 1 Gbps (10 億ビット / 秒) または 1 Gpps (10 億パケット / 秒) を超えて、合計で 1 分 以上維持するトラフィックを⽣成すると思われる場合、AWSへの事前申請が必要となりま す※2 ˞ IUUQTBXTBNB[PODPNKQFDUFTUJOH

Slide 10

Slide 10 text

2.構築する負荷テスト環境のご紹介 10

Slide 11

Slide 11 text

2-1.今回の勉強会でやること 11 n 今回の勉強会でやること • 今回はAWSが提供する”AWSでの分散負荷テスト” のソリューションの紹介・解説となります。 • CloudFormationを展開することで、負荷テスト環 境の構築ができます。 • 提供されたGUIにより、パラメータを⼊⼒するだけで 負荷テストが可能となります。 • JMeter(負荷テストツール)のシナリオファイルを読 み込ませて実⾏することも可能です。 URL︓ https://aws.amazon.com/jp/solutions/implementatio ns/distributed-load-testing-on-aws/

Slide 12

Slide 12 text

12 実演1 CloudFormation

Slide 13

Slide 13 text

2-2.負荷テスト環境の解説 13 n ウェブコンソール • CloudFront、S3により、 負荷テストシナリオ⽤コン ソール画⾯・ログイン画⾯ が提供されます。 • この画⾯で負荷テストのシ ナリオを⼊⼒します。 • ⼊⼒したシナリオの情報は 負荷テストAPIへ送信され ます。 引⽤元URL︓https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/ ブラウザでアクセス

Slide 14

Slide 14 text

14 n 負荷テストAPI • API Gatewayは負荷テス トのシナリオ情報を受信し ます。後続のLambdaによ り、S3とDynamo DBへの シナリオ情報の書き込み、 Step Functionsの起動を ⾏います。 • API Gatewayへのリクエ スト時、CognitoにてAPI 実⾏の認可が⾏われていま す。 引⽤元URL︓https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/ データ書き込み 起動 2-2.負荷テスト環境の解説

Slide 15

Slide 15 text

15 n バックエンド • 負荷テストAPIからのリク エストを受け、Step Functionsが起動します。 • 負荷テスト⽤のコンテナが 起動し、シナリオに沿った リクエストを対象へ送信し ます。 • テストの結果は CloudWatchとDynamo DBへ格納されます。 引⽤元URL︓https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/ 負荷テスト実⾏ (リクエスト送信) 負荷テスト 対象環境 起動 2-2.負荷テスト環境の解説

Slide 16

Slide 16 text

3.負荷テスト環境構築&負荷テスト実施デモ 16

Slide 17

Slide 17 text

17 3-1.負荷テスト シナリオ 引⽤元URL︓https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/ 負荷テスト実⾏ (リクエスト送信) ① GUIで シナリオ⼊⼒ ② JMeter シナリオ ファイル⼊⼒ 実演する負荷テストのシナリオは下記2パターンとなります。 ① GUIを使⽤して、負荷テスト対象環境に多数のGETリクエストを送信する。 ② JMeterのシナリオをインポートして、実⾏する。

Slide 18

Slide 18 text

18 引⽤元URL︓https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/ 負荷テスト実⾏ (リクエスト送信) ① GUIで シナリオ⼊⼒ 実演する負荷テストのシナリオは下記2パターンとなります。 ① GUIを使⽤して、負荷テスト対象環境に多数のGETリクエストを送信する。 ② JMeterのシナリオをインポートして、実⾏する。 3-1.負荷テスト シナリオ

Slide 19

Slide 19 text

19 実演2 コンソール画⾯操作 負荷テスト①実施

Slide 20

Slide 20 text

20 引⽤元URL︓https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/ GETとPOSTを交互に リクエストを送信 ② JMeter シナリオ ファイル⼊⼒ 実演する負荷テストのシナリオは下記2パターンとなります。 ① GUIを使⽤して、負荷テスト対象環境に多数のGETリクエストを送信する。 ② JMeterのシナリオをインポートして、実⾏する。 シナリオ︓GETとPOSTを交互にリクエストを送信 GETには200を応答 POSTには403を応答 3-1.負荷テスト シナリオ

Slide 21

Slide 21 text

21 実演3 負荷テスト②実施

Slide 22

Slide 22 text

22 質疑応答