Slide 1

Slide 1 text

作ってよ 簡単でしょ? 「⚪︎ ⚪︎ 試験の環境作ってよ」と言われた時に よく使うAWSのソリューションについて

Slide 2

Slide 2 text

自己紹介 > クラスメソッド株式会社 開発3年、クラウドエンジニア2年 JSTQB Advanced Level TMに合格しました > 経歴 ダイの大冒険(重要) > 好きなもの モダンアプリケーションコンサルティング部 >名前 bun913(今泉大樹)

Slide 3

Slide 3 text

私の立場や発表の前提 > 領域 スクラム開発やなんちゃってなスクラム開発の経験がメインです > 開発手法 Webアプリケーションが主領域(AWS、バックエンド開発、ちょっとフロントエンド) >立場 開発に近い立場として、テストやQAについて真剣に考えています

Slide 4

Slide 4 text

今日話すこと・話さないこと 話す さくっとHTTPS通信可能なエンドポイントを作る時 に便利なサービス さくっと負荷試験環境を立ち上げるソリューション 話さない CI・CDや継続的テストのソリューション

Slide 5

Slide 5 text

1: AWS Lambda関数URL (Function URLs)

Slide 6

Slide 6 text

こんな時に使う bunちゃんさぁ、 お願いがあるんだけど お、おう

Slide 7

Slide 7 text

さくっとHTTPSで通 信できるAPI作ってよ 簡単でしょ?

Slide 8

Slide 8 text

やりたいことはこんな感じ お客様から登録してもらうWebhooのエンドポイント にちゃんと意図したタイミングでリクエストできてい るか確認したい 本格的な認証とか機能とかは不要 常時立ち上げるのではなく、必要な時だけ立ち上げる ローカルで動いているWebサーバーを一時的にWebに 公開するようなツールの利用はセキュリティ上NG

Slide 9

Slide 9 text

Lambda単体で さくっとできるのよ

Slide 10

Slide 10 text

AWS Lambda関数URLを使う 出典: https://dev.classmethod.jp/articles/aws-lambda-function-urls-built- in-https-endpoints/ 出典: https://dev.classmethod.jp/articles/try-aws-lambda-function-urls/

Slide 11

Slide 11 text

コンソールからぽちぽちで簡単に作成可 Lambdaのダッシュボードから関数URLを設定する 中のコードも最低限この程度であればすぐに書ける

Slide 12

Slide 12 text

うれしいポイント AWS Lambdaのコストしかかからない(安価) Amazon CloudWatch Logs と Lambdaを連携させれ ば、リクエストログも簡単に確認できる HTTPS で通信可能なエンドポイントをさくっと作成 する最も簡単な方法の一つ(だと感じています) 使わない時は Lambda の同時実行数を0にすることも

Slide 13

Slide 13 text

注意したいポイント 独自ドメインを使いたい時には不向き 高度なセキュリティ要件を求められる場合には不向き 恒常的に利用するエンドポイントには向かないかも? そういう時はちゃんとしたWebサービス立てる → 総じてシンプル、安く、特定のタイミングだけ使いた い時に使うことが多いです

Slide 14

Slide 14 text

2: AWSの提供する分散負荷テストのソ リューション 出典: https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/

Slide 15

Slide 15 text

こんな時に使う bunちゃんさぁ、 負荷試験好きだよね? 負荷試験。 お、おう

Slide 16

Slide 16 text

やりたいことはこんな感じ ローカルPCや単体のサーバーでは再現しにくい負荷を 与えたい 色々な使い方が想定される シンプルに単体のエンドポイントに負荷をかける ログインなども含めた複雑なシナリオもある 「bunちゃん、さくっと環境立ち上げてよ」という圧

Slide 17

Slide 17 text

AWSで立ち上げれる仕組みを用意してくれています 出典: https://aws.amazon.com/jp/solutions/implementations/distributed-load-testing-on-aws/

Slide 18

Slide 18 text

CloudFormationというIaCツールのテンプレート 公式で用意しているyamlをそのまま使うだけ

Slide 19

Slide 19 text

CloudFormationのコンソールからymlをアップロード

Slide 20

Slide 20 text

各種設定値を入力

Slide 21

Slide 21 text

こんな感じのWebUIを作成してくれます

Slide 22

Slide 22 text

JMeterのシナリオをアップロードも可能

Slide 23

Slide 23 text

うれしいポイント AWS公式が出しているという安心感 負荷試験基盤側のスケーリングなどをほぼ考えなくて よい CloudFormationが分かればカスタマイズ可能 例: ターゲットがIPアドレスでアクセス制限してい る時、ソリューションのIPアドレスを固定する等 JMeterがわかれば複雑なシナリオの作り込みも可能

Slide 24

Slide 24 text

注意したいポイント 負荷量によってはAWSに事前申請が必要な場合がある 複雑なシナリオを実行できるけど、良くも悪くも JMeterであること 「ちょっと負荷をかけたい」のであれば、不要 例: AWSのサービスクオーター(リクエスト量制 限など)の時に発火するはずの通知の挙動確認

Slide 25

Slide 25 text

まとめ

Slide 26

Slide 26 text

こう言われた時は思い出すと良いかもしれません 「さくっとHTTPSで通信可能なWeb API作ってよ」 AWS Lambda 関数URL 「さくっと負荷試験の基盤作ってよ」 AWS での分散負荷テストのソリューション

Slide 27

Slide 27 text

ご清聴ありがとうございました