SlideShare ist ein Scribd-Unternehmen logo
1 von 74
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
Solutions Architect 松原 武司
Amazon API Gateway
サービスカットシリーズ
[AWS Black Belt Online Seminar]
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
⾃⼰紹介
❏ 名前
松原 武司
❏ 所属
アマゾン ウェブ サービス ジャパン 株式会社
技術統括本部 ⾦融ソリューション部
ソリューション アーキテクト
❏ 好きなAWSのサービス
Amazon API Gateway AWS Cloud9
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS Black Belt Online Seminar とは
「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマ
ゾン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。
質問を投げることができます!
• 書き込んだ質問は、主催者にしか⾒えません
• 今後のロードマップに関するご質問は
お答えできませんのでご了承下さい
① 吹き出しをクリック
② 質問を⼊⼒
③ Sendをクリック
Twitter ハッシュタグは以下をご利⽤ください
#awsblackbelt
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
内容についての注意点
• 本資料では2019年5⽉14⽇時点のサービス内容および価格についてご説明しています。最新の情
報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。
• 資料作成には⼗分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違
があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。
• 価格は税抜表記となっています。⽇本居住者のお客様が東京リージョンを使⽤する場合、別途消
費税をご請求させていただきます。
• AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to
change in accordance with the AWS Customer Agreement available at
http://aws.amazon.com/agreement/. Any pricing information included in this document is
provided only as an estimate of usage charges for AWS services based on certain information
that you have provided. Monthly charges will be based on your actual use of AWS services, and
may vary from the estimates provided.
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本⽇のアジェンダ
• はじめに - API / Web API とは
• Amazon API Gateway 概要
• 全体イメージ
• ユースケース
• REST API / WebSocket API
• その他主要な機能
• 補⾜的な機能 や ご使⽤料⾦の情報など
• まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本⽇のアジェンダ
• はじめに - API / Web API とは
• Amazon API Gateway 概要
• 全体イメージ
• ユースケース
• REST API / WebSocket API
• その他主要な機能
• 補⾜的機能 や ご使⽤料⾦の情報など
• まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
今⽇お話しするテーマ の “API”
Web API⾔語処理系API
[SDK/ライブラリ等]
ネットワーク
呼び出しAPI
“Application Programming Interface”:
プログラムやソフトウェア同⼠がやり取りするための取り決め・仕様
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
増え続けるWeb API
(出典) programmableweb.com 記事「Research Shows Interest in Providing APIs Still High」(2018/2/23) より
https://www.programmableweb.com/news/research-shows-interest-providing-apis-still-high/research/2018/02/23
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Web API 増加の背景
緩やかにシステムが連携し APIによるエコシステム を構築するスタイルが
Webの発展に上⼿く合致
Web API
API提供者
(プロバイダー)
API利⽤者
(ユーザー)
API利⽤者
(企業/システム)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS と Web API
Web API
AWSもまた、数多くの Web API をご提供しています
←
AWS クラウド
Amazon
Elastic Compute
Cloud (EC2)
Amazon
Simple Storage
Service (S3)
Amazon
DynamoDB
Amazon
CloudFront
Amazon
CloudWatch
etc ...
AWS
WAF
Amazon
Cognito
AWS
X-Ray
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Web API提供時の課題
Web API
の
共通課題
個別のWeb API
:
:
1. インフラの管理
(可⽤性とスケーラビリティ)
2. APIの管理
(設定やデプロイの制御)
3. 認証と認可
(アクセスの制御)
4. 流量制御と保護
(スロットリング)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本⽇のアジェンダ
• はじめに - API / Web API とは
• Amazon API Gateway 概要
• 全体イメージ
• ユースケース
• REST API / WebSocket API
• その他主要な機能
• 補⾜的機能 や ご使⽤料⾦の情報など
• まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon API Gateway の位置づけ
1. インフラの管理
(可⽤性とスケーラビリティ)
2. APIの管理
(設定やデプロイの制御)
3. 認証と認可
(アクセスの制御)
4. 流量制御と保護
(スロットリング)
AWS クラウド
Amazon
API Gateway
バックエンド
(AWS Lambda)
バックエンド
(HTTPアクセス先)
バックエンド
(各種AWSサービス)
インターネット
(外部Web)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon API Gateway が利⽤可能なリージョン
Amazon API Gateway は 21 のリージョン全てでご利⽤可能
(2019/05/14現在、⼤阪ローカルリージョンを除く)
Sydney
Tokyo
Beijing
Seoul
Ningxia
Hong Kong
Singapore
Mumbai
Sweden
Ireland London
Frankfurt
Paris
São Paulo
Montreal
AWS GovCloud
East
N. Virginia
Ohio
AWS GovCloud
West
Oregon
N. California
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon API Gateway の主なユースケース概要
1. インターネットからアクセス可能なパブリックなWeb APIの基盤
を提供する
2. ⾃社企業・企業グループ内でのプライベートなWeb APIの基盤を
提供する
3. AWSサービス(例:Amazon DynamoDB 等)を独⾃のWeb API化す
る⼿段として利⽤する
4. サーバーレスアーキテクチャを実現する⼿段として利⽤する
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWSサービスとしての Amazon API Gateway
Amazon API Gateway (以降、「API Gateway」と記載) は、
フルマネージド型のサービス
AWS クラウド
エッジ
ロケーション
リージョン
ユーザー
Virtual Computing
Cloud (VPC)
サブネット
仮想サーバー(OS)管理不要
マネージドサービスのメリット
API Gateway
接続Point
(POP)
⾃動でスケール
各種サービス
(S3等)
使⽤量に応じた課⾦
インターネット
インター
ネット CloudFront
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API Gateway 管理コンソール
メニュー
(プライマリ
ナビゲーション
ペイン)
設定・詳細
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API
API1
API Gateway の概要図
エンドポイントURL
(https://<id>.execute-
api.<region>.amazonaws
.com/<stage>/…)
種
別
ユーザーVPC
Elastic
Load
Balancing
使⽤量プラン APIキー
ステージ ステージ1 …
カスタム
ドメイン
ドメイン1
…
REST: リソース
リソース1
クライアント
証明書
証明書1
キー1
VPCリンク …
リンク1
…
WebSocket: ルート
メソッド1
…
リソースポリシー
オーソライザー
ルート1
…
メソッドResponse 統合Response
CloudWatch
X-Ray
ルートRequest 統合Request
Lambda
AWSサービス
HTTPサービス
Cognito
APIキャッシュ
キャッシュ1
WAF
…オーソライザー1
…… …プラン1
…
…
Amazon
Route 53
メソッドRequest 統合Request
外部 VPC
内部
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API Gateway が扱うAPI
API Gatewayは「REST」「WebSocket」の2種類のAPIを扱うことが可能
Web API
の種類
• REST= Representational state transfer
• 単⼀HTTPメッセージで1つの操作に関する情報を(理想では)含む
• 扱う情報をURIで表現する「リソース」として定義し、それらを
HTTPメソッド(PUT, GET, POST, DELETE, …)の表現で操作
REST
• HTTPの上で、クライアントとサーバー間の双⽅向通信を実現す
るための通信仕様
• ⼀つのコネクションで継続的なデータ送受信が可能
• URIスキームは セキュアWebSocket⽤の「wss://~」を利⽤
WebSocket
API Gateway
2018/12/19 Updateで対応
“ステートレス”
“ステートフル”
(※どちらもセキュア接続のみ)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API Gateway が扱うAPI - REST エンドポイントタイプ
REST APIの場合、3種類のエンドポイントタイプから1つを選択
(クライアントから⾒たアクセス先エンドポイントとしての性質を決定)
リージョンエッジ最適化 プライベート
Web API
エンドポイントタイプ
•⼀旦エッジロケーショ
ン(CloudFrontディス
トリビューション)に
ルーティング
•Publicからのアクセス
はできず、VPC内から
AWS PrivateLink = VPC
エンドポイント経由で
のみアクセス可能
•リージョンに直接ルー
ティング
•リクエスト元が同⼀
リージョンの場合レイ
テンシ削減
•CloudFrontと組合せ可
REST
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API 作成の流れ (新規作成)
②:プロトコル
種別とタイプ選択
③-a:リソース &
メソッド設定
④:デプロイと
ステージ設定
③-b:ルート設定
REST
WebSocket
• API仕様に基づき
REST or
WebSocketを選
択
• RESTの場合はエ
ンドポイントタイ
プを選択
ü リージョン
ü エッジ最適化
ü プライベート
• プロトコル種別に
応じたAPIの設定
を実施
• 設定後、APIとし
てのテスト呼び出
しが可能
(公開前の状態にお
けるテスト)
• デプロイ操作(API
単位)によりクラ
イアントから呼び
出し可能な状態へ
• デプロイ先ステー
ジを新規または既
存から選択し、ス
テージの設定と接
続テスト
①:APIの設計
(仕様の確認)
• 作成するAPIの要
求・仕様を確認
• 以降の作業で⾏う
設定項⽬を検討
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 デプロイとステージ
API (例: PetStore)
ステージ: staging
ステージ: dev
https://<api-id>.execute-api.<region-id>.amazonaws.com/prod/…
https://<api-id>.execute-api.<region-id>.amazonaws.com/staging/…
https://<api-id>.execute-api.<region-id>.amazonaws.com/dev/…
APIは ステージ に“デプロイ”することでクライアントから呼び出し可能に
(ステージ名はエンドポイントURL(パス)の⼀部として利⽤される)
prodデプロイ
年/⽉/⽇
時:分:秒
prodデプロイ
年/⽉/⽇
時:分:秒
prodデプロイ
年/⽉/⽇
時:分:秒
t:時間軸
ステージ毎の
デプロイ履歴を保持
…
ステージ: prod
WebSocketREST
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API 作成の流れ (新規作成 - RESTの場合のみ)
既存APIの
クローン
Swaggerファイル
のインポート
「既存APIのクローン」または「Swagger(OpenAPI)ファイルのインポート」
による作成が可能
Web API Web API
Clone
Web API
Import
• 内容をコピーしつつ、別の名前とID
を持つ新規のAPIとして作成
• 互換性がない変更が⾏われたAPIを
別APIとして公開したい場合に有⽤
• Swagger2.0/3.0(OAS2.0/3.0) のファ
イル(JSON, YAML)をインポート可能
• API Gateway固有の定義は
x-amazon-apigateway-* で指定可能
OpenAPI 2.0 または 3.0
REST
* *
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本⽇のアジェンダ
• はじめに - API / Web API とは
• Amazon API Gateway 概要
• 全体イメージ
• ユースケース
• REST API / WebSocket API
• その他主要な機能
• 補⾜的機能 や ご使⽤料⾦の情報など
• まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 (REST) - リソースとメソッド
API (REST) 例:PetStore
リソース: /
リソース: /pets
リソース: /{petId}
「/」を最上位としたツリー構造にて「リソース」を定義。
各リソースに受け付けるHTTPメソッドを指定 (パスパラメータの利⽤も可能)
リソース: /echo
• 各APIには「英数⼩⽂字からなる識別⼦」が割
り振られ、URL(ドメイン名の⼀部)を構成
• 各APIは常に"/"リソースを起点として持つ
• "/"リソース配下にリソースを複数構成可能
• リソース名がURL(パス)の⼀部を構成
• 各リソースにメソッドを複数構成可能
• メソッド毎にフローを構成
• メソッドは7つのHTTPメソッドとANYから選択
• GET, POST, PUT, HEAD, DELETE,
OPTIONS, PATCH または ANY
エンドポイントURL (https://<api-id>.execute-api.<region-id>.amazonaws.com/<stage-name>/…)
GET
GET, PUT, POST, HEAD
ANY
REST
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
メソッド (GET /pets/{petId})
API設定 (REST) - メソッド設定
API (REST) 例:PetStore
リソース: /
リソース: /pets
リソース: /{petId}
GET, PUT, POST, HEAD
()
(
統
合
)
メソッド
リクエスト
統合
リクエスト
メソッド
レスポンス
統合
レスポンス
REST
• リソースとメソッドの組合わせ毎に、合計4つの設定箇所で1つのフロー処理を定義
• メソッドリクエスト→統合リクエスト → 統合レスポンス→メソッドレスポンス
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
メソッド (GET /pets/{petId})
API設定 (REST) - メソッド設定
API (REST) 例:PetStore
リソース: /
リソース: /pets
リソース: /{petId}
GET, PUT, POST, HEAD
(
統
合
)
統合
リクエスト
メソッド
レスポンス
統合
レスポンス
REST
• 認証の設定や、受け付けるクエリパラメータ、必須とするHTTPヘッダなど「リクエ
ストの受付」に関する設定
• 設定に合致するリクエストかの検証の有無
• リクエスト時にAPIキー(HTTPヘッダ x-api-key で指定) を必須とするかどうか
メソッド
リクエスト
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
メソッド (GET /pets/{petId})
API設定 (REST) - メソッド設定
API (REST) 例:PetStore
リソース: /
リソース: /pets
リソース: /{petId}
GET, PUT, POST, HEAD
(
統
合
)
メソッド
リクエスト
統合
リクエスト
メソッド
レスポンス
統合
レスポンス
REST
• バックエンドへのリクエストに関する設定
• ルーティング先バックエンドの指定、リクエストの変換など
• バックエンドの種別(=統合タイプ)として、「Lambda関数」「HTTP」
「Mock」「AWSサービス」「VPCリンク」から選択 (後述)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
メソッド (GET /pets/{petId})
API設定 (REST) - メソッド設定
API (REST) 例:PetStore
リソース: /
リソース: /pets
リソース: /{petId}
GET, PUT, POST, HEAD
(
統
合
)
メソッド
リクエスト
統合
リクエスト
メソッド
レスポンス
統合
レスポンス
REST
• バックエンドからのレスポンスに関する設定
• レスポンス内容の変換やステータスコードのマッピングなど
• (統合リクエストに「統合プロキシ」を指定した場合は設定不可)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
メソッド (GET /pets/{petId})
API設定 (REST) - メソッド設定
API (REST) 例:PetStore
リソース: /
リソース: /pets
リソース: /{petId}
GET, PUT, POST, HEAD
(
統
合
)
メソッド
リクエスト
統合
リクエスト
メソッド
レスポンス
統合
レスポンス
REST
• リクエストに対する最終的なAPI Gatewayとしてのレスポンスに関する設定
• どういうステータスコードやHTTPレスポンスヘッダを返すかなど
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API ダッシュボード (REST)
• API呼び出し
• そのAPIの呼び出し回数
• レイテンシー
• リクエストを受け取ってから
応答するまでの時間(ms)
• 統合のレイテンシー
• バックエンドとのやり取りに
要した時間(ms)
• 4xx エラー
• HTTP応答 4xx を返した回数
• 5xx エラー
• HTTP応答 5xx を返した回数
REST
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本⽇のアジェンダ
• はじめに - API / Web API とは
• Amazon API Gateway 概要
• 全体イメージ
• ユースケース
• REST API / WebSocket API
• その他主要な機能
• 補⾜的機能 や ご使⽤料⾦の情報など
• まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 (WebSocket) - ルート
WebSocketの状態に関するイベントを「ルート(Route)」として定義。
3つの事前定義ルートに加えてメッセージに応じたルートを指定可能
WebSocket
API (WebSocket) • 各APIには「英数⼩⽂字からなるID(api-id)」が
割り振られ、URL(ドメイン名の⼀部)を構成
• 接続とWebSocket⽤に2つのURLが提供
• 3つの「ルート」が事前定義
• WebSocket接続・切断時の処理
• ルート選択式で評価するデータが無かった
場合 $default が利⽤(⾮JSONの場合含む)
• メッセージデータ(JSON)内の式が⽰すフィー
ルドの値としてカスタムルートが定義されてい
た場合はそのルートが選択
ルート選択式 (例) :
$request.body.action
$connect (接続時)
$disconnect (切断時)
$default (デフォルト)
(ルート1)
…
1. WebSocket URL (wss://<api-id>.execute-api.<region-id>.amazonaws.com/<stage-name>)
2. Callback URL (https://<api-id>.execute-api.<region-id>.amazonaws.com/<stage-name>/@connections/<connetion-id>)
事前定義の
3つのルート
メッセージ内
の選択式の
フィールド値
に対応
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API (WebSocket)
API設定 (WebSocket) - ルート選択式
ルート選択式 (例) :
$request.body.action
ルート: join
ルート: leave
{
"service" : "chat",
"action" : "join",
"data" : {
"room" : "room1234"
}
}
WebSocketメッセージデータ(例)
ルート: knock
WebSocket
ルート:$default
この例の場合、以下のケースで $default が利⽤される:
• メッセージデータがJSON形式データではない
• JSON形式データ直下にactionフィールドが存在しない
• actionフィールドの値が"join","leave","knock"のいずれでもない
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 (WebSocket) - ルート設定 WebSocket
ルート
API (WebScocket)
()
(
統
合
)
ルート
リクエスト
統合
リクエスト
(ルート
レスポンス)
(統合
レスポンス)
• ルート毎に、合計3つの設定箇所で1つのフロー処理を定義
• ルートリクエスト→統合リクエスト → 統合レスポンス→(ルートレスポンス)
• 「統合レスポンス」の設定はオプション
• 「ルートレスポンス」の設定はオプション
$connect (接続時)
$disconnect (切断時)
$default (デフォルト)
(ルートキー1)
…
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 (WebSocket) - ルート設定 WebSocket
ルート
API (WebScocket)
()
(
統
合
)
ルート
リクエスト
統合
リクエスト
(ルート
レスポンス)
(統合
レスポンス)
• $connect(接続時)ルートの場合 :認証の有無、APIキー必須、
• $disconnect(切断時)ルートの場合 :設定項⽬なし
• それ以外のルートの場合 :「モデル選択式」を指定(オプション)
• モデル選択式は、当ルートでの受信メッセージのモデル(後述)を指定
$connect (接続時)
$disconnect (切断時)
$default (デフォルト)
(ルートキー1)
…
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 (WebSocket) - ルート設定 WebSocket
ルート
API (WebScocket)
()
(
統
合
)
ルート
リクエスト
統合
リクエスト
(ルート
レスポンス)
(統合
レスポンス)
• バックエンドへのリクエストに関する設定
• バックエンドの種別(=統合タイプ)として、「Lambda関数」「HTTP」
「Mock」「AWSサービス」「VPCリンク」から選択 (REST APIと同様)
• オプションとしてテンプレート選択式を指定可能
$connect (接続時)
$disconnect (切断時)
$default (デフォルト)
(ルートキー1)
…
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 (WebSocket) - ルート設定 WebSocket
ルート
API (WebScocket)
()
(
統
合
)
ルート
リクエスト
統合
リクエスト
(ルート
レスポンス)
(統合
レスポンス)
• 「統合レスポンス」の設定はオプション
• 「レスポンス選択式」を指定
• その上で、“「レスポンスキー」とそれに対応する「テンプレート選択式」およ
び「テンプレートキー」と「テンプレート」 のセット”を複数指定可能
$connect (接続時)
$disconnect (切断時)
$default (デフォルト)
(ルートキー1)
…
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API ダッシュボード (WebSocket)
• Message Count
• 送受信メッセージ数
• Connection Count
• 接続($connect)メッセージ数
• 統合のレイテンシー
• バックエンドとのやり取りに
要した時間
• Client Errors
• バックエンド呼び出し前に4xx
応答を返したリクエストの数
• Integration Errors
• 統合から4xx/5xx応答を返した
リクエストの数
• Execution Errors
• 統合呼び出し時のエラー数
WebSocket
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本⽇のアジェンダ
• はじめに - API / Web API とは
• Amazon API Gateway 概要
• 全体イメージ
• ユースケース
• REST API / WebSocket API
• その他主要な機能
• 補⾜的機能 や ご使⽤料⾦の情報など
• まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
•認証処理を委譲する
Lambda関数を指定して
API へのアクセスを制御
(認証成功時にプリンシパ
ルIDとそのポリシードキュ
メントを返す仕様)
•独⾃の認証⽅式やOAuthな
どの認証⽅式を組み込む⽅
法として利⽤
•(以前の名称は「カスタム
オーソライザー」)
Lambda
オーソライザー
API設定 - 認証・認可 WebSocketREST
メソッドリクエスト
「認証」設定
$connect のルートリクエスト
•AWS 署名 v4による認証
•IAMユーザーのクレデン
シャル情報を利⽤してリク
エストに署名データを指定
•Cognitoフェデレーテッド
ID認証でIAMロールのアク
セス権を使う場合もこの認
証⽅式を選択
IAM
アクセス権限
•指定したCognitoユーザー
プールを元に事前に認証
•Cognito認証を⾏い取得し
たトークン (IDトークン ま
たは アクセストークン)を、
Authorization ヘッダーに
指定してAPI Gatewayへリ
クエストする
Cognito
オーソライザー
「認証」設定
1 2 3
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 認証・認可(IAMアクセス権限) WebSocketREST
APIクライアントが認証対象のIAM ユーザーの
アクセスキー等から⽣成したAWS署名v4を送信することを要求する⽅式
(HTTPリクエストヘッダーに
所定の仕様で値をセット)
GET https://…
Host: <ホスト>
Authorization: <認証パラメータ>
x-amz-date: <⽇付>
認証された
プリンシパルの権限
でバックエンド
サービスを呼び出し
• 以下の場合にAPI呼び出しが成功
• 署名パラメータ検証がOK
• 認証したプリンシパルのIAMポリ
シー上、このAPI呼び出しを⾏う
権限が許可
• このAPIのリソースポリシーが設
定されている場合、そのプリン
シパルに対してこのAPI呼び出し
を⾏う権限が許可
API 認証⽅式:
IAMアクセス権限
<署名v4データの⽣成・セット⼿段>
• AWS SDKの利⽤
• APIクライアントSDKの利⽤
• 仕様に基づくユーザー独⾃実装
など
AWS署名v4
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 認証・認可(Lambdaオーソライザー) WebSocketREST
所定の⼊出⼒仕様を満たすよう実装されたLamda関数を⽤いる⽅式
(リクエストデータを元に認証し、認証結果としてIAMポリシーJSONを返す)
(Bearerトークン
or パラメータ
など認証情報が
付加されたリクエスト)
• 以下の場合にAPI呼び出しが成功
• Lambda認証関数がポリシー&プ
リンシパルIDを返却
(or キャッシュがあれば利⽤)
• 当該ポリシー上、このAPI呼び出
しを⾏う権限が許可
• このAPIのリソースポリシー上、
プリンシパルがこのAPI呼び出し
を⾏う権限が許可
API認証⽅式:Lambda
オーソライザー
Lambda認証関数
(トークン or リクエスト
パラメーターベース)
[認証処理]
認証成功…JSON(IAMポリシー
& プリンシパルID)を返却
認証失敗…エラーを返却
認証された
プリンシパルの権限
でバックエンド
サービスを呼び出し
(外部データ/IdP)
cache
認証処理を委譲
ポリシー
JSON
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 認証・認可(Cognitoオーソライザー) REST
事前にAmazon Cognitoユーザープールで認証を⾏い、
取得したトークンをHTTPヘッダーに指定してAPIに渡すことを要求する⽅式
• 以下の場合にAPI呼び出しが成功
• トークン検証がOK
• このAPIのリソースポリシー上、プリンシ
パルがこのAPI呼び出しを⾏う権限が許可
API認証⽅式:Cognito
オーソライザー
認証された
IAMロールの権限で
バックエンドサービス
を呼び出し
Amazon Cognito
ユーザープール
(Authorization
ヘッダー(*)に
IDトークン
or アクセストークン
を指定してリクエスト)
トークン検証⽤にユーザープールを参照
認証要求
トークン
(JWT)
(*) 指定先ヘッダー名は
オーソライザー設定にて
変更可能
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
統合リクエスト
API設定 - 統合タイプ WebSocketREST
統合タイプ
•Lambda関数を指定して呼び出す
•クロスリージョン、クロスアカウントでの呼び出しに対応
Lambda関数
•インターネット経由で呼び出し可能なURL(HTTPS)とメソッドを指定して呼び出す
•Publicに到達可能なエンドポイントであれば実装場所は問わない
HTTP
•モックとしてAPI Gatewayで直接、固定的な応答を返す
•統合レスポンスのマッピングテンプレートで実際のモック応答データを設定
Mock
•AWSのサービスを直接呼び出して、各サービスで⽤意されているアクションを実⾏
•例:Kinesis Data Streamのエンドポイントを独⾃Web APIとして対外的に公開
AWSサービス
•Network Load Balancer(NLB)を参照する「VPCリンク」を登録しそれを経由して
VPC内リソースへアクセス。エンドポイントURLとしてNLBホスト名を指定
VPCリンク
※REST APIの主な制限(ハードリミット):
統合タイムアウト … 最⻑29秒
HTTPヘッダー値のサイズ … 最⼤10,240 Bytes
ペイロードサイズ … 最⼤10 MB
※WebSocket APIの主な制限(ハードリミット):
フレームサイズ … 最⼤32KB
接続時間 … 最⼤2時間
アイドル接続タイムアウト… 最⼤10分
ペイロードサイズ … 最⼤128KB
1
2
3
4
5
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 統合タイプ(Lambda関数) WebSocketREST
Lambda関数をバックエンドとして呼び出すタイプ
(別リージョン・別アカウントの関数を指定可能)
API
統合リクエスト
Lambda関数
[Lambda関数]
…
… 統合レスポンス
※Lambda関数を呼び出す場合は、
Lambdaプロキシ統合の利⽤を推奨
(マッピングテンプレートの指定が不要に)
ランタイム
ハンドラー
※対象Lambda関数に対する呼び出し権限を API Gatewayサービス に
与える必要あり(管理コンソールから設定を⾏うと⾃動的に追加可能)
Lambda関数
呼び出し
Lambda関数は「関数名」or「関数名:バージョン」
or「関数名:エイリアス」 or 「関数のARN」で指定
※エイリアスにステージ変数(${stageVariables.XXX})を指定可
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 統合タイプ(HTTP) WebSocketREST
任意のHTTPエンドポイントURLをバックエンドとして呼び出すタイプ
(Publicに到達可能であれば、インターネットやEC2等を問わない)
API
統合リクエスト
HTTP
…
… 統合レスポンス EC2Web API
インターネット
任意のURL &
HTTPメソッド
指定可能。
「コンテンツ変換」
の設定で
「Base64→バイナリ」
「バイナリ→Base64」
の変換が可能
…
(その他 稼働場所は不問)
HTTPS呼び出し
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 統合タイプ(Mock) WebSocketREST
モックデータ(マッピングテンプレートで指定)を返すタイプ
テスト実装やAPIクライアントの先⾏実装のためのモック実装が主な⽤途
API
統合リクエスト
Mock
…
… 統合レスポンス
• バックエンドを呼び出すこと
無く、統合リクエストで折り
返す
• マッピングテンプレートに基
づき、API Gatewayが返すレス
ポンスデータが決定される
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 統合タイプ(AWSサービス)
バックエンドとしてAWSサービスを指定 (実⾏ロールのARNを指定可能)
AWS サービスAPIを独⾃仕様で提供する⽤途で利⽤
API
統合リクエスト
AWSサービス
…
… 統合レスポンス
バックエンド
(AWSサービス)
任意のリージョン
サービス
endpoint
エンドポイントへのリクエストを組み⽴てるための以下を指定
• リージョン
• AWSサービス
• サブドメイン
• HTTPメソッド
• アクション名 or パス上書き(オプション)
• 実⾏ロール(ARN)
HTTPS呼び出し
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 統合タイプ(VPCリンク) WebSocketREST
同⼀リージョンのVPC内リソースをバックエンドとしてアクセスする形式
(「VPCリンク」を事前定義し、NLBと関連付けてそれを参照)
API
統合リクエスト
VPCリンク
…
… 統合レスポンス
ユーザーVPC
Elastic
Load
Balancer
(ELB)
VPCリンク
(事前定義)
名前
ターゲット
NLB
設定
参照
ターゲット
グループ
最終的なバックエンドとしてのアクセス先
リクエスト
ステージ変数を⽤いて、利⽤するVPCリンクを動的指定可能
VPCリンクID
説明
Network Load Balancer(NLB)を作成
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - リクエスト/レスポンス変換 WebSocketREST
ルート
()
(
統
合
)
メソッド/ルート
リクエスト
統合リクエスト
統合レスポンスメソッド/ルート
レスポンス
• 統合リクエスト/統合レスポンスにて指定するテンプレートドキュメント
• VTL(Velocity Template Language)とJSONPathや予約変数($input等)を利⽤し記述
• リクエストやレスポンスのデータを別の形式に変換することが可能
• ⽤途:不要フィールドの削除、XML⇔JSON変換、Mock統合タイプでのデータ指定、…
例:JSONから⼀部フィールドを抜き出しXMLに変換
#set($root = $input.path('$'))
<xml>
<name>
$root.name
</name>
</xml>
例:XMLをJSONに変換 ($input.json関数を利⽤)
{
"body" : $input.json('$')
}
マッピング
テンプレート
マッピング
テンプレート
マッピングテンプレート
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - リクエスト/レスポンス変換(REST APIでの例)
API Gateway Lambda
GET /peoples/1234
統合リクエスト
統合タイプ:Lambda関数
{
"name" : "John"
}
バックエンドLambda関数
統合レスポンス
#set($root = $input.path('$'))
<xml>
<name>
$root.name
</name>
</xml>
マッピングテンプレート
<xml>
<name>
John
</name>
</xml>
応答データ(JSON)
応答データ(XML)
マッピングテンプレート
(指定なし)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - 統合タイプ (プロキシ統合)
Lambda関数 HTTP VPCリンク
{
"statusCode" : <数値>,
"headers" : { "ヘッダ名" : "値", … },
"body" : "<応答ボディ⽂字列>"
}
「統合レスポンス」でマッピングテンプレートは指定不可 &「統合レスポンス」は全体が設定対象外に
• Lambda関数は以下を含む構造
でJSONデータを返す必要あり
• バックエンドから返されたHTTP応答データをそのまま統合レ
スポンスのデータとして返す
WebSocketREST
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - モデル
REST API
モデル
モデル1 モデル2 …
WebSocketREST
• リクエスト/レスポンスで扱われるデータ構造(スキーマ)を
JSON Schema draft 4形式で定義したもの (API Gateway利⽤上、必須ではない)
• 1つのAPI内で複数のメソッド/ルートを跨がって共通的に利⽤可能
• リクエスト検証やクライアントSDK⽣成、マッピングテンプレートで活⽤
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "User",
"type": "object",
"properties": {
"UserID": { "type": "string" },
"Name": { "type": "string" },
"Age": {
"description": "Age in years",
"type": "integer",
"minimum": 18
}
},
"required": ["UserID", "Name"]
}
モデル定義例
メソッド (GET /users/{userId})
メソッド (POST /users)
メソッドリクエスト
メソッドリクエスト
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
ステージ(prod)
APIキーと使⽤量プラン
APIキーと使⽤量プランにより、
APIのメータリングとスロットリングを実現
④APIキーを定義
WebSocketREST
①使⽤量プランを定義
⑤関連付け
API
[メソッドリクエスト]
or [ルートリクエスト($connectルート)]
API キーの必要性 : false | true
ステージ(例: prod)
②(1つまたは
複数の)
APIステージを
関連付け
APIキー
(名前 & 値ペア)
使⽤量プラン
(スロットリングと
クォータの設定)
APIクライアント
開発者
APIキー
⽂字列
を含めて
リクエスト
⑥APIキー値を提供
ステージ(例: dev)
③「APIキーの必要性」を true に設定
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
APIキーと使⽤量プラン の補⾜
• 使⽤量プランについて
• 閾値を超えるとHTTPステータスコード429(Too Many Requests)エラー
• リトライ実装はAPIクライアント開発者の責務 (またはクライアントSDKを利⽤)
• クォータ(呼び出し回数制限)の設定が可能:(⽇/週/⽉ あたりの要求回数)
• APIキーについて
• APIキーを「認証」⽬的に利⽤しないこと
• 計測のための識別⽤途のため
• API側の設定項⽬(APIキーの必要性)はデフォルト値がfalse
• メータリング・スロットリングを有効にする際には原則としてtrueを指定
• 所定のHTTPリクエストヘッダー(x-api-key)またはLambdaオーソライザー
(usageIdentifierKey)で指定されない場合 403 Forbidden エラー
しきい値を超えた場合のリトライやAPIキーの⽤途にご注意
REST WebSocket
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
スロットリング
スロットリングは 「サーバー側のスロットリング制限」と
「クライアント側のスロットリング制限」によって⾏われる
クライアント側スロットリング制限
(使⽤量プランが設定されている場合)
[アカウント全体]
•レート:
10,000 Req/秒
•バースト:
5,000 Req
(上記は
デフォルト値)
[API×ステージ別]
デフォルトの
スロットリング設定
使⽤量プラン
[API×ステージ×メソッド別]
スロットリング設定(RESTのみ)
サーバー側スロットリング制限
リクエスト
(APIキー
によって
使⽤量プラン
が決定)
[API×ステージ別]
デフォルトのスロットリング設定
API
REST WebSocket
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
(補⾜):スロットリング - トークンバケットアルゴリズム
スロットリングはトークンバケットアルゴリズムに基づく
「レート」と「バースト」の2つの設定値に従って⾏われる
バケット
「レート」=トークンの補充スピード =
「バケットに追加されるトークン数/秒」
(アカウントレベルの初期値 … 10,000 req/秒)
リクエスト
処理されるリクエスト
1つのリクエストは
1つのトークンを消費
「バースト(バースト上限)」= バケット内のトークンの初期値 兼 バケット最⼤サイズ
(アカウントレベルの初期値 … 5,000)
トークン →
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - ログとモニタリング
API/ステージ単位で「実⾏ログ」と「アクセスログ」を
CloudWatch Logsに出⼒可能
API/ステージ
実⾏ログ 設定 (*)
[ロググループ (実⾏ログ⽤)]
API-Gateway-Execution-Logs_
{api-id}/{stage_name}
アクセスログ 設定
リクエスト
API Gateway CloudWatch Logs
[ロググループ (アクセスログ⽤)]
<明⽰的にロググループARNを指定>
ログ設定 (IAMロールARN)
• 出⼒レベルを指定可能(ERROR/INFOの2種類)
• リクエスト/レスポンスデータのログ出⼒可能
• ログ出⼒形式と内容をコンテキスト変数で指定可能
• Common Log Format/JSON/CSV/XML形式が予め⽤意
ログ
出⼒
(*)REST APIの場合、メソッドレベル
でステージ設定を個別に上書き可能
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - ログとモニタリング
API/ステージ単位でメトリクスを
CloudWatch メトリクスに出⼒可能
メトリクス 意味 単位
4XXError ステータスコード4XXのエラー数 個
5XXError ステータスコード5XXのエラー数 個
CacheHit
Count
キャッシュにヒットしたリクエスト数 個
CacheMiss
Count
キャッシュにヒットせず、バックエンド
からレスポンスされたリクエスト数
個
Count API メソッド呼び出し数(リクエスト数) 個
Integration
Latency
API Gateway がバックエンドにリクエス
トを中継してから、バックエンドからレ
スポンスを受け取るまでの時間
ms
Latency API Gateway がクライアントからリクエ
ストを受け取ってから、クライアントに
レスポンスを返すまでの時間
ms
メトリクス 意味 単位
Connect
Count
$connect ルートの統合に送信されたメッ
セージ数
個
Message
Count
クライアントとの間で送受信される、送
信されたメッセージ数
個
Integration
Error
バックエンド統合からの ステータスコー
ド4XX/5XX のエラー数
個
ClientError 統合が呼び出される前に API Gateway に
よって4XXを返したエラー数
個
Execution
Error
統合を呼び出す際に発⽣したエラー数 個
Integration
Latency
API Gateway がバックエンドにリクエス
トを中継してから、バックエンドからレ
スポンスを受け取るまでの時間
ms
WebSocketREST
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - カスタムドメインの設定
「カスタムドメイン」を登録し、証明書とDNSを設定することで
独⾃ドメイン名で登録したAPIを呼び出し可能 (※エンドポイントタイプが「プライベート」以外)
エンドポイントURL (https://<api-id>.execute-api.<region-id>.amazonaws.com/<stage-name>)
カスタムドメイン (例: https://api.example.com/my-api-id-service)
Amazon Route 53
(または利⽤DNSサービス)
AWS Certificate Manager
①ドメイン(サブドメイン)のパブリック証明書を取得
※エンドポイントタイプが「エッジ最適化」の場合は
⽶国東部(us-east-1)リージョンで証明書を作成
or インポート(「リージョン」の場合はそのリージョン)
③ 利⽤DNSにエイリアスや
CNAMEとして登録
②「カスタムドメイン」に
証明書とベースパスを登録
API Gateway
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - キャッシュ
REST APIでは APIのステージ毎にキャッシュを定義し、
バックエンドへのトラフィック削減と低レイテンシの実現に利⽤可能
REST
API (REST)
ステージ(例:prod)
APIキャッシュ
API-a⽤キャッシュ
リクエスト
(デフォルトでは
GET要求のみが
キャッシュ対象)
APIキャッシュ
を有効化
バックエンド
LRUに基づく容量管理
キャッシュミス時
バックエンドにアクセス
設定項⽬ 説明
キャッシュ容量 0.5GB~237GBでの8種類から選択
データ暗号化 キャッシュデータの暗号化有無を指定
有効期限(TTL) デフォルト300、最⻑3600(単位:秒)
(0を指定するとキャッシュ無効)
キー毎の
キャッシュ無効化
デフォルトではキャッシュ無効化指⽰
に許可は不要の設定(false)。trueにす
るとキャッシュ無効化を指⽰するリク
エストの扱いを、予め⽤意された3種
類(403エラー/警告/無視)から選択
キャッシュヒット時
レスポンス(スロットリングの対象外)
API Gateway
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - リソースポリシー REST
API (REST)
リソースポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "<Allow または Deny>",
"Principal": "…",
"Action": "<①~③のいずれか>",
"Resource": "arn:aws:execute-api:<region>:<account-id>:*",
"Condition": {
… (ソースIPやVPCエンドポイントなどの条件演算⼦) …
}
}, …
]
}
• リソースポリシーの利⽤例:
• アクセス元を制限する
• 指定AWS アカウントのユーザ
• 指定ソース IP アドレス範囲ま
たは CIDR ブロック
• 指定VPC または 任意アカウント
の VPC エンドポイント
REST APIでは APIのリソースポリシーを指定可能
(IAMポリシーと併⽤可能)
※ APIを⽰すARN形式⽂字列を指定(ワイルドカード利⽤可)
「arn:aws:execute-api:<region>:<account-id>:<api-id>/
<stage-name>/<HTTP-Verb>/<resource-path-specifier>」
① "execute-api:Invoke" … 呼び出し操作
② "ececute-api:InvalidateCache"… キャッシュ無効化操作
③ "execute-api:*" … ① + ② を意味
リクエスト
↑許可/拒否判定
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - カナリアリリース REST
REST APIの各ステージ(メイン)に紐付く特別なステージ「Canary」を
作成し、リクエストを指定の⽐率でCanaryへ流すことが可能
API (REST)
prodステージ(メイン)
リクエスト
Canaryを事前定義
API Gateway
prodステージ(Canary)
• あるステージに対して「Canary」を
定義すると、APIの「デプロイ」操作
でそのステージを指定した際に⼀旦
Canary に対してのみ⾏われるように
なる(メインの内容は変わらない)
• Canaryに対して以下の操作が可能:
• 昇格
• Canaryのデプロイ内容をメ
インのステージに反映
• 削除
• Canaryを削除して、メイン
ステージのみの構成に戻す
例:80.0%
例:20.0%
(Canary⽤に
ステージ変数の値を
上書き可能)
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - AWS WAF連携(WebACLとの関連づけ)
REST APIでは APIステージに AWS WAF の WebACL を指定可能
REST
API (REST)
ステージ(例:prod)
WebACL
リクエスト
AWS WAFのWeb ACL
を1つ関連付け
API Gateway
AWS WAF
WebACLでフィルター時、
403 Forbiddenエラー応答
• AWS WAFのWeb API保護を利⽤
• SQLインジェクションやXSSな
どの攻撃からAPIを保護
• アクセスポリシーや認証など、そ
の他のアクセス制御よりも前に
WebACLによって評価される
• APIステージ設定UI または WAF
WebACLの新規作成画⾯でAPI
GatewayのAPI/ステージを指定
ルール1
…
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
API設定 - AWS X-Ray連携
REST APIでは APIステージのログ設定としてAWS X-Rayへの
連携によるリクエストのトレースと分析およびデバッグが可能
REST
API (REST)
ステージ(例:prod)
リクエスト
「X-Rayトレースの
有効化」を指定
API Gateway
• 利⽤開始はAWS X-Rayへの連携を
有効化するだけ
• X-Rayコンソールによるトレー
スデータの表⽰/可視化が可能
• X-Ray側でサンプリングレートを設
定することでデータ量を調整可能
X-Rayコンソール
サービスマップトレース詳細
X-Ray
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本⽇のアジェンダ
• はじめに - API / Web API とは
• Amazon API Gateway 概要
• 全体イメージ
• ユースケース
• REST API / WebSocket API
• その他主要な機能
• 補⾜的機能 や ご使⽤料⾦の情報など
• まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
クライアント証明書 REST
HTTPエンドポイントタイプを利⽤する際に、API Gatewayからの
アクセスであることを⽰すクライアント証明書を作成・利⽤可能
API Gateway
クライアント証明書
証明書ID [abc123]
…
API
メソッド: 統合リクエスト
統合タイプ: HTTP
バックエンドHTTPサービス
API作成者
ステージ
利⽤
クライアント
証明書
…
$ aws apigateway get-client-certificate
--client-certificate-id <cert-id> クライアント証明書
(PEMファイル)
[有効期限:365⽇間]
(※要定期更新)
バックエンド開発者
③ 提供
④ サービス実装で
クライアント検証
⽤に組み込むよう
に開発
HTTPS
リクエスト
検証時に利⽤
サービス実装
② クライアント証明書を⼊⼿
…
① 証明書の
作成とステージ設定
前提:ドメイン証明書を利
⽤してHTTPS受信に対応
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
クライアントSDK
APIステージ単位でREST API呼び出しクライアントをSDKとして⽣成可能
(クライアント開発作業を効率化)
APIステージ
②クライアントSDKを
利⽤してリクエスト
APIクライアント
開発者
クライアント
SDK
API Gateway
REST
• 対応プラットフォーム:Android, JavaScript, iOS(Objective-C/Swift), Java, Ruby
• クライアントSDKを利⽤する動機(メリット):
• スロットリング時のリトライやAWS署名v4⽣成・セット処理が実装済み
• REST APIのIN/OUTで必要なモデルのマーシャル/アンマーシャル処理にも対応
①プラットフォームを
指定してSDKを⽣成
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Amazon API Gateway のご使⽤料⾦の構造
API Gatewayは、API が使⽤されている分のみのご使⽤料⾦
(最低利⽤料⾦ や 初期費⽤ なし)
REST API
API料⾦(*) (データ転送料⾦) (併⽤サービスの料⾦)
例: CloudWatch
例: Lambda
…
WebSocket API
(*) AWSサインアップ⽇より12ヶ⽉間内での無料枠あり
APIコール数
(/⽉/100万回)
キャッシュ
メモリ量(/時)
メッセージ
要求数
(/⽉/100万回)
接続時間
(/100万分)
例: PrivateLink
アウトバウンド
データ転送量
(EC2料⾦に準ずる)
+ +
API Gateway利⽤料⾦
+
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
本⽇のアジェンダ
• はじめに - API / Web API とは
• Amazon API Gateway 概要
• 全体イメージ
• ユースケース
• REST API / WebSocket API
• その他主要な機能
• 補⾜的機能 や ご使⽤料⾦の情報など
• まとめ
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ (再掲 - Amazon API Gateway 概要図)
API
API1
エンドポイントURL
(https://<id>.execute-
api.<region>.amazonaws
.com/<stage>/…)
種
別
ユーザーVPC
NLB
使⽤量プラン APIキー
ステージ ステージ1 …
カスタム
ドメイン
ドメイン1
…
REST: リソース
リソース1
クライアント
証明書
証明書1
キー1
VPCリンク …
リンク1
…
WebSocket: ルート
メソッド1
…
リソースポリシー
オーソライザー
ルート1
…
メソッドResponse 統合Response
CloudWatch
X-Ray
ルートRequest 統合Request
Lambda
AWSサービス
HTTPサービス
Cognito
APIキャッシュ
キャッシュ1
WAF
…オーソライザー1
…… …プラン1
…
…
Amazon
Route 53
メソッドRequest 統合Request
外部 VPC
内部
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
まとめ
1. インフラの管理
(可⽤性とスケーラビリティ)
2. APIの管理
(設定やデプロイの制御)
3. 認証と認可
(アクセスの制御)
4. 流量制御と保護
(スロットリング)
• マネージドサービス
としてAWSが管理
• サーバーレスアーキ
テクチャの実現にも
適した基盤
• ステージや統合リ
クエスト/レスポ
ンスなどの構成要
素を通じた設定
• カナリアリリース
も設定で実現
• オーソライザーや
AWS署名v4を
使った認証と認可
• リソースポリシー
による細かなアク
セス制御
• APIキーと使⽤量
プランによるス
ロットリング
• WAF連携による
APIの保護
© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
AWS 公式 Webinar
https://amzn.to/JPWebinar
過去資料
https://amzn.to/JPArchive
ご視聴ありがとうございました

Más contenido relacionado

Was ist angesagt?

20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...Amazon Web Services Japan
 
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...Amazon Web Services Japan
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本Amazon Web Services Japan
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQLAmazon Web Services Japan
 
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipelineAmazon Web Services Japan
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...Amazon Web Services Japan
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrailAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAmazon Web Services Japan
 
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)Amazon Web Services Japan
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) Amazon Web Services Japan
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用Amazon Web Services Japan
 
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...Amazon Web Services Japan
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems ManagerAmazon Web Services Japan
 
20190723 AWS Black Belt Online Seminar AWS CloudHSM
20190723 AWS Black Belt Online Seminar AWS CloudHSM 20190723 AWS Black Belt Online Seminar AWS CloudHSM
20190723 AWS Black Belt Online Seminar AWS CloudHSM Amazon Web Services Japan
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPNAmazon Web Services Japan
 
20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMRAmazon Web Services Japan
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 ResolverAmazon Web Services Japan
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)Amazon Web Services Japan
 
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS GlueAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2017 AWS OpsWorks
AWS Black Belt Online Seminar 2017 AWS OpsWorksAWS Black Belt Online Seminar 2017 AWS OpsWorks
AWS Black Belt Online Seminar 2017 AWS OpsWorksAmazon Web Services Japan
 

Was ist angesagt? (20)

20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
20190828 AWS Black Belt Online Seminar Amazon Aurora with PostgreSQL Compatib...
 
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
20190402 AWS Black Belt Online Seminar Let's Dive Deep into AWS Lambda Part1 ...
 
20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本20210526 AWS Expert Online マルチアカウント管理の基本
20210526 AWS Expert Online マルチアカウント管理の基本
 
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
20190424 AWS Black Belt Online Seminar Amazon Aurora MySQL
 
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
20201111 AWS Black Belt Online Seminar AWS CodeStar & AWS CodePipeline
 
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
20200422 AWS Black Belt Online Seminar Amazon Elastic Container Service (Amaz...
 
20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail20210119 AWS Black Belt Online Seminar AWS CloudTrail
20210119 AWS Black Belt Online Seminar AWS CloudTrail
 
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage GatewayAWS Black Belt Online Seminar 2017 AWS Storage Gateway
AWS Black Belt Online Seminar 2017 AWS Storage Gateway
 
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
202205 AWS Black Belt Online Seminar Amazon VPC IP Address Manager (IPAM)
 
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS) AWS Black Belt Online Seminar AWS Key Management Service (KMS)
AWS Black Belt Online Seminar AWS Key Management Service (KMS)
 
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
20200722 AWS Black Belt Online Seminar AWSアカウント シングルサインオンの設計と運用
 
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
20190130 AWS Black Belt Online Seminar AWS Identity and Access Management (AW...
 
20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager20200212 AWS Black Belt Online Seminar AWS Systems Manager
20200212 AWS Black Belt Online Seminar AWS Systems Manager
 
20190723 AWS Black Belt Online Seminar AWS CloudHSM
20190723 AWS Black Belt Online Seminar AWS CloudHSM 20190723 AWS Black Belt Online Seminar AWS CloudHSM
20190723 AWS Black Belt Online Seminar AWS CloudHSM
 
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
202110 AWS Black Belt Online Seminar AWS Site-to-Site VPN
 
20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR20191023 AWS Black Belt Online Seminar Amazon EMR
20191023 AWS Black Belt Online Seminar Amazon EMR
 
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
20191016 AWS Black Belt Online Seminar Amazon Route 53 Resolver
 
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
20190521 AWS Black Belt Online Seminar Amazon Simple Email Service (Amazon SES)
 
20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue20190806 AWS Black Belt Online Seminar AWS Glue
20190806 AWS Black Belt Online Seminar AWS Glue
 
AWS Black Belt Online Seminar 2017 AWS OpsWorks
AWS Black Belt Online Seminar 2017 AWS OpsWorksAWS Black Belt Online Seminar 2017 AWS OpsWorks
AWS Black Belt Online Seminar 2017 AWS OpsWorks
 

Ähnlich wie 20190514 AWS Black Belt Online Seminar Amazon API Gateway

20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
20190619 AWS Black Belt Online Seminar Dive Deep into AWS ChaliceAmazon Web Services Japan
 
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説Amazon Web Services Japan
 
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報Amazon Web Services Japan
 
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...Amazon Web Services Japan
 
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...Amazon Web Services Japan
 
20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in ServerlessAmazon Web Services Japan
 
Management & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますManagement & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますAmazon Web Services Japan
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...Amazon Web Services Japan
 
AWS におけるモニタリングとセキュリティの基本について - "毎日のAWSのための監視、運用、セキュリティ最適化セミナー" -
AWS におけるモニタリングとセキュリティの基本について - "毎日のAWSのための監視、運用、セキュリティ最適化セミナー" -AWS におけるモニタリングとセキュリティの基本について - "毎日のAWSのための監視、運用、セキュリティ最適化セミナー" -
AWS におけるモニタリングとセキュリティの基本について - "毎日のAWSのための監視、運用、セキュリティ最適化セミナー" -Takanori Ohba
 
AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法Jun Ichikawa
 
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework Amazon Web Services Japan
 
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@EdgeAmazon Web Services Japan
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon CognitoAmazon Web Services Japan
 
AWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
AWS Black Belt Online Seminar 2018 AWS Well-Architected FrameworkAWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
AWS Black Belt Online Seminar 2018 AWS Well-Architected FrameworkAmazon Web Services Japan
 
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみたマルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた桂一 中山
 
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたいAmazon Web Services Japan
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築Junji Nishihara
 

Ähnlich wie 20190514 AWS Black Belt Online Seminar Amazon API Gateway (20)

20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
20190619 AWS Black Belt Online Seminar Dive Deep into AWS Chalice
 
AWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS AmplifyAWS Black Belt Online Seminar AWS Amplify
AWS Black Belt Online Seminar AWS Amplify
 
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
20201118 AWS Black Belt Online Seminar 形で考えるサーバーレス設計 サーバーレスユースケースパターン解説
 
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
【12/5 最新版】AWS Black Belt Online Seminar AWS re:Invent 2018 アップデート情報
 
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
[最新版は別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar AWS re:Inven...
 
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
[最新版(12/5 最新版) が別にございます! Descriptionをご確認ください] AWS Black Belt Online Seminar A...
 
20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless20200728 AWS Black Belt Online Seminar What's New in Serverless
20200728 AWS Black Belt Online Seminar What's New in Serverless
 
Management & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできますManagement & Governance on AWS こんなこともできます
Management & Governance on AWS こんなこともできます
 
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
20190410 AWS Black Belt Online Seminar Amazon Elastic Container Service for K...
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
AWS におけるモニタリングとセキュリティの基本について - "毎日のAWSのための監視、運用、セキュリティ最適化セミナー" -
AWS におけるモニタリングとセキュリティの基本について - "毎日のAWSのための監視、運用、セキュリティ最適化セミナー" -AWS におけるモニタリングとセキュリティの基本について - "毎日のAWSのための監視、運用、セキュリティ最適化セミナー" -
AWS におけるモニタリングとセキュリティの基本について - "毎日のAWSのための監視、運用、セキュリティ最適化セミナー" -
 
AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法AlexaのSmart HomeをAWSで作る方法
AlexaのSmart HomeをAWSで作る方法
 
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
IVS CTO Night And Day 2018 Winter - AWS Well-Architected Framework
 
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
20180221 AWS Black Belt Online Seminar AWS Lambda@Edge
 
20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito20200630 AWS Black Belt Online Seminar Amazon Cognito
20200630 AWS Black Belt Online Seminar Amazon Cognito
 
AWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
AWS Black Belt Online Seminar 2018 AWS Well-Architected FrameworkAWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
AWS Black Belt Online Seminar 2018 AWS Well-Architected Framework
 
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみたマルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
マルチリージョン・マルチアカウント対応の柔軟な構築ツールを作ってみた
 
AWS Nightschool20180618
AWS Nightschool20180618AWS Nightschool20180618
AWS Nightschool20180618
 
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
20190130 AWS Well-Architectedの活用方法とレビューの進め方をお伝えしていきたい
 
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
"Kong Summit, Japan 2022" パートナーセッション:Kong on AWS で実現するスケーラブルな API 基盤の構築
 

Mehr von Amazon Web Services Japan

Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Web Services Japan
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したことAmazon Web Services Japan
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介Amazon Web Services Japan
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチAmazon Web Services Japan
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介Amazon Web Services Japan
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...Amazon Web Services Japan
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operationsAmazon Web Services Japan
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報Amazon Web Services Japan
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをなAmazon Web Services Japan
 
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)Amazon Web Services Japan
 
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)Amazon Web Services Japan
 
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)Amazon Web Services Japan
 
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法Amazon Web Services Japan
 
202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤
202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤
202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤Amazon Web Services Japan
 

Mehr von Amazon Web Services Japan (20)

Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデートAmazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
Amazon Game Tech Night #25 ゲーム業界向け機械学習最新状況アップデート
 
20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと20220409 AWS BLEA 開発にあたって検討したこと
20220409 AWS BLEA 開発にあたって検討したこと
 
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
SaaS テナント毎のコストを把握するための「AWS Application Cost Profiler」のご紹介
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
機密データとSaaSは共存しうるのか!?セキュリティー重視のユーザー層を取り込む為のネットワーク通信のアプローチ
 
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
パッケージソフトウェアを簡単にSaaS化!?既存の資産を使ったSaaS化手法のご紹介
 
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
202201 AWS Black Belt Online Seminar Apache Spark Performnace Tuning for AWS ...
 
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations20211209 Ops-JAWS Re invent2021re-cap-cloud operations
20211209 Ops-JAWS Re invent2021re-cap-cloud operations
 
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
20211203 AWS Black Belt Online Seminar AWS re:Invent 2021アップデート速報
 
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
[AWS EXpert Online for JAWS-UG 18] 見せてやるよ、Step Functions の本気ってやつをな
 
20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes20211109 JAWS-UG SRE keynotes
20211109 JAWS-UG SRE keynotes
 
20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)20211109 bleaの使い方(基本編)
20211109 bleaの使い方(基本編)
 
AWS の IoT 向けサービス
AWS の IoT 向けサービスAWS の IoT 向けサービス
AWS の IoT 向けサービス
 
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
AWS IoT Coreを オンプレミス環境と使う際の アーキテクチャ例 (AWS IoT Deep Dive #5)
 
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
AWS IoT SiteWise のご紹介 (AWS IoT Deep Dive #5)
 
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
製造装置データ収集の選択肢 (AWS IoT Deep Dive #5)
 
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
IoT@Loft#20 - IoTプラットフォームを進化さ せるAWSの活用方法
 
202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤
202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤
202106 AWS Black Belt Online Seminar 小売現場のデータを素早くビジネス に活用するAWSデータ基盤
 
03_AWS IoTのDRを考える
03_AWS IoTのDRを考える03_AWS IoTのDRを考える
03_AWS IoTのDRを考える
 

Último

キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~honeshabri
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版Takayuki Nakayama
 
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜Naomi Yamasaki
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」IGDA Japan SIG-Audio
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整えるonozaty
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析sugiuralab
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。iPride Co., Ltd.
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313ssuserf8ea02
 
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))yoshidakids7
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG-Audio
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りiPride Co., Ltd.
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024Hideki Saito
 

Último (12)

キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
キャラで動かすGPT ~GPTsでどんな感じに作っているとか考えていることとか~
 
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
キンドリル_ネットワーク自動化成熟度診断サービス ご紹介資料 2024年3月版
 
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
JAWS DAYS 2024 E-3 ランチにまつわるちょっといい話 〜給食がない町の小中学生に温かい昼食を〜
 
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
SIG-AUDIO 2024 Vol.02 オンラインセミナー 「必殺使音人(ひっさつしおとにん)カットシーンを成敗せよ」
 
チームで開発するための環境を整える
チームで開発するための環境を整えるチームで開発するための環境を整える
チームで開発するための環境を整える
 
バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析バイオリンの運弓動作計測による初心者と経験者の差異分析
バイオリンの運弓動作計測による初心者と経験者の差異分析
 
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
AWS_Bedrock入門 このスライドは2024/03/08の勉強会で発表されたものです。
 
00001_test_automation_portfolio_20240313
00001_test_automation_portfolio_2024031300001_test_automation_portfolio_20240313
00001_test_automation_portfolio_20240313
 
The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))The 86th National Convention of IPSJ (Student Encouragement Award))
The 86th National Convention of IPSJ (Student Encouragement Award))
 
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdfIGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
IGDA Japan SIG Audio #22 オンラインセミナー VRの知る.pdf
 
AWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作りAWS Lambdaと AWS API Gatewayを使ったREST API作り
AWS Lambdaと AWS API Gatewayを使ったREST API作り
 
これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024これからはじめるAnsible - Ansible Night Tokyo 2024
これからはじめるAnsible - Ansible Night Tokyo 2024
 

20190514 AWS Black Belt Online Seminar Amazon API Gateway

  • 1. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive Solutions Architect 松原 武司 Amazon API Gateway サービスカットシリーズ [AWS Black Belt Online Seminar]
  • 2. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ⾃⼰紹介 ❏ 名前 松原 武司 ❏ 所属 アマゾン ウェブ サービス ジャパン 株式会社 技術統括本部 ⾦融ソリューション部 ソリューション アーキテクト ❏ 好きなAWSのサービス Amazon API Gateway AWS Cloud9
  • 3. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS Black Belt Online Seminar とは 「サービス別」「ソリューション別」「業種別」のそれぞれのテーマに分かれて、アマ ゾン ウェブ サービス ジャパン株式会社が主催するオンラインセミナーシリーズです。 質問を投げることができます! • 書き込んだ質問は、主催者にしか⾒えません • 今後のロードマップに関するご質問は お答えできませんのでご了承下さい ① 吹き出しをクリック ② 質問を⼊⼒ ③ Sendをクリック Twitter ハッシュタグは以下をご利⽤ください #awsblackbelt
  • 4. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 内容についての注意点 • 本資料では2019年5⽉14⽇時点のサービス内容および価格についてご説明しています。最新の情 報はAWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。 • 資料作成には⼗分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違 があった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。 • 価格は税抜表記となっています。⽇本居住者のお客様が東京リージョンを使⽤する場合、別途消 費税をご請求させていただきます。 • AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
  • 5. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本⽇のアジェンダ • はじめに - API / Web API とは • Amazon API Gateway 概要 • 全体イメージ • ユースケース • REST API / WebSocket API • その他主要な機能 • 補⾜的な機能 や ご使⽤料⾦の情報など • まとめ
  • 6. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本⽇のアジェンダ • はじめに - API / Web API とは • Amazon API Gateway 概要 • 全体イメージ • ユースケース • REST API / WebSocket API • その他主要な機能 • 補⾜的機能 や ご使⽤料⾦の情報など • まとめ
  • 7. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 今⽇お話しするテーマ の “API” Web API⾔語処理系API [SDK/ライブラリ等] ネットワーク 呼び出しAPI “Application Programming Interface”: プログラムやソフトウェア同⼠がやり取りするための取り決め・仕様
  • 8. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 増え続けるWeb API (出典) programmableweb.com 記事「Research Shows Interest in Providing APIs Still High」(2018/2/23) より https://www.programmableweb.com/news/research-shows-interest-providing-apis-still-high/research/2018/02/23
  • 9. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Web API 増加の背景 緩やかにシステムが連携し APIによるエコシステム を構築するスタイルが Webの発展に上⼿く合致 Web API API提供者 (プロバイダー) API利⽤者 (ユーザー) API利⽤者 (企業/システム)
  • 10. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS と Web API Web API AWSもまた、数多くの Web API をご提供しています ← AWS クラウド Amazon Elastic Compute Cloud (EC2) Amazon Simple Storage Service (S3) Amazon DynamoDB Amazon CloudFront Amazon CloudWatch etc ... AWS WAF Amazon Cognito AWS X-Ray
  • 11. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Web API提供時の課題 Web API の 共通課題 個別のWeb API : : 1. インフラの管理 (可⽤性とスケーラビリティ) 2. APIの管理 (設定やデプロイの制御) 3. 認証と認可 (アクセスの制御) 4. 流量制御と保護 (スロットリング)
  • 12. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本⽇のアジェンダ • はじめに - API / Web API とは • Amazon API Gateway 概要 • 全体イメージ • ユースケース • REST API / WebSocket API • その他主要な機能 • 補⾜的機能 や ご使⽤料⾦の情報など • まとめ
  • 13. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon API Gateway の位置づけ 1. インフラの管理 (可⽤性とスケーラビリティ) 2. APIの管理 (設定やデプロイの制御) 3. 認証と認可 (アクセスの制御) 4. 流量制御と保護 (スロットリング) AWS クラウド Amazon API Gateway バックエンド (AWS Lambda) バックエンド (HTTPアクセス先) バックエンド (各種AWSサービス) インターネット (外部Web)
  • 14. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon API Gateway が利⽤可能なリージョン Amazon API Gateway は 21 のリージョン全てでご利⽤可能 (2019/05/14現在、⼤阪ローカルリージョンを除く) Sydney Tokyo Beijing Seoul Ningxia Hong Kong Singapore Mumbai Sweden Ireland London Frankfurt Paris São Paulo Montreal AWS GovCloud East N. Virginia Ohio AWS GovCloud West Oregon N. California
  • 15. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon API Gateway の主なユースケース概要 1. インターネットからアクセス可能なパブリックなWeb APIの基盤 を提供する 2. ⾃社企業・企業グループ内でのプライベートなWeb APIの基盤を 提供する 3. AWSサービス(例:Amazon DynamoDB 等)を独⾃のWeb API化す る⼿段として利⽤する 4. サーバーレスアーキテクチャを実現する⼿段として利⽤する
  • 16. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWSサービスとしての Amazon API Gateway Amazon API Gateway (以降、「API Gateway」と記載) は、 フルマネージド型のサービス AWS クラウド エッジ ロケーション リージョン ユーザー Virtual Computing Cloud (VPC) サブネット 仮想サーバー(OS)管理不要 マネージドサービスのメリット API Gateway 接続Point (POP) ⾃動でスケール 各種サービス (S3等) 使⽤量に応じた課⾦ インターネット インター ネット CloudFront
  • 17. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API Gateway 管理コンソール メニュー (プライマリ ナビゲーション ペイン) 設定・詳細
  • 18. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API API1 API Gateway の概要図 エンドポイントURL (https://<id>.execute- api.<region>.amazonaws .com/<stage>/…) 種 別 ユーザーVPC Elastic Load Balancing 使⽤量プラン APIキー ステージ ステージ1 … カスタム ドメイン ドメイン1 … REST: リソース リソース1 クライアント 証明書 証明書1 キー1 VPCリンク … リンク1 … WebSocket: ルート メソッド1 … リソースポリシー オーソライザー ルート1 … メソッドResponse 統合Response CloudWatch X-Ray ルートRequest 統合Request Lambda AWSサービス HTTPサービス Cognito APIキャッシュ キャッシュ1 WAF …オーソライザー1 …… …プラン1 … … Amazon Route 53 メソッドRequest 統合Request 外部 VPC 内部
  • 19. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API Gateway が扱うAPI API Gatewayは「REST」「WebSocket」の2種類のAPIを扱うことが可能 Web API の種類 • REST= Representational state transfer • 単⼀HTTPメッセージで1つの操作に関する情報を(理想では)含む • 扱う情報をURIで表現する「リソース」として定義し、それらを HTTPメソッド(PUT, GET, POST, DELETE, …)の表現で操作 REST • HTTPの上で、クライアントとサーバー間の双⽅向通信を実現す るための通信仕様 • ⼀つのコネクションで継続的なデータ送受信が可能 • URIスキームは セキュアWebSocket⽤の「wss://~」を利⽤ WebSocket API Gateway 2018/12/19 Updateで対応 “ステートレス” “ステートフル” (※どちらもセキュア接続のみ)
  • 20. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API Gateway が扱うAPI - REST エンドポイントタイプ REST APIの場合、3種類のエンドポイントタイプから1つを選択 (クライアントから⾒たアクセス先エンドポイントとしての性質を決定) リージョンエッジ最適化 プライベート Web API エンドポイントタイプ •⼀旦エッジロケーショ ン(CloudFrontディス トリビューション)に ルーティング •Publicからのアクセス はできず、VPC内から AWS PrivateLink = VPC エンドポイント経由で のみアクセス可能 •リージョンに直接ルー ティング •リクエスト元が同⼀ リージョンの場合レイ テンシ削減 •CloudFrontと組合せ可 REST
  • 21. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API 作成の流れ (新規作成) ②:プロトコル 種別とタイプ選択 ③-a:リソース & メソッド設定 ④:デプロイと ステージ設定 ③-b:ルート設定 REST WebSocket • API仕様に基づき REST or WebSocketを選 択 • RESTの場合はエ ンドポイントタイ プを選択 ü リージョン ü エッジ最適化 ü プライベート • プロトコル種別に 応じたAPIの設定 を実施 • 設定後、APIとし てのテスト呼び出 しが可能 (公開前の状態にお けるテスト) • デプロイ操作(API 単位)によりクラ イアントから呼び 出し可能な状態へ • デプロイ先ステー ジを新規または既 存から選択し、ス テージの設定と接 続テスト ①:APIの設計 (仕様の確認) • 作成するAPIの要 求・仕様を確認 • 以降の作業で⾏う 設定項⽬を検討
  • 22. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 デプロイとステージ API (例: PetStore) ステージ: staging ステージ: dev https://<api-id>.execute-api.<region-id>.amazonaws.com/prod/… https://<api-id>.execute-api.<region-id>.amazonaws.com/staging/… https://<api-id>.execute-api.<region-id>.amazonaws.com/dev/… APIは ステージ に“デプロイ”することでクライアントから呼び出し可能に (ステージ名はエンドポイントURL(パス)の⼀部として利⽤される) prodデプロイ 年/⽉/⽇ 時:分:秒 prodデプロイ 年/⽉/⽇ 時:分:秒 prodデプロイ 年/⽉/⽇ 時:分:秒 t:時間軸 ステージ毎の デプロイ履歴を保持 … ステージ: prod WebSocketREST
  • 23. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API 作成の流れ (新規作成 - RESTの場合のみ) 既存APIの クローン Swaggerファイル のインポート 「既存APIのクローン」または「Swagger(OpenAPI)ファイルのインポート」 による作成が可能 Web API Web API Clone Web API Import • 内容をコピーしつつ、別の名前とID を持つ新規のAPIとして作成 • 互換性がない変更が⾏われたAPIを 別APIとして公開したい場合に有⽤ • Swagger2.0/3.0(OAS2.0/3.0) のファ イル(JSON, YAML)をインポート可能 • API Gateway固有の定義は x-amazon-apigateway-* で指定可能 OpenAPI 2.0 または 3.0 REST * *
  • 24. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本⽇のアジェンダ • はじめに - API / Web API とは • Amazon API Gateway 概要 • 全体イメージ • ユースケース • REST API / WebSocket API • その他主要な機能 • 補⾜的機能 や ご使⽤料⾦の情報など • まとめ
  • 25. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 (REST) - リソースとメソッド API (REST) 例:PetStore リソース: / リソース: /pets リソース: /{petId} 「/」を最上位としたツリー構造にて「リソース」を定義。 各リソースに受け付けるHTTPメソッドを指定 (パスパラメータの利⽤も可能) リソース: /echo • 各APIには「英数⼩⽂字からなる識別⼦」が割 り振られ、URL(ドメイン名の⼀部)を構成 • 各APIは常に"/"リソースを起点として持つ • "/"リソース配下にリソースを複数構成可能 • リソース名がURL(パス)の⼀部を構成 • 各リソースにメソッドを複数構成可能 • メソッド毎にフローを構成 • メソッドは7つのHTTPメソッドとANYから選択 • GET, POST, PUT, HEAD, DELETE, OPTIONS, PATCH または ANY エンドポイントURL (https://<api-id>.execute-api.<region-id>.amazonaws.com/<stage-name>/…) GET GET, PUT, POST, HEAD ANY REST
  • 26. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. メソッド (GET /pets/{petId}) API設定 (REST) - メソッド設定 API (REST) 例:PetStore リソース: / リソース: /pets リソース: /{petId} GET, PUT, POST, HEAD () ( 統 合 ) メソッド リクエスト 統合 リクエスト メソッド レスポンス 統合 レスポンス REST • リソースとメソッドの組合わせ毎に、合計4つの設定箇所で1つのフロー処理を定義 • メソッドリクエスト→統合リクエスト → 統合レスポンス→メソッドレスポンス
  • 27. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. メソッド (GET /pets/{petId}) API設定 (REST) - メソッド設定 API (REST) 例:PetStore リソース: / リソース: /pets リソース: /{petId} GET, PUT, POST, HEAD ( 統 合 ) 統合 リクエスト メソッド レスポンス 統合 レスポンス REST • 認証の設定や、受け付けるクエリパラメータ、必須とするHTTPヘッダなど「リクエ ストの受付」に関する設定 • 設定に合致するリクエストかの検証の有無 • リクエスト時にAPIキー(HTTPヘッダ x-api-key で指定) を必須とするかどうか メソッド リクエスト
  • 28. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. メソッド (GET /pets/{petId}) API設定 (REST) - メソッド設定 API (REST) 例:PetStore リソース: / リソース: /pets リソース: /{petId} GET, PUT, POST, HEAD ( 統 合 ) メソッド リクエスト 統合 リクエスト メソッド レスポンス 統合 レスポンス REST • バックエンドへのリクエストに関する設定 • ルーティング先バックエンドの指定、リクエストの変換など • バックエンドの種別(=統合タイプ)として、「Lambda関数」「HTTP」 「Mock」「AWSサービス」「VPCリンク」から選択 (後述)
  • 29. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. メソッド (GET /pets/{petId}) API設定 (REST) - メソッド設定 API (REST) 例:PetStore リソース: / リソース: /pets リソース: /{petId} GET, PUT, POST, HEAD ( 統 合 ) メソッド リクエスト 統合 リクエスト メソッド レスポンス 統合 レスポンス REST • バックエンドからのレスポンスに関する設定 • レスポンス内容の変換やステータスコードのマッピングなど • (統合リクエストに「統合プロキシ」を指定した場合は設定不可)
  • 30. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. メソッド (GET /pets/{petId}) API設定 (REST) - メソッド設定 API (REST) 例:PetStore リソース: / リソース: /pets リソース: /{petId} GET, PUT, POST, HEAD ( 統 合 ) メソッド リクエスト 統合 リクエスト メソッド レスポンス 統合 レスポンス REST • リクエストに対する最終的なAPI Gatewayとしてのレスポンスに関する設定 • どういうステータスコードやHTTPレスポンスヘッダを返すかなど
  • 31. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API ダッシュボード (REST) • API呼び出し • そのAPIの呼び出し回数 • レイテンシー • リクエストを受け取ってから 応答するまでの時間(ms) • 統合のレイテンシー • バックエンドとのやり取りに 要した時間(ms) • 4xx エラー • HTTP応答 4xx を返した回数 • 5xx エラー • HTTP応答 5xx を返した回数 REST
  • 32. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本⽇のアジェンダ • はじめに - API / Web API とは • Amazon API Gateway 概要 • 全体イメージ • ユースケース • REST API / WebSocket API • その他主要な機能 • 補⾜的機能 や ご使⽤料⾦の情報など • まとめ
  • 33. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 (WebSocket) - ルート WebSocketの状態に関するイベントを「ルート(Route)」として定義。 3つの事前定義ルートに加えてメッセージに応じたルートを指定可能 WebSocket API (WebSocket) • 各APIには「英数⼩⽂字からなるID(api-id)」が 割り振られ、URL(ドメイン名の⼀部)を構成 • 接続とWebSocket⽤に2つのURLが提供 • 3つの「ルート」が事前定義 • WebSocket接続・切断時の処理 • ルート選択式で評価するデータが無かった 場合 $default が利⽤(⾮JSONの場合含む) • メッセージデータ(JSON)内の式が⽰すフィー ルドの値としてカスタムルートが定義されてい た場合はそのルートが選択 ルート選択式 (例) : $request.body.action $connect (接続時) $disconnect (切断時) $default (デフォルト) (ルート1) … 1. WebSocket URL (wss://<api-id>.execute-api.<region-id>.amazonaws.com/<stage-name>) 2. Callback URL (https://<api-id>.execute-api.<region-id>.amazonaws.com/<stage-name>/@connections/<connetion-id>) 事前定義の 3つのルート メッセージ内 の選択式の フィールド値 に対応
  • 34. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API (WebSocket) API設定 (WebSocket) - ルート選択式 ルート選択式 (例) : $request.body.action ルート: join ルート: leave { "service" : "chat", "action" : "join", "data" : { "room" : "room1234" } } WebSocketメッセージデータ(例) ルート: knock WebSocket ルート:$default この例の場合、以下のケースで $default が利⽤される: • メッセージデータがJSON形式データではない • JSON形式データ直下にactionフィールドが存在しない • actionフィールドの値が"join","leave","knock"のいずれでもない
  • 35. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 (WebSocket) - ルート設定 WebSocket ルート API (WebScocket) () ( 統 合 ) ルート リクエスト 統合 リクエスト (ルート レスポンス) (統合 レスポンス) • ルート毎に、合計3つの設定箇所で1つのフロー処理を定義 • ルートリクエスト→統合リクエスト → 統合レスポンス→(ルートレスポンス) • 「統合レスポンス」の設定はオプション • 「ルートレスポンス」の設定はオプション $connect (接続時) $disconnect (切断時) $default (デフォルト) (ルートキー1) …
  • 36. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 (WebSocket) - ルート設定 WebSocket ルート API (WebScocket) () ( 統 合 ) ルート リクエスト 統合 リクエスト (ルート レスポンス) (統合 レスポンス) • $connect(接続時)ルートの場合 :認証の有無、APIキー必須、 • $disconnect(切断時)ルートの場合 :設定項⽬なし • それ以外のルートの場合 :「モデル選択式」を指定(オプション) • モデル選択式は、当ルートでの受信メッセージのモデル(後述)を指定 $connect (接続時) $disconnect (切断時) $default (デフォルト) (ルートキー1) …
  • 37. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 (WebSocket) - ルート設定 WebSocket ルート API (WebScocket) () ( 統 合 ) ルート リクエスト 統合 リクエスト (ルート レスポンス) (統合 レスポンス) • バックエンドへのリクエストに関する設定 • バックエンドの種別(=統合タイプ)として、「Lambda関数」「HTTP」 「Mock」「AWSサービス」「VPCリンク」から選択 (REST APIと同様) • オプションとしてテンプレート選択式を指定可能 $connect (接続時) $disconnect (切断時) $default (デフォルト) (ルートキー1) …
  • 38. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 (WebSocket) - ルート設定 WebSocket ルート API (WebScocket) () ( 統 合 ) ルート リクエスト 統合 リクエスト (ルート レスポンス) (統合 レスポンス) • 「統合レスポンス」の設定はオプション • 「レスポンス選択式」を指定 • その上で、“「レスポンスキー」とそれに対応する「テンプレート選択式」およ び「テンプレートキー」と「テンプレート」 のセット”を複数指定可能 $connect (接続時) $disconnect (切断時) $default (デフォルト) (ルートキー1) …
  • 39. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API ダッシュボード (WebSocket) • Message Count • 送受信メッセージ数 • Connection Count • 接続($connect)メッセージ数 • 統合のレイテンシー • バックエンドとのやり取りに 要した時間 • Client Errors • バックエンド呼び出し前に4xx 応答を返したリクエストの数 • Integration Errors • 統合から4xx/5xx応答を返した リクエストの数 • Execution Errors • 統合呼び出し時のエラー数 WebSocket
  • 40. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本⽇のアジェンダ • はじめに - API / Web API とは • Amazon API Gateway 概要 • 全体イメージ • ユースケース • REST API / WebSocket API • その他主要な機能 • 補⾜的機能 や ご使⽤料⾦の情報など • まとめ
  • 41. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. •認証処理を委譲する Lambda関数を指定して API へのアクセスを制御 (認証成功時にプリンシパ ルIDとそのポリシードキュ メントを返す仕様) •独⾃の認証⽅式やOAuthな どの認証⽅式を組み込む⽅ 法として利⽤ •(以前の名称は「カスタム オーソライザー」) Lambda オーソライザー API設定 - 認証・認可 WebSocketREST メソッドリクエスト 「認証」設定 $connect のルートリクエスト •AWS 署名 v4による認証 •IAMユーザーのクレデン シャル情報を利⽤してリク エストに署名データを指定 •Cognitoフェデレーテッド ID認証でIAMロールのアク セス権を使う場合もこの認 証⽅式を選択 IAM アクセス権限 •指定したCognitoユーザー プールを元に事前に認証 •Cognito認証を⾏い取得し たトークン (IDトークン ま たは アクセストークン)を、 Authorization ヘッダーに 指定してAPI Gatewayへリ クエストする Cognito オーソライザー 「認証」設定 1 2 3
  • 42. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 認証・認可(IAMアクセス権限) WebSocketREST APIクライアントが認証対象のIAM ユーザーの アクセスキー等から⽣成したAWS署名v4を送信することを要求する⽅式 (HTTPリクエストヘッダーに 所定の仕様で値をセット) GET https://… Host: <ホスト> Authorization: <認証パラメータ> x-amz-date: <⽇付> 認証された プリンシパルの権限 でバックエンド サービスを呼び出し • 以下の場合にAPI呼び出しが成功 • 署名パラメータ検証がOK • 認証したプリンシパルのIAMポリ シー上、このAPI呼び出しを⾏う 権限が許可 • このAPIのリソースポリシーが設 定されている場合、そのプリン シパルに対してこのAPI呼び出し を⾏う権限が許可 API 認証⽅式: IAMアクセス権限 <署名v4データの⽣成・セット⼿段> • AWS SDKの利⽤ • APIクライアントSDKの利⽤ • 仕様に基づくユーザー独⾃実装 など AWS署名v4
  • 43. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 認証・認可(Lambdaオーソライザー) WebSocketREST 所定の⼊出⼒仕様を満たすよう実装されたLamda関数を⽤いる⽅式 (リクエストデータを元に認証し、認証結果としてIAMポリシーJSONを返す) (Bearerトークン or パラメータ など認証情報が 付加されたリクエスト) • 以下の場合にAPI呼び出しが成功 • Lambda認証関数がポリシー&プ リンシパルIDを返却 (or キャッシュがあれば利⽤) • 当該ポリシー上、このAPI呼び出 しを⾏う権限が許可 • このAPIのリソースポリシー上、 プリンシパルがこのAPI呼び出し を⾏う権限が許可 API認証⽅式:Lambda オーソライザー Lambda認証関数 (トークン or リクエスト パラメーターベース) [認証処理] 認証成功…JSON(IAMポリシー & プリンシパルID)を返却 認証失敗…エラーを返却 認証された プリンシパルの権限 でバックエンド サービスを呼び出し (外部データ/IdP) cache 認証処理を委譲 ポリシー JSON
  • 44. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 認証・認可(Cognitoオーソライザー) REST 事前にAmazon Cognitoユーザープールで認証を⾏い、 取得したトークンをHTTPヘッダーに指定してAPIに渡すことを要求する⽅式 • 以下の場合にAPI呼び出しが成功 • トークン検証がOK • このAPIのリソースポリシー上、プリンシ パルがこのAPI呼び出しを⾏う権限が許可 API認証⽅式:Cognito オーソライザー 認証された IAMロールの権限で バックエンドサービス を呼び出し Amazon Cognito ユーザープール (Authorization ヘッダー(*)に IDトークン or アクセストークン を指定してリクエスト) トークン検証⽤にユーザープールを参照 認証要求 トークン (JWT) (*) 指定先ヘッダー名は オーソライザー設定にて 変更可能
  • 45. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 統合リクエスト API設定 - 統合タイプ WebSocketREST 統合タイプ •Lambda関数を指定して呼び出す •クロスリージョン、クロスアカウントでの呼び出しに対応 Lambda関数 •インターネット経由で呼び出し可能なURL(HTTPS)とメソッドを指定して呼び出す •Publicに到達可能なエンドポイントであれば実装場所は問わない HTTP •モックとしてAPI Gatewayで直接、固定的な応答を返す •統合レスポンスのマッピングテンプレートで実際のモック応答データを設定 Mock •AWSのサービスを直接呼び出して、各サービスで⽤意されているアクションを実⾏ •例:Kinesis Data Streamのエンドポイントを独⾃Web APIとして対外的に公開 AWSサービス •Network Load Balancer(NLB)を参照する「VPCリンク」を登録しそれを経由して VPC内リソースへアクセス。エンドポイントURLとしてNLBホスト名を指定 VPCリンク ※REST APIの主な制限(ハードリミット): 統合タイムアウト … 最⻑29秒 HTTPヘッダー値のサイズ … 最⼤10,240 Bytes ペイロードサイズ … 最⼤10 MB ※WebSocket APIの主な制限(ハードリミット): フレームサイズ … 最⼤32KB 接続時間 … 最⼤2時間 アイドル接続タイムアウト… 最⼤10分 ペイロードサイズ … 最⼤128KB 1 2 3 4 5
  • 46. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 統合タイプ(Lambda関数) WebSocketREST Lambda関数をバックエンドとして呼び出すタイプ (別リージョン・別アカウントの関数を指定可能) API 統合リクエスト Lambda関数 [Lambda関数] … … 統合レスポンス ※Lambda関数を呼び出す場合は、 Lambdaプロキシ統合の利⽤を推奨 (マッピングテンプレートの指定が不要に) ランタイム ハンドラー ※対象Lambda関数に対する呼び出し権限を API Gatewayサービス に 与える必要あり(管理コンソールから設定を⾏うと⾃動的に追加可能) Lambda関数 呼び出し Lambda関数は「関数名」or「関数名:バージョン」 or「関数名:エイリアス」 or 「関数のARN」で指定 ※エイリアスにステージ変数(${stageVariables.XXX})を指定可
  • 47. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 統合タイプ(HTTP) WebSocketREST 任意のHTTPエンドポイントURLをバックエンドとして呼び出すタイプ (Publicに到達可能であれば、インターネットやEC2等を問わない) API 統合リクエスト HTTP … … 統合レスポンス EC2Web API インターネット 任意のURL & HTTPメソッド 指定可能。 「コンテンツ変換」 の設定で 「Base64→バイナリ」 「バイナリ→Base64」 の変換が可能 … (その他 稼働場所は不問) HTTPS呼び出し
  • 48. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 統合タイプ(Mock) WebSocketREST モックデータ(マッピングテンプレートで指定)を返すタイプ テスト実装やAPIクライアントの先⾏実装のためのモック実装が主な⽤途 API 統合リクエスト Mock … … 統合レスポンス • バックエンドを呼び出すこと 無く、統合リクエストで折り 返す • マッピングテンプレートに基 づき、API Gatewayが返すレス ポンスデータが決定される
  • 49. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 統合タイプ(AWSサービス) バックエンドとしてAWSサービスを指定 (実⾏ロールのARNを指定可能) AWS サービスAPIを独⾃仕様で提供する⽤途で利⽤ API 統合リクエスト AWSサービス … … 統合レスポンス バックエンド (AWSサービス) 任意のリージョン サービス endpoint エンドポイントへのリクエストを組み⽴てるための以下を指定 • リージョン • AWSサービス • サブドメイン • HTTPメソッド • アクション名 or パス上書き(オプション) • 実⾏ロール(ARN) HTTPS呼び出し
  • 50. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 統合タイプ(VPCリンク) WebSocketREST 同⼀リージョンのVPC内リソースをバックエンドとしてアクセスする形式 (「VPCリンク」を事前定義し、NLBと関連付けてそれを参照) API 統合リクエスト VPCリンク … … 統合レスポンス ユーザーVPC Elastic Load Balancer (ELB) VPCリンク (事前定義) 名前 ターゲット NLB 設定 参照 ターゲット グループ 最終的なバックエンドとしてのアクセス先 リクエスト ステージ変数を⽤いて、利⽤するVPCリンクを動的指定可能 VPCリンクID 説明 Network Load Balancer(NLB)を作成
  • 51. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - リクエスト/レスポンス変換 WebSocketREST ルート () ( 統 合 ) メソッド/ルート リクエスト 統合リクエスト 統合レスポンスメソッド/ルート レスポンス • 統合リクエスト/統合レスポンスにて指定するテンプレートドキュメント • VTL(Velocity Template Language)とJSONPathや予約変数($input等)を利⽤し記述 • リクエストやレスポンスのデータを別の形式に変換することが可能 • ⽤途:不要フィールドの削除、XML⇔JSON変換、Mock統合タイプでのデータ指定、… 例:JSONから⼀部フィールドを抜き出しXMLに変換 #set($root = $input.path('$')) <xml> <name> $root.name </name> </xml> 例:XMLをJSONに変換 ($input.json関数を利⽤) { "body" : $input.json('$') } マッピング テンプレート マッピング テンプレート マッピングテンプレート
  • 52. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - リクエスト/レスポンス変換(REST APIでの例) API Gateway Lambda GET /peoples/1234 統合リクエスト 統合タイプ:Lambda関数 { "name" : "John" } バックエンドLambda関数 統合レスポンス #set($root = $input.path('$')) <xml> <name> $root.name </name> </xml> マッピングテンプレート <xml> <name> John </name> </xml> 応答データ(JSON) 応答データ(XML) マッピングテンプレート (指定なし)
  • 53. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - 統合タイプ (プロキシ統合) Lambda関数 HTTP VPCリンク { "statusCode" : <数値>, "headers" : { "ヘッダ名" : "値", … }, "body" : "<応答ボディ⽂字列>" } 「統合レスポンス」でマッピングテンプレートは指定不可 &「統合レスポンス」は全体が設定対象外に • Lambda関数は以下を含む構造 でJSONデータを返す必要あり • バックエンドから返されたHTTP応答データをそのまま統合レ スポンスのデータとして返す WebSocketREST
  • 54. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - モデル REST API モデル モデル1 モデル2 … WebSocketREST • リクエスト/レスポンスで扱われるデータ構造(スキーマ)を JSON Schema draft 4形式で定義したもの (API Gateway利⽤上、必須ではない) • 1つのAPI内で複数のメソッド/ルートを跨がって共通的に利⽤可能 • リクエスト検証やクライアントSDK⽣成、マッピングテンプレートで活⽤ { "$schema": "http://json-schema.org/draft-04/schema#", "title": "User", "type": "object", "properties": { "UserID": { "type": "string" }, "Name": { "type": "string" }, "Age": { "description": "Age in years", "type": "integer", "minimum": 18 } }, "required": ["UserID", "Name"] } モデル定義例 メソッド (GET /users/{userId}) メソッド (POST /users) メソッドリクエスト メソッドリクエスト
  • 55. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. ステージ(prod) APIキーと使⽤量プラン APIキーと使⽤量プランにより、 APIのメータリングとスロットリングを実現 ④APIキーを定義 WebSocketREST ①使⽤量プランを定義 ⑤関連付け API [メソッドリクエスト] or [ルートリクエスト($connectルート)] API キーの必要性 : false | true ステージ(例: prod) ②(1つまたは 複数の) APIステージを 関連付け APIキー (名前 & 値ペア) 使⽤量プラン (スロットリングと クォータの設定) APIクライアント 開発者 APIキー ⽂字列 を含めて リクエスト ⑥APIキー値を提供 ステージ(例: dev) ③「APIキーの必要性」を true に設定
  • 56. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. APIキーと使⽤量プラン の補⾜ • 使⽤量プランについて • 閾値を超えるとHTTPステータスコード429(Too Many Requests)エラー • リトライ実装はAPIクライアント開発者の責務 (またはクライアントSDKを利⽤) • クォータ(呼び出し回数制限)の設定が可能:(⽇/週/⽉ あたりの要求回数) • APIキーについて • APIキーを「認証」⽬的に利⽤しないこと • 計測のための識別⽤途のため • API側の設定項⽬(APIキーの必要性)はデフォルト値がfalse • メータリング・スロットリングを有効にする際には原則としてtrueを指定 • 所定のHTTPリクエストヘッダー(x-api-key)またはLambdaオーソライザー (usageIdentifierKey)で指定されない場合 403 Forbidden エラー しきい値を超えた場合のリトライやAPIキーの⽤途にご注意 REST WebSocket
  • 57. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. スロットリング スロットリングは 「サーバー側のスロットリング制限」と 「クライアント側のスロットリング制限」によって⾏われる クライアント側スロットリング制限 (使⽤量プランが設定されている場合) [アカウント全体] •レート: 10,000 Req/秒 •バースト: 5,000 Req (上記は デフォルト値) [API×ステージ別] デフォルトの スロットリング設定 使⽤量プラン [API×ステージ×メソッド別] スロットリング設定(RESTのみ) サーバー側スロットリング制限 リクエスト (APIキー によって 使⽤量プラン が決定) [API×ステージ別] デフォルトのスロットリング設定 API REST WebSocket
  • 58. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. (補⾜):スロットリング - トークンバケットアルゴリズム スロットリングはトークンバケットアルゴリズムに基づく 「レート」と「バースト」の2つの設定値に従って⾏われる バケット 「レート」=トークンの補充スピード = 「バケットに追加されるトークン数/秒」 (アカウントレベルの初期値 … 10,000 req/秒) リクエスト 処理されるリクエスト 1つのリクエストは 1つのトークンを消費 「バースト(バースト上限)」= バケット内のトークンの初期値 兼 バケット最⼤サイズ (アカウントレベルの初期値 … 5,000) トークン →
  • 59. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - ログとモニタリング API/ステージ単位で「実⾏ログ」と「アクセスログ」を CloudWatch Logsに出⼒可能 API/ステージ 実⾏ログ 設定 (*) [ロググループ (実⾏ログ⽤)] API-Gateway-Execution-Logs_ {api-id}/{stage_name} アクセスログ 設定 リクエスト API Gateway CloudWatch Logs [ロググループ (アクセスログ⽤)] <明⽰的にロググループARNを指定> ログ設定 (IAMロールARN) • 出⼒レベルを指定可能(ERROR/INFOの2種類) • リクエスト/レスポンスデータのログ出⼒可能 • ログ出⼒形式と内容をコンテキスト変数で指定可能 • Common Log Format/JSON/CSV/XML形式が予め⽤意 ログ 出⼒ (*)REST APIの場合、メソッドレベル でステージ設定を個別に上書き可能
  • 60. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - ログとモニタリング API/ステージ単位でメトリクスを CloudWatch メトリクスに出⼒可能 メトリクス 意味 単位 4XXError ステータスコード4XXのエラー数 個 5XXError ステータスコード5XXのエラー数 個 CacheHit Count キャッシュにヒットしたリクエスト数 個 CacheMiss Count キャッシュにヒットせず、バックエンド からレスポンスされたリクエスト数 個 Count API メソッド呼び出し数(リクエスト数) 個 Integration Latency API Gateway がバックエンドにリクエス トを中継してから、バックエンドからレ スポンスを受け取るまでの時間 ms Latency API Gateway がクライアントからリクエ ストを受け取ってから、クライアントに レスポンスを返すまでの時間 ms メトリクス 意味 単位 Connect Count $connect ルートの統合に送信されたメッ セージ数 個 Message Count クライアントとの間で送受信される、送 信されたメッセージ数 個 Integration Error バックエンド統合からの ステータスコー ド4XX/5XX のエラー数 個 ClientError 統合が呼び出される前に API Gateway に よって4XXを返したエラー数 個 Execution Error 統合を呼び出す際に発⽣したエラー数 個 Integration Latency API Gateway がバックエンドにリクエス トを中継してから、バックエンドからレ スポンスを受け取るまでの時間 ms WebSocketREST
  • 61. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - カスタムドメインの設定 「カスタムドメイン」を登録し、証明書とDNSを設定することで 独⾃ドメイン名で登録したAPIを呼び出し可能 (※エンドポイントタイプが「プライベート」以外) エンドポイントURL (https://<api-id>.execute-api.<region-id>.amazonaws.com/<stage-name>) カスタムドメイン (例: https://api.example.com/my-api-id-service) Amazon Route 53 (または利⽤DNSサービス) AWS Certificate Manager ①ドメイン(サブドメイン)のパブリック証明書を取得 ※エンドポイントタイプが「エッジ最適化」の場合は ⽶国東部(us-east-1)リージョンで証明書を作成 or インポート(「リージョン」の場合はそのリージョン) ③ 利⽤DNSにエイリアスや CNAMEとして登録 ②「カスタムドメイン」に 証明書とベースパスを登録 API Gateway
  • 62. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - キャッシュ REST APIでは APIのステージ毎にキャッシュを定義し、 バックエンドへのトラフィック削減と低レイテンシの実現に利⽤可能 REST API (REST) ステージ(例:prod) APIキャッシュ API-a⽤キャッシュ リクエスト (デフォルトでは GET要求のみが キャッシュ対象) APIキャッシュ を有効化 バックエンド LRUに基づく容量管理 キャッシュミス時 バックエンドにアクセス 設定項⽬ 説明 キャッシュ容量 0.5GB~237GBでの8種類から選択 データ暗号化 キャッシュデータの暗号化有無を指定 有効期限(TTL) デフォルト300、最⻑3600(単位:秒) (0を指定するとキャッシュ無効) キー毎の キャッシュ無効化 デフォルトではキャッシュ無効化指⽰ に許可は不要の設定(false)。trueにす るとキャッシュ無効化を指⽰するリク エストの扱いを、予め⽤意された3種 類(403エラー/警告/無視)から選択 キャッシュヒット時 レスポンス(スロットリングの対象外) API Gateway
  • 63. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - リソースポリシー REST API (REST) リソースポリシー { "Version": "2012-10-17", "Statement": [ { "Effect": "<Allow または Deny>", "Principal": "…", "Action": "<①~③のいずれか>", "Resource": "arn:aws:execute-api:<region>:<account-id>:*", "Condition": { … (ソースIPやVPCエンドポイントなどの条件演算⼦) … } }, … ] } • リソースポリシーの利⽤例: • アクセス元を制限する • 指定AWS アカウントのユーザ • 指定ソース IP アドレス範囲ま たは CIDR ブロック • 指定VPC または 任意アカウント の VPC エンドポイント REST APIでは APIのリソースポリシーを指定可能 (IAMポリシーと併⽤可能) ※ APIを⽰すARN形式⽂字列を指定(ワイルドカード利⽤可) 「arn:aws:execute-api:<region>:<account-id>:<api-id>/ <stage-name>/<HTTP-Verb>/<resource-path-specifier>」 ① "execute-api:Invoke" … 呼び出し操作 ② "ececute-api:InvalidateCache"… キャッシュ無効化操作 ③ "execute-api:*" … ① + ② を意味 リクエスト ↑許可/拒否判定
  • 64. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - カナリアリリース REST REST APIの各ステージ(メイン)に紐付く特別なステージ「Canary」を 作成し、リクエストを指定の⽐率でCanaryへ流すことが可能 API (REST) prodステージ(メイン) リクエスト Canaryを事前定義 API Gateway prodステージ(Canary) • あるステージに対して「Canary」を 定義すると、APIの「デプロイ」操作 でそのステージを指定した際に⼀旦 Canary に対してのみ⾏われるように なる(メインの内容は変わらない) • Canaryに対して以下の操作が可能: • 昇格 • Canaryのデプロイ内容をメ インのステージに反映 • 削除 • Canaryを削除して、メイン ステージのみの構成に戻す 例:80.0% 例:20.0% (Canary⽤に ステージ変数の値を 上書き可能)
  • 65. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - AWS WAF連携(WebACLとの関連づけ) REST APIでは APIステージに AWS WAF の WebACL を指定可能 REST API (REST) ステージ(例:prod) WebACL リクエスト AWS WAFのWeb ACL を1つ関連付け API Gateway AWS WAF WebACLでフィルター時、 403 Forbiddenエラー応答 • AWS WAFのWeb API保護を利⽤ • SQLインジェクションやXSSな どの攻撃からAPIを保護 • アクセスポリシーや認証など、そ の他のアクセス制御よりも前に WebACLによって評価される • APIステージ設定UI または WAF WebACLの新規作成画⾯でAPI GatewayのAPI/ステージを指定 ルール1 …
  • 66. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. API設定 - AWS X-Ray連携 REST APIでは APIステージのログ設定としてAWS X-Rayへの 連携によるリクエストのトレースと分析およびデバッグが可能 REST API (REST) ステージ(例:prod) リクエスト 「X-Rayトレースの 有効化」を指定 API Gateway • 利⽤開始はAWS X-Rayへの連携を 有効化するだけ • X-Rayコンソールによるトレー スデータの表⽰/可視化が可能 • X-Ray側でサンプリングレートを設 定することでデータ量を調整可能 X-Rayコンソール サービスマップトレース詳細 X-Ray
  • 67. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本⽇のアジェンダ • はじめに - API / Web API とは • Amazon API Gateway 概要 • 全体イメージ • ユースケース • REST API / WebSocket API • その他主要な機能 • 補⾜的機能 や ご使⽤料⾦の情報など • まとめ
  • 68. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. クライアント証明書 REST HTTPエンドポイントタイプを利⽤する際に、API Gatewayからの アクセスであることを⽰すクライアント証明書を作成・利⽤可能 API Gateway クライアント証明書 証明書ID [abc123] … API メソッド: 統合リクエスト 統合タイプ: HTTP バックエンドHTTPサービス API作成者 ステージ 利⽤ クライアント 証明書 … $ aws apigateway get-client-certificate --client-certificate-id <cert-id> クライアント証明書 (PEMファイル) [有効期限:365⽇間] (※要定期更新) バックエンド開発者 ③ 提供 ④ サービス実装で クライアント検証 ⽤に組み込むよう に開発 HTTPS リクエスト 検証時に利⽤ サービス実装 ② クライアント証明書を⼊⼿ … ① 証明書の 作成とステージ設定 前提:ドメイン証明書を利 ⽤してHTTPS受信に対応
  • 69. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. クライアントSDK APIステージ単位でREST API呼び出しクライアントをSDKとして⽣成可能 (クライアント開発作業を効率化) APIステージ ②クライアントSDKを 利⽤してリクエスト APIクライアント 開発者 クライアント SDK API Gateway REST • 対応プラットフォーム:Android, JavaScript, iOS(Objective-C/Swift), Java, Ruby • クライアントSDKを利⽤する動機(メリット): • スロットリング時のリトライやAWS署名v4⽣成・セット処理が実装済み • REST APIのIN/OUTで必要なモデルのマーシャル/アンマーシャル処理にも対応 ①プラットフォームを 指定してSDKを⽣成
  • 70. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Amazon API Gateway のご使⽤料⾦の構造 API Gatewayは、API が使⽤されている分のみのご使⽤料⾦ (最低利⽤料⾦ や 初期費⽤ なし) REST API API料⾦(*) (データ転送料⾦) (併⽤サービスの料⾦) 例: CloudWatch 例: Lambda … WebSocket API (*) AWSサインアップ⽇より12ヶ⽉間内での無料枠あり APIコール数 (/⽉/100万回) キャッシュ メモリ量(/時) メッセージ 要求数 (/⽉/100万回) 接続時間 (/100万分) 例: PrivateLink アウトバウンド データ転送量 (EC2料⾦に準ずる) + + API Gateway利⽤料⾦ +
  • 71. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. 本⽇のアジェンダ • はじめに - API / Web API とは • Amazon API Gateway 概要 • 全体イメージ • ユースケース • REST API / WebSocket API • その他主要な機能 • 補⾜的機能 や ご使⽤料⾦の情報など • まとめ
  • 72. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ (再掲 - Amazon API Gateway 概要図) API API1 エンドポイントURL (https://<id>.execute- api.<region>.amazonaws .com/<stage>/…) 種 別 ユーザーVPC NLB 使⽤量プラン APIキー ステージ ステージ1 … カスタム ドメイン ドメイン1 … REST: リソース リソース1 クライアント 証明書 証明書1 キー1 VPCリンク … リンク1 … WebSocket: ルート メソッド1 … リソースポリシー オーソライザー ルート1 … メソッドResponse 統合Response CloudWatch X-Ray ルートRequest 統合Request Lambda AWSサービス HTTPサービス Cognito APIキャッシュ キャッシュ1 WAF …オーソライザー1 …… …プラン1 … … Amazon Route 53 メソッドRequest 統合Request 外部 VPC 内部
  • 73. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. まとめ 1. インフラの管理 (可⽤性とスケーラビリティ) 2. APIの管理 (設定やデプロイの制御) 3. 認証と認可 (アクセスの制御) 4. 流量制御と保護 (スロットリング) • マネージドサービス としてAWSが管理 • サーバーレスアーキ テクチャの実現にも 適した基盤 • ステージや統合リ クエスト/レスポ ンスなどの構成要 素を通じた設定 • カナリアリリース も設定で実現 • オーソライザーや AWS署名v4を 使った認証と認可 • リソースポリシー による細かなアク セス制御 • APIキーと使⽤量 プランによるス ロットリング • WAF連携による APIの保護
  • 74. © 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved.© 2019, Amazon Web Services, Inc. or its Affiliates. All rights reserved. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive ご視聴ありがとうございました