TL

サーバーレス API

サーバー管理ゼロで自動スケールする Web/API 構成。CDN(WAFエッジ)+Object Storage のフロントと、API Gateway+Functions+NoSQL Database のバックを OCI のマネージドサービスだけで組む。

中級コスト最適化運用上の優秀性パフォーマンス効率信頼性セキュリティ

このパターンは?

サーバーを1台も持たずに Web/API を構築する、OCI でのサーバーレス構成。アイドル時はほぼ無料(Functions は GB 秒課金で実行時のみ、NoSQL はオンデマンド)、急なスパイクにも自動でスケールします。AWS の「CloudFront+S3/API Gateway+Lambda+DynamoDB」を、OCI の同等サービスに置き換えた形です。

構成

[ユーザー]
   │ HTTPS
   ▼
CDN(WAFエッジポリシー) ──► Object Storage (SPA/静的サイト: HTML/CSS/JS)
   │
   │ /api/*
   ▼
API Gateway (JWTオーソライザー・レートリミット)
   │
   ▼
Functions (ビジネスロジック / Fn Project)
   │
   ▼
NoSQL Database (データ)    ※ファイルは Object Storage、秘密情報は Vault

各コンポーネントの役割

  • CDN + Object Storage: フロント(SPA/静的)を WAF エッジポリシーでキャッシュ・TLS 終端し、バケットは Private のまま PAR で配信
  • API Gateway: API の玄関。JWT オーソライザーレートリミット(PER_CLIENT)・CORS・ルーティングを集約
  • Functions: ロジックをイベント実行。ステートレス・自動スケール(Fn Project ベース、コンテナイメージを OCIR から起動)
  • NoSQL Database: 一桁ミリ秒・サーバーレスなデータストア(型付きスキーマ+SQL 風クエリ)

設計の勘所

サーバーレスはステートレス前提

状態は NoSQL Database / Object Storage に逃がし、Functions は小さく速く。コールドスタートが気になる箇所は Provisioned Concurrency で実行基盤を事前確保し、イメージを軽く保つ。

  • 認証は JWT オーソライザー(IDCS / 外部 OAuth IdP の発行トークン)を API Gateway の玄関で検証し集約。独自ロジックが要るなら Functions オーソライザー
  • NoSQL は アクセスパターン駆動で設計し、シャードキーを均等分散させて全件 SCAN を避ける(詳細
  • Functions から他サービスへの認証は リソースプリンシパルを使い、秘密情報は Vault の Secrets から実行時取得(鍵をコードや config に直書きしない)
  • 非同期・重い処理は Queue でバッファし、Events で「オブジェクト作成 → Functions 起動」を疎結合に接着

レイヤ対応(AWS との置き換え)

サーバーレス API の各レイヤが、AWS と OCI でどのサービスに対応するかを押さえると設計・移行がスムーズです。

レイヤAWSOCI
静的配信(エッジ)CloudFrontCDN(WAF エッジポリシー)
静的アセット保管S3Object Storage
API 受付API GatewayAPI Gateway
ロジック実行LambdaFunctions(Fn Project)
データストアDynamoDBNoSQL Database
認証Cognito + オーソライザーJWT(IDCS) / Functions オーソライザー
権限付与IAM 実行ロールリソースプリンシパル + 動的グループ/ポリシー
秘密情報Secrets Manager / Parameter StoreVault(Secrets)
非同期/イベントSQS / EventBridgeQueue / Events
監視/ログCloudWatchMonitoring / Logging

Well-Architected の観点

  • コスト最適化: 従量課金・アイドル無料(Functions は GB 秒、NoSQL はオンデマンド、API Gateway はコール数)
  • 運用上の優秀性: サーバー管理レス。デプロイメント仕様や関数を Resource Manager(Terraform)/ OpenAPI で IaC 化
  • パフォーマンス効率: エッジ配信+自動水平スケール。NoSQL は一桁ミリ秒
  • 信頼性: マネージドサービスの冗長性(API Gateway はリージョナルで複数 AD、NoSQL はリージョン内自動複製)を活用し、Queue でリトライ・退避
  • セキュリティ: 玄関で認証集約、最小権限ポリシー、Vault による鍵管理、バケットは Private

よくある落とし穴

アンチパターン
  • Functions に状態を持たせる/イメージを巨大化させてコールドスタートを悪化させる
  • NoSQL を RDB 感覚で正規化し、シャードキーが偏ってホットシャードになる/全件 SCAN を多用する
  • API Gateway のレートリミット未設定でバックエンド(Functions・DB)が過負荷になる
  • 共有のために Object Storage バケットを Public に切り替える(一時共有は期限付き PAR が正解)
  • API キー/パスワードを Functions の config やイメージに直書き(リソースプリンシパル+Vault を使う)
OCI 固有の注意点

API Gateway のエンドポイント種別(パブリック/プライベート)は作成後に変更できないため最初に決める。Functions の**最大実行時間は 300 秒(5 分)**で、メモリは離散値(128/256/512/1024/2048 MB)。長時間処理は Queue + 分割か、Container Instances / OKE といった常駐基盤を検討する。

メトリクス/ログは Monitoringoci_apigateway / oci_faas 名前空間)と Logging、権限は IAM動的グループ+ポリシーで最小化する。

OCI Pattern

サーバーレス APIを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

cost

比較で見る軸

クラウド: OCI / 難易度: intermediate / 関連サービス: 10件

導入後に効く点

サーバー管理ゼロで自動スケールする Web/API 構成。CDN(WAFエッジ)+Object Storage のフロントと、API Gateway+Functions+NoSQL Database のバックを OCI のマネージドサービスだけで組む。

先に潰すリスク

パターンをそのまま写すのではなく、可用性、権限、ネットワーク境界、運用手順を自分の要件に合わせる必要がある。

数字・仕様の読み方
クラウド
OCI
難易度
intermediate
関連サービス
10件
設計柱
cost / operational / performance / reliability / security

判断チェックリスト

  • 自社の用途が「cost / operational」に近いか確認する。
  • 強みである「サーバー管理ゼロで自動スケールする Web/API 構成。CDN(WAFエッジ)+Object Storage のフロントと、API Gateway+Functions+NoSQL Database のバックを OCI のマネージドサービスだけで組む。」が本当に評価軸になるか確認する。
  • 注意点の「パターンをそのまま写すのではなく、可用性、権限、ネットワーク境界、運用手順を自分の要件に合わせる必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

costoperationalperformancereliabilitysecurityOCI CDNOCI Object StorageOCI API Gateway