Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
API Gateway 機能概要集 / API Gateway functional over...
Search
oracle4engineer
PRO
May 31, 2022
Technology
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
API Gateway 機能概要集 / API Gateway functional overview
oracle4engineer
PRO
May 31, 2022
More Decks by oracle4engineer
See All by oracle4engineer
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
16
120k
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
21k
Oracle Database Technology Night #103 Oracle AI Database@Hyperscaler Deep Dive
oracle4engineer
PRO
1
110
Oracle Cloud Infrastructure:2026年8月度サービス・アップデート
oracle4engineer
PRO
0
97
OCI Oracle AI Database Services新機能アップデート(2026/06-2026/08)
oracle4engineer
PRO
0
420
OKE の進化 - Oracle Cloud Infrastructure Kubernetes Engine の現在地 -
oracle4engineer
PRO
0
280
【Oracle AI Spotlight ウェビナー】クラウド移行の成否を分けるデータ基盤の配置戦略 ― マルチクラウドやソブリンクラウドで広がるデータ基盤の選択肢
oracle4engineer
PRO
1
86
Oracle Cloud Infrastructure IaaS 新機能アップデート 2026/6 - 2026/8
oracle4engineer
PRO
0
250
Autonomous AI Databaseサービス・アップデート(FY27)/ adb-service-update-jp-fy27
oracle4engineer
PRO
0
170
Other Decks in Technology
See All in Technology
音声コミュニティを守るAI監視基盤_ 90%以上の入力削減を支えたServerless設計と運用判断
shuheioka123
0
110
Making AI Agents Safe and Fast- Jev, Obsidian, and the Meta-Harness
x5gtrn
PRO
0
140
DORA_Metrics.pdf
wagnerfusca
1
110
今話題のAI「Jev」って何? 宇宙最速で学ぶ会
minorun365
PRO
34
22k
開発投資の期待値を上げるプロダクトロードマップづくり ~プロダクトエンジニアが越境して事業を伸ばす~
kekekenta
1
250
セルフサービスのオブザーバビリティ基盤をOpenTelemetryで作る / Building a Self-Service Observability Platform with OpenTelemetry
ymotongpoo
3
330
AgentCore Runtime上にAgentic Coding基盤を構築・展開する際の設計ポイントと限界点 / Design considerations and limitations when building an agentic coding platform on AgentCore Runtime
har1101
6
770
Argo CDとAtlantisで実現するインフラ管理のセルフサービス化──小規模SREチームで支えるプラットフォーム
cassius7
0
160
なぜAI任せのゲームは面白くならないのか?
hirohasuyoutube
0
110
作って終わりじゃないサーバーレス 〜9年運用する大規模EC物流API基盤の設計・運用のリアル〜
zozotech
PRO
0
540
負債のメタファと2026年 / Debt Metaphor in Agentic Engineering Age 202609 Edition
twada
PRO
13
7.6k
ScotSecure West 2026 - Glasgow
raybugg
0
180
Featured
See All Featured
30 Presentation Tips
portentint
PRO
1
410
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
950
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
5
740
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Navigating Weather and Climate Data
rabernat
0
530
First, design no harm
axbom
PRO
2
1.3k
So, you think you're a good person
axbom
PRO
2
2.2k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Ruling the World: When Life Gets Gamed
codingconduct
0
360
Transcript
API Gateway 機能概要集 Subhead goes here on one line Name
日本オラクル株式会社 May, 2022
Copyright © 2022, Oracle and/or its affiliates 2 API Gatewayとリソースの監視
• OCI Monitoringとネイティブに統合される • “oci_apigateway”というメトリック・ネームスペース でメトリックの収集が行われる • デフォルトで使用可能なメトリック • BytesReceived
• BytesSent • HttpRequests • HttpResponses • BackendHttpResponses • Latency • IntegrationLatency • InternalLatency OCI Monitoringとの統合 Copyright © 2022, Oracle and/or its affiliates 3
• OCI Loggingとネイティブに統合される • デプロイメント単位ごとにログ出力の要否が設定 可能 • OCI Loggingのインターフェースを利用して閲覧 •
Service Connector Hubと併用することでログ出力 を元にした統合的な運用を可能に • 以下の2種類のログが出力可能 • アクセスログ: API Gatewayを介してデプロイメント との間で送受信されるリクエスト/レスポンスデータ のサマリー • 実行ログ: API Gateway内の処理に関するリクエ スト/レスポンスの実行ログ OCI Loggingとの統合 Copyright © 2022, Oracle and/or its affiliates 4 デプロイメント単位にログ出力を有効化 アクセスログ 実行ログ
Copyright © 2022, Oracle and/or its affiliates 5 APIの呼び出しとパラメータ化
コンテキスト変数 Copyright © 2022, Oracle and/or its affiliates 6 Functions
バックエンド API Gateway User Context Table 一時的に保存 ポリシーやデプロイメント定義で ${<context table name>[key]} の形式で参照可能 • APIコール等に含まれるパラメータをポリシーやデプロイ メント定義で使用可能にするために、API Gatewayが 一時的に保持する変数のこと • ユースケース例 • バックエンドが解釈できる形へリクエストの形式を 変更したい(request.path/queryを用いて、 URLの形式を書き換える) • 認証結果に含まれる情報(ユーザーID、etc.) をバックエンドに伝搬したい Context Table Name 概要 request.path APIデプロイメント仕様で定義したパス・パラメータ request.query APIリクエストに含まれるクエリー・パラメータ request.headers APIリクエストに含まれるヘッダー・パラメータ request.auth Authorizer Functionsによって返却されるパラメータ (context)、JWTのPayloadに含まれるclaim request.cert 証明書パラメータ(mTLSハンドシェイク中に正常に検証 されたBase64エンコードされた証明書)
Copyright © 2022, Oracle and/or its affiliates 7 API Gatewayとリソースの保護
Oracle指定の認証局から発行されたTLS証明書ではなく、ユーザーが取得したTLS証明書が使用可能 カスタム・ドメインとTLS証明書 Copyright © 2022, Oracle and/or its affiliates 8
証明書の取得先 ドメイン名 Public IP との紐づけ 証明書の 有効期限と更新処理 Oracle指定の認証局 (デフォルト) <unique>.apigateway.<region>.oci.customer-oci.com 自動 期限切れとなる前に自動更新 証明書サービス 独自ドメイン ユーザーが実施 期限切れとなる前にユーザーが更新 サード・パーティ 独自ドメイン ユーザーが実施 期限切れとなる前にユーザーが更新
• デフォルトのCAバンドルに加えて、証明書サービスで作成した他のCA(カスタムCA)のルート証明書および他のCA バンドル(カスタムCAバンドル)をAPI Gatewayのトラスト・ストアに追加可能 • ユースケース • セキュリティ上の理由でプライベートなCAのみを含むカスタムトラスト・ストアを使いたい • mTLS(相互TLS)をサポートしたい
TLS証明書検証のためのトラスト・ストアのカスタマイズ Copyright © 2022, Oracle and/or its affiliates 9
Authorizer Function • HTTPリクエスト(ヘッダー or クエリーパラメーター) に含まれる情報を認証処理を行うOracle Functions(Authorizer Functions)へ渡し、検証す る事で認証処理を行う
• (オプション)返却された認証結果に含まれるscope を用いて認可処理を行う JWT Validator • HTTPリクエスト(ヘッダー or クエリーパラメーター) に含まれるJWTをAPI Gatewayで検証する • (オプション)検証済みのJWTに含まれているscope を用いて、認可処理を行う 認証・認可のための機能 Copyright © 2022, Oracle and/or its affiliates 10 Functions Functions Functions API Gateway Functions Functions Functions API Gateway Functions Identity Provider JWKs Endpoint Public Key 認証依頼 認証結果 (オプション)認証結果に含まれる scopeを用いて認可処理 JWTの検証 - 署名の検証 - Issuerの検証 - Audienceの検証 - 有効期限の検証 - etc. (オプション)検証済みJWTのPayloadに 含まれるscopeを用いて認可処理 Identity Domains/IDCS Auth0 Okta Keycloak etc.
• CORS(Cross-Origin Resource Sharing) • あるオリジンで動作しているWebアプリケーションに 異なるオリジンに存在するリソースへのアクセス権を HTTPリクエストによって与えるための仕組み • API
Gatewayを使用し、デプロイされるAPIに対する CORSサポートを有効にできる • 各API単位の対応が不要になるため、効率的に ポリシーの適応が可能 CORSサポート Copyright © 2022, Oracle and/or its affiliates 11
Copyright © 2022, Oracle and/or its affiliates 12 リクエスト・ポリシーとレスポンス・ポリシー
• API Gatewayのバックエンドに対して、グローバルにレート制限を設定可能 • 過剰なリクエストからバックエンドを保護することで、可用性やリソースの公平な使用を維持する • DoS攻撃の防止 • API使用を収益化するために利用を制限する •
etc. • 1秒当たりのリクエスト数の上限を全リクエストの合計 or クライアントIP単位で指定する 流入制限 Copyright © 2022, Oracle and/or its affiliates 13 API Gateway Functions User
• API GatewayでHTTPリクエストに対するバリデーショ ンが可能 • バックエンドサービスに対して不要な負荷をかけないよ うにするために、HTTPリクエストのバリデーション処理を API Gatewayにオフロードする •
検証のポリシー • Enforcing: すべてのリクエストに対して検証を実 施し、検証が成功したリクエストのみバックエンドへ ルーティングする • Permissive: すべてのリクエストに対して検証を実 施するが、検証結果によらずすべてのリクエストを バックエンドへルーティングする • Disabled: 検証を実施しない リクエストのバリデーション Copyright © 2022, Oracle and/or its affiliates 14 API Gateway Functions Container Engine For Kubernetes Public API バックエンドサービス ・・・ 【検証可能な項目】 • 特定のヘッダーを含むか • 特定のクエリーパラメーターを含むか • リクエストボディーのコンテンツタイプが期待通りか User
• API Gatewayで、HTTP Request/Responseの一 部の情報に対して変更が可能 ユースケース • バックエンドサービスが要求するヘッダー(e.g. Accept- Encoding)を一律で付与する
• セキュリティ上の理由で、レスポンスに含まれる特定の ヘッダー(e.g. Server)を削除する • バックエンドサービスが解釈できるような形にリクエストの URLを書き換える • etc. ヘッダー/クエリー変換 Copyright © 2022, Oracle and/or its affiliates 15 Functions バックエンド API Gateway User Functions Functions • ヘッダーの追加、削除、変更 • クエリーパラメーターの追加、削除、変更 • リクエストURLの書き換え • ヘッダーの追加、削除、変更 e.g. Request Headerに対して、上書きの設定を追加をする ・・・
Copyright © 2022, Oracle and/or its affiliates 16 APIの開発支援機能
• API GatewayでOpenAPI仕様(2.0 & 3.0)をサポート • デザイン・ファーストなAPIの開発サイクルに貢献 • API用のリファレンスドキュメントの共有 •
開発初期のモックサーバーを容易に生成 • 認証・認可等のポリシーを追加し、さらに高度なス タブとして活用可能 • OpenAPI仕様を元にAPIクライアント用のSDKが各言 語で生成可能 • Android Java • Java • JavaScript • Swift • TypeScript OpenAPI 2.0/3.0のサポート Copyright © 2022, Oracle and/or its affiliates 17 openapi: '3.0.2' info: title: Employee API version: '1.0' servers: - url: https://oci-api-gateway-host paths: # ... /employee: get: responses: '200': description: return all employee. # ... examples: OpenAPI仕様の定義ファイル をアップロードし、APIリソースを作成 APIリソースを使用して、 API GatewayにAPIをデプロイ
• 開発初期のモックサーバー構築が容易 • APIの内部実装が完成した後は、URLを変更す ることなく固定値から実APIへ置き換え可能 • OpenAPI仕様から作成したAPIリソースを用いて、 APIデプロイメント作成した場合は、デフォルトでモック サーバーとして提供される •
様々なポリシーと組み合わせることで高度なモックサー バーを構築可能 • 認証・認可 • リクエストのバリデーション • レート制限 • ロギング • … モックサーバー(Stock Response)の提供 Copyright © 2022, Oracle and/or its affiliates 18
• OpenAPI仕様から作成したAPIリソースを元にAPIクラ イアント用のSDK(Software Development Kits)を 作成可能 • 対応言語 • Android
Java • Java • JavaScript • Swift • TypeScript クライアントSDKの生成 Copyright © 2022, Oracle and/or its affiliates 19 SDKを用いたサンプルコード(Java): // Import classes: import com.example.sdk.ApiClient; import com.example.sdk.ApiException; import com.example.sdk.Configuration; import com.example.sdk.models.*; import com.example.sdk.api.DefaultApi; public class Example { public static void main(String[] args) { ApiClient defaultClient = Configuration.getDefaultApiClient(); defaultClient.setBasePath("https://hoyd2..."); DefaultApi apiInstance = new DefaultApi(defaultClient); Integer employeeId = 56; // Integer | try { apiInstance.employeeEmployeeIdDelete(employeeId); } catch (ApiException e) { System.err.println("Exception when calling DefaultApi#employeeEmplo yeeIdDelete"); System.err.println("Status code: " + e.getCode()); System.err.println("Reason: " + e.getResponseBody()); System.err.println("Response headers: " + e.getResponseHeaders()); e.printStackTrace(); } } }
• 外部に構築したキャッシュ・サーバーと統合することで、 同一リクエスト(GET, HEAD, OPTIONS)に対するレス ポンスをキャッシュ・サーバーから返却する機能 • ユースケース • 同一リクエストに対する応答を高速化したい
• バックエンド・サービスに対して必要以上に負荷を かけたくない レスポンス・キャッシュ Copyright © 2022, Oracle and/or its affiliates 20 API Gateway Functions Container Engine For Kubernetes Public API バックエンドサービス ・・・ Cache Server ・・・ [^1]: リクエストのURL、HTTP メソッド(GET, HEAD, OPTIONS)、 APIデプロイメントのOCIDから導出されるキャッシュ・サーバー内のレスポンスを 一意に識別するためのキー 3. API Response 1. API Request 2. キャッシュ・キー[^1]を 元に照合 2. キャッシュ・ヒットしない場合は バックエンドサービスに問い合わせ Key Vault キャッシュ・サーバー へのパスワードを格納 ・・・ User
Thank you Copyright © 2022, Oracle and/or its affiliates 21
None