API Management ランディング ゾーン アクセラレータの運用管理に関する考慮事項
この記事では、API Management 用ランディング ゾーン アクセラレータを使用するときの運用管理に関する設計上の考慮事項と推奨事項について説明します。 運用管理には、次のような複数の側面が含まれています。
- API Management インスタンスのプロビジョニング、スケーリング、および監視
- ゲートウェイでのポリシーの構成
- API の管理
- 事業継続とディザスター リカバリーの準備
管理設計領域についての理解を深めます。
管理と監視
管理と監視の設計に関する考慮事項
- 各 API Management サービス レベルの最大スループット制限に注意してください。 これらの制限は概数であり、保証されるものではありません。
- API Management サービス レベルあたりのスケール ユニットの最大数に注意してください。
- スケールアウト、別リージョンへのデプロイ、または別のサービス レベルへの変換に必要な時間に注意してください。
- API Management は自動的にスケールアウトされません。追加の構成が必要です。
- スケールアウト イベント中にダウンタイムは発生しません。
- 複数リージョンのデプロイで、すべてのリージョンにデプロイされるのは、API Management のゲートウェイ コンポーネントのみです。
- 高負荷時の Application Insights ログのパフォーマンスへの影響に注意してください。
- 適用する受信ポリシーと送信ポリシーの数と、それらによるパフォーマンスへの影響に注意してください。
- API Management ポリシーはコードであり、バージョン管理下に置く必要があります
- API Management の組み込みのキャッシュは同じ API Management サービスの同じリージョン内のすべてのユニットで共有されます。
- 可用性ゾーンを使用します。 選択した数のスケールユニットを、ゾーン全体に均等に分散させる必要があります。
- セルフホステッド ゲートウェイを使用している場合は、資格情報の有効期限が 30 日ごとに切れ、ローテーションする必要があることに注意してください。
- URI
/status-0123456789abcdef
は、API Management サービスの共通の正常性エンドポイントとして使用できます。 - API Management サービスは WAF ではありません。 保護のレイヤーを追加するために、Azure Application Gateway などの WAF を前面にデプロイします。
- クライアント証明書のネゴシエーションは、ゲートウェイごとの構成で有効になります。
- Key Vault 内の証明書とシークレットは、設定後 4 時間以内に API Management で更新されます。 また、Azure portal を使用するか、または管理 REST API を通じて、シークレットを手動で更新することもできます。
- カスタム ドメインは、すべてのエンドポイントに適用することも、サブセットのみに適用することもできます。 Premium レベルでは、ゲートウェイ エンドポイントに対する複数のホスト名の設定がサポートされます。
- API Management は、管理 REST API を使用してバックアップできます。 バックアップは 30 日後に期限切れになります。 バックアップされない API Management に注意してください。
- 名前付きの値はスコープ内でグローバルです。
- API 操作は、製品とサブスクリプションにグループ化できます。 設計は実際のビジネス要件に基づいて行います。
管理と監視の設計に関する推奨事項
- ゲートウェイ エンドポイントにのみカスタム ドメインを適用します。
- イベント ハブ ポリシーを使用して、ハイ パフォーマンス レベルでログを記録します。
- 外部キャッシュを使用して、制御と最速のパフォーマンスを実現します。
- 最適な可用性とパフォーマンスを実現するために、リージョンごとに 2 つの可用性ゾーンに分散された 2 つ以上のスケール ユニットをデプロイします。
- Azure Monitor を使用して、API Management を自動スケーリングします。 セルフホステッド ゲートウェイを使用している場合は、Kubernetes 水平ポッド自動スケーラーを使用してゲートウェイをスケールアウトします。
- Azure にバックエンド API に近いリージョンがないセルフホステッド ゲートウェイをデプロイします。
- 証明書ストレージ、通知、ローテーションには Key Vault を使用します。
- 必要な場合を除き、3DES、TLS 1.1、またはそれ以下の暗号化プロトコルは有効にしないでください。
- DevOps とコードとしてのインフラストラクチャのプラクティスを使用して、すべてのデプロイ、更新、ディザスター リカバリーを処理します。
- API リビジョンを作成し、すべての API 更新プログラムのログ エントリを変更します。
- バックエンドを使用して、冗長 API バックエンド構成を排除します。
- 名前付きの値を使用して、ポリシーで使用できる共通の値を保存します。
- Key Vault を使用して、名前付きの値が参照できるシークレットを保存します。 Key Vault 内で更新されたシークレットは、API Management で自動的にローテーションされます。
- API バージョンの更新が中断された場合にユーザーに通知する通信戦略を開発します。
- 診断設定を構成して、AllMetrics と AllLogs を Log Analytics ワークスペースに転送します。
事業継続とディザスター リカバリー
事業継続とディザスター リカバリーの設計に関する考慮事項
- 保護する API Management インスタンスと、それらがサポートするバリュー チェーン (コンシューマーとプロバイダー) の回復時間の目標 (RTO) と回復ポイントの目標 (RPO) を決定します。 新しいインスタンスをデプロイするか、またはホット/コールド スタンドバイを使用することを検討してください。
- API Management では、マルチゾーンとマルチリージョンのデプロイがサポートされています。 要件に基づいて、1 つのみまたは両方を有効にすることができます。
- フェールオーバーは自動化できます。
- マルチゾーンのデプロイは自動的にフェールオーバーされます。
- マルチリージョンのデプロイでは、フェールオーバーする Traffic Manager などの DNS ベースのロード バランサーが必要です。
- API Management は、管理 REST API を使用してバックアップできます。
- バックアップは 30 日後に期限切れになります。
- APIM で何がバックアップされないかに注意してください
事業継続とディザスター リカバリーの設計に関する推奨事項
- ARM テンプレートからの再デプロイ中のダウンタイムを防ぐために、API Management にはユーザー割り当てマネージド ID を使用します。 システム割り当てマネージド ID を使用している場合、この ID とそれに関連付けられているロールと割り当て (Azure Key Vault シークレット アクセスなど) は、リソースが削除されると削除されます。 ユーザー割り当てマネージド ID を使用している場合、これらの割り当てはそのまま残るため、アクセスを失うことなく再度 API Management に関連付けることができます。
- 自動 Azure Pipelines を使用してバックアップを実行します。
- マルチリージョンのデプロイが必要かどうかを決定します。
エンタープライズ規模の前提条件
API Management ランディング ゾーン アクセラレータの開発にあたっての前提を次に示します。
- 可用性ゾーンとマルチリージョンのデプロイをサポートする API Management の Premium レベルのインスタンスをお勧めします。
- Azure Pipelines は、コードとしてのインフラストラクチャを管理およびデプロイするために使用されます。