APIゲートウェイの作成

APIゲートウェイ・サービスを使用して、フロントエンド・クライアントからのトラフィックを処理し、それをバックエンド・サービスにルーティングする方法について学習します。

1つ以上のAPIゲートウェイを作成して、APIクライアントからのトラフィックを処理し、それをバックエンド・サービスにルーティングすることができます。APIゲートウェイを作成した後、APIデプロイメントを作成してAPIゲートウェイにAPIをデプロイします。

次の方法で、単一APIゲートウェイを複数のバックエンド・サービスのフロント・エンドとして使用できます:

  • 複数のバックエンド・サービスを定義するAPIデプロイメント仕様を使用して、APIゲートウェイで単一のAPIデプロイメントを作成します。
  • それぞれに1つ(または、それ以上)のバックエンド・サービスを定義するAPIデプロイメント仕様を使用して、同じAPIデプロイメントを作成します。

単一のAPIゲートウェイをフロント・エンドとして使用すると、APIが実際には、様々なプログラミング言語やテクノロジを使用して異なるソフトウェア・チームによって記述される小規模なマイクロサービスから構成されている場合でも、単一の統合性のあるAPIをAPIコンシューマおよびAPIクライアントに提供できます。

    1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします「API管理」で、「ゲートウェイ」をクリックします
    2. APIゲートウェイを作成するコンパートメントを選択します。
    3. 「ゲートウェイの作成」をクリックし、APIゲートウェイに次の値を指定します:

      • 名前: APIゲートウェイの名前。機密情報の入力は避けてください。
      • タイプ: 作成するAPIゲートウェイのタイプ。
        • APIゲートウェイ(およびそれにデプロイされているAPI)のみを同じプライベート・ネットワーク(VCN)のリソース、またはそのプライベート・ネットワークにピアリングされている他のプライベート・ネットワークまたはオンプレミス・ネットワークのリソースからアクセス可能にする場合は、「プライベート」を選択します。
        • APIゲートウェイ(およびそれにデプロイされているAPI)にパブリックにアクセスできるようにする場合は、「パブリック」を選択します。APIゲートウェイのVCNにインターネット・ゲートウェイが存在する場合は、インターネットからパブリックAPIゲートウェイにアクセスできます。
      • コンパートメント: APIゲートウェイを作成するコンパートメント。
      • <compartment-name>の仮想クラウド・ネットワーク: APIゲートウェイを作成するVCN。VCNはAPIゲートウェイと同じコンパートメントにあることができますが、そうである必要はありません。
      • <compartment-name>のサブネット: APIゲートウェイを作成するパブリックまたはプライベートのリージョン・サブネット。パブリックAPIゲートウェイを作成する場合、パブリックのリージョナル・サブネットを指定する必要があります。

        APIゲートウェイは、デフォルトで開いていないポート443で通信することに注意してください。ポート443でトラフィックを許可するには、リージョン・サブネット(セキュリティ・リスト内またはネットワーク・セキュリティ・グループ内)に新しいステートフル・イングレス・セキュリティ・ルールを追加する必要があります。イングレス・セキュリティ・ルールのプロパティは、APIゲートウェイとともに使用するVCNの作成(まだ存在しない場合)を参照してください。

      • ネットワーク・セキュリティ・グループの有効化:このオプションを選択すると、指定した1つ以上のネットワーク・セキュリティ・グループ(NSG)に定義されているセキュリティ・ルール(最大5つのネットワーク・セキュリティ・グループ)を使用して、APIゲートウェイとの間のアクセスが制御されます。セキュリティ・リストに対して定義されたセキュリティ・ルールのかわりに、またはそれに加えてNSGに定義されたセキュリティ・ルールを使用できます。NSGは新規APIゲートウェイと同じコンパートメントに属することができますが、そうである必要はありません。ネットワーク・セキュリティ・グループを参照してください。
      • 証明書: APIゲートウェイが使用するTLS証明書。選択したTLS証明書によって、APIゲートウェイのドメイン名が決まります。
        • デフォルト(*.oci.customer-oci.com)(表示されている場合): ドメイン名を自動的に生成し、APIゲートウェイ・サービスによって取得されたデフォルトのTLS証明書をAPIゲートウェイで使用する場合は、このオプションを選択します。生成されたデフォルト・ドメイン名には、ランダムな文字列の後に.apigateway.<region-identifier>.oci.customer-oci.comを付けます。たとえば、laksjd.apigateway.us-phoenix-1.oci.customer-oci.comです。このオプションは、一部のリージョンでは使用できません。
        • 証明書サービス・カテゴリ(表示されている場合): APIゲートウェイで使用するカスタムTLS証明書の詳細を含む、既存の証明書サービス証明書リソースを選択します。APIゲートウェイは、選択した証明書に関連付けられたカスタム・ドメイン名を使用します。このカテゴリは、選択したコンパートメントで証明書サービス証明書リソースが使用可能な場合にのみ表示されます。
        • 「APIゲートウェイ証明書」カテゴリ(表示されている場合): APIゲートウェイで使用するカスタムTLS証明書の詳細を含む既存のAPIゲートウェイ証明書リソースを選択します。APIゲートウェイは、選択した証明書に関連付けられたカスタム・ドメイン名を使用します。このカテゴリは、選択したコンパートメントでAPIゲートウェイ証明書リソースが使用可能な場合にのみ表示されます。

        カスタム・ドメインおよびTLS証明書の設定を参照してください。

        ノート

        パブリック・システムまたは本番システムにカスタムTLS証明書を使用することをお薦めします。APIゲートウェイ・サービスによって取得されたデフォルトのTLS証明書は、プライベート・システムまたは非本番システム(たとえば、開発およびテスト用)にのみ使用することをお薦めします。

    4. オプションで、「拡張オプションの表示」をクリックし、次の値を指定します:
      • レスポンス・キャッシング:パフォーマンスを向上させ、バックエンド・サービスの負荷を軽減するためにAPIゲートウェイのレスポンス・キャッシングを有効化および構成するオプション。「パフォーマンス向上のためのレスポンスのキャッシュ」を参照してください。
      • 認証局: APIゲートウェイのトラスト・ストアに(デフォルトのCAバンドルに加えて)カスタムCAおよびカスタムCAバンドルとして追加する1つ以上の認証局(CA)リソースまたはCAバンドル・リソース。カスタムCAおよびカスタムCAバンドルは、APIクライアントおよびバックエンド・サービスによって提示されるTLS証明書を検証するために使用されます。「TLS証明書検証のためのトラスト・ストアのカスタマイズ」を参照してください。
      • タグ: リソースの作成権限がある場合は、そのリソースにフリーフォーム・タグを適用する権限もあります。定義済のタグを適用するには、タグ・ネームスペースを使用する権限が必要です。タグ付けの詳細は、リソース・タグを参照してください。タグを適用するかどうかがわからない場合は、このオプションをスキップするか、管理者に連絡してください。タグは後から適用できます。
        ノート

        定義済タグをAPIゲートウェイ(直接またはコンパートメントのタグのデフォルトとして)に適用し、その後タグ定義を変更する場合、APIゲートウェイは失敗状態を入力できます。定義済タグが変更されない場合にのみ、定義済タグをAPIゲートウェイに適用します。定義されたタグが変更されるかどうかわからない場合は、APIゲートウェイに適用しないことをお薦めします。
    5. 「ゲートウェイの作成」をクリックして、APIゲートウェイを即時に作成します。

      新しいAPIゲートウェイの作成には数分かかる場合があります。作成中のAPIゲートウェイは、作成中の状態で表示されます。正常に作成されると、APIゲートウェイがアクティブの状態で表示されます。

      また、新しいAPIゲートウェイをすぐに作成するのではなく、「スタックとして保存」をクリックしてリソース定義をTerraform構成として保存することで、リソース・マネージャおよびTerraformを使用して後で作成できます。リソース定義からのスタックの保存の詳細は、「リソース作成ページからのスタックの作成」を参照してください。

    6. APIゲートウェイがアクティブの状態で表示されるのを数分以上待機していた場合(またはAPIゲートウェイの作成操作に失敗した場合は)、次のアクションを実行します:

      1. APIゲートウェイ名をクリックし、「作業リクエスト」をクリックして、APIゲートウェイの作成操作の概要を表示します。
      2. 「ゲートウェイの作成」操作をクリックし、操作に関する詳細情報(エラー・メッセージ、ログ・メッセージ、関連付けられたリソースのステータスなど)を表示します。
      3. APIゲートウェイの作成操作が失敗し、作業リクエスト情報から問題の原因を診断できない場合は、APIゲートウェイのトラブルシューティングを参照してください。

    APIゲートウェイを正常に作成したら、それにAPIをデプロイできます。APIデプロイメントの作成によるAPIゲートウェイへのAPIのデプロイを参照してください。

  • CLIを使用して新しいAPIゲートウェイを作成するには:

    1. CLIを使用するためにクライアント環境を構成します(APIゲートウェイ開発用のCLIを使用するためのクライアント環境の構成)。
    2. コマンド・プロンプトを開き、oci api-gateway gateway createを実行してAPIゲートウェイを作成します:

      oci api-gateway gateway create --display-name "<gateway-name>" --compartment-id <compartment-ocid> --endpoint-type "<gateway-type>" --subnet-id <subnet-ocid> --certificate-id <certificate-ocid> --ca-bundles file:///<filename> --response-cache-details file:///<filename>

      ここでは:

      • <gateway-name>は、新しいAPIゲートウェイの名前です。機密情報の入力は避けてください。
      • <compartment-ocid>は、新しいAPIゲートウェイが属するコンパートメントのOCIDです。
      • <gateway-type>は、作成するAPIゲートウェイのタイプです。APIゲートウェイ(およびそれにデプロイされているAPI)のみを同じプライベート・ネットワーク(VCN)のリソース、またはそのプライベート・ネットワークにピアリングされている他のプライベート・ネットワークまたはオンプレミス・ネットワークのリソースからアクセス可能にする場合は、PRIVATEを指定します。APIゲートウェイ(およびそれにデプロイされているAPI)にパブリックにアクセスできるようにする場合は、PUBLICを指定します。APIゲートウェイのVCNにインターネット・ゲートウェイが存在する場合は、インターネットからパブリックAPIゲートウェイにアクセスできます。
      • <subnet-ocid>は、APIゲートウェイを作成するパブリックまたはプライベートのリージョナル・サブネットのOCIDです。パブリックAPIゲートウェイを作成する場合、パブリックのリージョナル・サブネットを指定する必要があります。

        APIゲートウェイは、デフォルトで開いていないポート443で通信します。ポート443でトラフィックを許可するには、リージョン・サブネット(セキュリティ・リスト内またはネットワーク・セキュリティ・グループ内)に新しいステートフル・イングレス・セキュリティ・ルールを追加する必要があります。イングレス・セキュリティ・ルールのプロパティは、APIゲートウェイとともに使用するVCNの作成(まだ存在しない場合)を参照してください。

      • --network-security-group-ids <nsg-ocids> (オプション)は、1つ以上のネットワーク・セキュリティ・グループのOCIDです。<nsg-ocids>の値は、有効なJSON形式(文字列として、またはパスを含むfile:///<filename>構文を使用してファイルとして渡される)である必要があります。
      • <certificate-OCID> (オプション)は、APIゲートウェイのカスタムTLS証明書(APIゲートウェイ証明書リソースまたは証明書サービス証明書リソース)に対して作成される証明書リソースのOCIDです。カスタム・ドメインおよびTLS証明書の設定を参照してください。
      • --CA-bundles file:///<filename> (オプション)は、(デフォルトのCAバンドルに加えて)カスタムCAおよびカスタムCAバンドルとしてAPIゲートウェイのトラスト・ストアに追加する1つ以上の認証局(CA)リソースまたはCAバンドル・リソースの詳細を含むファイルです。カスタムCAおよびカスタムCAバンドルは、APIクライアントおよびバックエンド・サービスによって提示されるTLS証明書を検証するために使用されます。「TLS証明書検証のためのトラスト・ストアのカスタマイズ」を参照してください。
      • --response-cache-details file:///<filename> (オプション)は、レスポンス・キャッシュを有効化および構成するためのパスを含むキャッシュ構成ファイルです。「パフォーマンス向上のためのレスポンスのキャッシュ」を参照してください。

      例:

      oci api-gateway gateway create --display-name "Hello World Gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaa7______ysq --endpoint-type "PRIVATE" --subnet-id ocid1.subnet.oc1.iad.aaaaaaaaz______rca

      コマンドへのレスポンスには、次が含まれます:

      • APIゲートウェイのOCID。
      • ホスト名。APIゲートウェイにデプロイされたAPIをコールするときに使用するドメイン名です。APIゲートウェイの作成時に証明書リソースを指定しなかった場合、<gateway-identifier>.apigateway.<region-identifier>.oci.customer-oci.comというフォーマットのドメイン名が自動生成されます。ここで:

        • <gateway-identifier>は、APIゲートウェイを識別する文字列です。たとえば、lak...sjd(読みやすくするために省略形)と入力します。
        • <region-identifier>は、APIゲートウェイが作成されたリージョンの識別子です。リージョン別の可用性を参照してください。

        たとえば、lak...sjd.apigateway.us-phoenix-1.oci.customer-oci.comです。

      • ライフサイクルの状態(たとえば、ACTIVE、FAILED)。
      • APIゲートウェイを作成する作業リクエストのID(作業リクエストの詳細は、完了、取消または失敗の後の7日間利用可能です)。

      APIゲートウェイがアクティブになる(またはリクエストが失敗する)までコマンドが制御を返すのを待機するには、次のいずれかまたは両方のパラメータを含めます:

      • --wait-for-state ACTIVE
      • --wait-for-state FAILED

      例:

      oci api-gateway gateway create --display-name "Hello World Gateway" --compartment-id ocid1.compartment.oc1..aaaaaaaa7______ysq --endpoint-type "PRIVATE" --subnet-id ocid1.subnet.oc1.iad.aaaaaaaaz______rca --wait-for-state ACTIVE

      作業リクエストが正常に作成され、APIゲートウェイがアクティブになるまで、APIゲートウェイを使用できないことに注意してください。

    3. (オプション) APIゲートウェイのステータスを確認するには、次を入力します:

      oci api-gateway gateway get --gateway-id <gateway-ocid>
    4. (オプション) APIゲートウェイを作成している作業リクエストのステータスを確認するには、次を入力します:

      oci api-gateway work-request get --work-request-id <work-request-ocid>
    5. (オプション) APIゲートウェイを作成している作業リクエストのログを表示するには、次を入力します:

      oci api-gateway work-request-log list --work-request-id <work-request-ocid>
    6. (オプション) APIゲートウェイを作成している作業リクエストが失敗し、エラー・ログを確認する場合、次を入力します:

      oci api-gateway work-request-error --work-request-id <work-request-ocid>

    CLIの使用の詳細は、コマンドライン・インタフェース(CLI)を参照してください。CLIコマンドで使用できるフラグおよびオプションの完全なリストについては、CLIのヘルプを参照してください。

  • CreateGateway操作を実行して、APIゲートウェイを作成します。