𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
AWS API Gateway REST API構築ガイド|SESエンジニア向け実践

AWS API Gateway REST API構築ガイド|SESエンジニア向け実践

AWSAPI GatewayREST APILambdaSESエンジニア
目次
⚡ 3秒でわかる!この記事のポイント
  • API GatewayはSES案件で需要の高いスキルで、バックエンド案件の約40%で求められる
  • REST APIとHTTP APIの違いを理解し、ユースケースに応じて選択することが重要
  • Lambda統合・Cognito認証・キャッシュ設定を組み合わせた本番運用のベストプラクティスを解説

AWS API Gatewayは、サーバーレスアーキテクチャの入り口として多くのSES案件で採用されています。「Lambda関数を書けるだけではなく、API Gatewayでエンドポイントを設計・運用できるエンジニア」の需要は年々高まっています。

本記事では、REST APIの基本構築からCognito認証、パフォーマンス最適化まで、SES現場で即使える実践的な内容をお届けします。

この記事でわかること
  • API GatewayがSES案件で求められる理由
  • REST APIとHTTP APIの違い
  • Lambda統合によるAPI構築手順
  • Cognito・IAM・APIキーを使った認証設定
  • ステージ管理とデプロイメント戦略
  • パフォーマンス最適化とモニタリング

AWS API Gatewayの概要とSES案件での需要

まず、API GatewayがSES案件でどのように使われているかを把握しましょう。

API GatewayがSES案件で求められる理由

SES案件でAPI Gatewayスキルが求められるのは、以下の理由からです。

  • サーバーレスアーキテクチャの普及: Lambda + API Gatewayの組み合わせが標準的なパターンに
  • マイクロサービス化の推進: モノリスからマイクロサービスへの移行案件が増加
  • BFF(Backend for Frontend)パターン: フロントエンドとバックエンドの橋渡し役としてのAPI Gateway
  • レガシーシステムのAPI化: 既存システムをAPIとして公開するラッパーとして利用

SES現場では、バックエンド開発案件の約40%でAPI Gatewayのスキルが求められていると言われています。

REST API vs HTTP API の違い

API GatewayにはREST APIHTTP APIの2種類があります。

特徴REST APIHTTP API
料金やや高いREST APIの約30%安い
レイテンシー標準より低レイテンシー
機能豊富(リクエスト検証、WAF、APIキー等)基本的な機能
認証IAM, Cognito, Lambda Authorizer, APIキーIAM, Cognito, JWT
キャッシュ×
使用量プラン×
リクエスト変換○(マッピングテンプレート)×

選択の目安:

  • エンタープライズ用途・複雑な要件 → REST API
  • シンプルなAPI・コスト重視 → HTTP API

SES案件では要件が複雑なケースが多いため、REST APIの知識が優先的に求められます

REST APIの基本構築手順

実際にREST APIを構築する手順を解説します。

リソースとメソッドの設計

REST APIの設計はリソース設計から始めます。例として、ユーザー管理APIを設計します。

/users
  GET    → ユーザー一覧の取得
  POST   → ユーザーの作成

/users/{userId}
  GET    → 特定ユーザーの取得
  PUT    → ユーザー情報の更新
  DELETE → ユーザーの削除

/users/{userId}/orders
  GET    → 特定ユーザーの注文一覧

AWS CLIでの作成例:

# REST APIの作成
aws apigateway create-rest-api \
  --name "UserManagementAPI" \
  --description "ユーザー管理API" \
  --endpoint-configuration types=REGIONAL

# リソースの作成
aws apigateway create-resource \
  --rest-api-id $API_ID \
  --parent-id $ROOT_ID \
  --path-part "users"

Lambda統合の設定方法

API GatewayとLambdaを統合するには、Lambda プロキシ統合を使うのが最もシンプルです。

# メソッドの作成とLambda統合
aws apigateway put-method \
  --rest-api-id $API_ID \
  --resource-id $RESOURCE_ID \
  --http-method GET \
  --authorization-type NONE

aws apigateway put-integration \
  --rest-api-id $API_ID \
  --resource-id $RESOURCE_ID \
  --http-method GET \
  --type AWS_PROXY \
  --integration-http-method POST \
  --uri "arn:aws:apigateway:ap-northeast-1:lambda:path/2015-03-31/functions/$LAMBDA_ARN/invocations"

Lambda側のレスポンスフォーマット:

def handler(event, context):
    return {
        'statusCode': 200,
        'headers': {
            'Content-Type': 'application/json',
            'Access-Control-Allow-Origin': '*'
        },
        'body': json.dumps({
            'users': [
                {'id': '1', 'name': 'Tanaka'},
                {'id': '2', 'name': 'Suzuki'}
            ]
        })
    }

認証・認可の実装

本番運用に不可欠な認証・認可の実装方法を解説します。

Cognitoユーザープール統合

最も一般的な認証方法がAmazon Cognitoユーザープールとの統合です。

# Cognitoオーソライザーの作成
aws apigateway create-authorizer \
  --rest-api-id $API_ID \
  --name "CognitoAuthorizer" \
  --type COGNITO_USER_POOLS \
  --provider-arns "arn:aws:cognito-idp:ap-northeast-1:123456789:userpool/ap-northeast-1_xxxxx" \
  --identity-source "method.request.header.Authorization"

クライアント側からは、CognitoのIDトークンをAuthorizationヘッダーに含めてリクエストします。

IAM認証とAPIキー管理

サービス間通信にはIAM認証、サードパーティ連携にはAPIキーを使います。

APIキーの運用ベストプラクティス:

  • APIキーは認証ではなく**アクセス管理(使用量制限)**として使用
  • 本番環境ではCognitoまたはIAM認証と組み合わせる
  • APIキーのローテーションを定期的に実施
  • 使用量プランでスロットリングを設定

ステージとデプロイメント管理

API Gatewayのステージ機能を使って、環境を分離します。

開発/ステージング/本番の環境分離

# デプロイメントの作成
aws apigateway create-deployment \
  --rest-api-id $API_ID \
  --stage-name dev

aws apigateway create-deployment \
  --rest-api-id $API_ID \
  --stage-name staging

aws apigateway create-deployment \
  --rest-api-id $API_ID \
  --stage-name prod

各ステージでステージ変数を使って環境固有の設定を管理します。

# ステージ変数の設定
aws apigateway update-stage \
  --rest-api-id $API_ID \
  --stage-name prod \
  --patch-operations op=replace,path=/variables/lambdaAlias,value=prod

Lambda側で${stageVariables.lambdaAlias}を参照することで、ステージごとに異なるLambdaバージョンを呼び出せます。

パフォーマンス最適化

本番運用でのパフォーマンスを最適化する方法を解説します。

キャッシュ設定・スロットリング・WAF連携

1. APIキャッシュの設定

# キャッシュの有効化(0.5GBキャッシュ)
aws apigateway update-stage \
  --rest-api-id $API_ID \
  --stage-name prod \
  --patch-operations \
    op=replace,path=/cacheClusterEnabled,value=true \
    op=replace,path=/cacheClusterSize,value=0.5

キャッシュにより、同一リクエストに対するLambda呼び出しを削減し、レスポンス速度を向上させます。

2. スロットリング設定

使用量プランを作成して、APIキーごとのリクエスト上限を設定します。

  • バースト制限: 短時間の突発的なリクエストに対する上限
  • レート制限: 1秒あたりのリクエスト上限
  • クォータ: 日/週/月単位のリクエスト上限

3. AWS WAFとの連携

REST APIにはAWS WAFを適用して、SQLインジェクションやXSSなどの攻撃を防御できます。

モニタリングとトラブルシューティング

CloudWatch連携とX-Rayトレーシング

CloudWatchメトリクスで以下を監視します。

  • 4XXError / 5XXError: クライアントエラー・サーバーエラーの発生率
  • Latency: APIのレスポンス時間
  • Count: リクエスト数
  • CacheHitCount / CacheMissCount: キャッシュのヒット率

X-Rayを有効にすることで、API Gateway → Lambda → DynamoDB のリクエストフロー全体をトレースできます。

# X-Rayトレーシングの有効化
aws apigateway update-stage \
  --rest-api-id $API_ID \
  --stage-name prod \
  --patch-operations op=replace,path=/tracingEnabled,value=true

AWSのAPI Gateway公式ドキュメントも併せて参照してください。

関連記事として「AWS SESエンジニアガイド」「AWS Lambda入門ガイド」「AWS IAMセキュリティ」も参考にしてください。

まとめ|API GatewayスキルでSES案件の幅を広げる

AWS API Gatewayは、SESエンジニアのバックエンドスキルを強化する重要な技術です。

  • REST APIの設計と構築がSES案件で高く評価される
  • Lambda統合でサーバーレスアーキテクチャを実現
  • Cognito認証で本番レベルのセキュリティを確保
  • ステージ管理で安全なデプロイメントフローを構築
  • キャッシュ・WAFでパフォーマンスとセキュリティを最適化

API Gatewayのスキルを身につけることで、サーバーレス案件やマイクロサービス案件への参画チャンスが大きく広がります。まずはLambdaとの基本的な統合から始めて、認証やキャッシュといった本番運用のテクニックを段階的に習得していきましょう。

AWS API Gateway REST API構築のアーキテクチャ図解

☁️ AWSスキルを活かせるSES案件を探すなら

SES BASEではAWS関連の案件を多数掲載中。API Gateway・Lambda・サーバーレスの経験を活かせる案件を見つけましょう。

SES BASEで案件を探す →

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修