IBM Cloud Docs
Code Engine での仮想プライベート・エンドポイントの使用

Code Engine での仮想プライベート・エンドポイントの使用

すべての IBM Cloud® Code Engine プロジェクトは、仮想プライベート・クラウド (VPC) 用のIBM Cloud® 仮想プライベート・エンドポイント (VPE) との統合を提供します。 このサポートにより、VPC 内のサブネットから割り振られた、選択した IP アドレスを使用して、VPC ネットワークから Code Engine アプリケーションまたは機能に接続することができます。

Code Engineでは、以下のタイプの VPE を使用できます。

プライベート・エンドポイントは、 IBM Cloud プライベート・ネットワーク上のプロジェクトのリソース、アプリケーション、または機能への接続を提供します。 仮想プライベート・エンドポイントを介して接続すると、すべてのトラフィックは Code Engine アプリケーション専用のハードウェアにルーティングされ、IBM Cloudプライベート・ネットワーク上に残ります。 このエンドポイントとの間のすべてのトラフィックについて、トラフィックが IBM Cloudに留まるかぎり追加料金は発生しません。

Code Engineプロジェクトは、パブリック・エンドポイントと仮想プライベート・エンドポイントの両方を使用して自動的に構成されます。

Code Engine アプリケーションの 可視性 を制御し、アプリケーションまたは関数をパブリック・エンドポイントまたはプライベート・エンドポイントに公開するかどうかを指定できます。 プライベート・ネットワーク用に構成されたアプリケーションまたは機能には、VPE を介して、または他の Code Engine アプリケーションまたは機能を介してアクセスできます。 VPE を介してアクセスされるアプリケーションまたは機能は、 IBM ネットワークを離れず、 IBM Cloud ネットワーク内にとどまりません。

プロジェクト・リソースを安全に管理するための VPE の使用

始める前に、IBM Cloudアカウントを用意ししなければなりません。

  1. IBM Cloud® Virtual Private Cloudを作成します。 『概要』に記載されている説明に従ってください。

  2. VPC に少なくとも 1 つの VSI (仮想サーバー・インスタンス) があり、VSI に接続できることを確認します。 VPC コンソール、CLI、および API を使用して、 IBM Cloud コンソールの IBM Cloud® Virtual Private Cloud ページから VSI をプロビジョンできます。

    1. VSI にアクセスするためのSSH 鍵を作成します。
    2. コンソールを使用して仮想サーバー・インスタンスを作成します
    3. 浮動 IP アドレスの予約これにより、インターネットからインスタンスにアクセスできるようになります。
    4. VSI への接続
  3. IBM Cloud コンソールで、メニュー・アイコンをクリックし、VPC インフラストラクチャー-> ネットワーク-> 仮想プライベート・エンドポイント・ゲートウェイを選択します。 この 命令を実行して、地域の Code Engine エンドポイントapi.<region>.codeengine.cloud.ibm.com用の VPE を作成します。

  4. VPE を作成した後、新しい VPE とプライベート DNS (pDNS) がプロセスを完了して VPC の作業を開始するまでに数分かかる場合があります。 VPE の詳細ビューに設定された IP アドレスが表示されると、完了したことが確認できます。

  5. VSI に SSH で接続し、root@を使用します。 例えば、ssh root@<VSI_floating_IP_address> です。

  6. VSI 内からCode Engineリソースにアクセスするには、Code EngineCLI 環境をセットアップします。 IBM CloudCLI がprivate.cloud.ibm.comに接続されていることを確認します。

  7. プライベート・エンドポイントを使用するCode Engineプロジェクトを指定します。 プロジェクトを作成するには、--endpoint=privateオプションを指定して ibmcloud ce project createコマンドを使用します。

    ibmcloud ce project create --name myproject --endpoint=private
    

    プロジェクトがactive状況になるまで待ちます。 CLI では、ibmcloud ce project get コマンドを使用してプロジェクトの状況を確認できます。

    既存の Code Engineプロジェクトでプライベート・エンドポイントを使用する場合は、--endpoint=privateオプションを指定してibmcloud ce project selectコマンドを使用します。

    ibmcloud ce project select --name myproject --endpoint=private
    

    **project createコマンドおよびproject select**コマンドでは、--endpointオプションが明示的に指定されていない場合、動作はシステムによって決定されます。 IBM Cloud CLI がprivate.cloud.ibm.comに接続されている場合、Code Engineプロジェクトは--endpointprivateであるかのように動作します。 IBM Cloud CLI がcloud.ibm.comに接続されている場合、Code Engineプロジェクトは--endpointpublicであるかのように動作します。

  8. 新規プロジェクトを作成しておらず、既存のプロジェクトを選択した場合に、アプリまたは機能をプライベート・エンドポイントにのみ表示するには、既存のプロジェクトがプライベート可視性を持つアプリケーションをサポートしていることを確認します。 ibmcloud ce project getコマンドを使用して、Application Private Visibility Supportedの出力がtrueに設定されていることを確認します。 値がfalseの場合、IBM サポートへの連絡は、既存のプロジェクト内でこの機能を有効にします。

    ibmcloud ce project get -n myproject
    

    出力例

    Getting project 'myproject'...
    OK
    
    Name:                                      myproject  
    ID:                         abcdabcd-abcd-abcd-abcd-f1de4aab5d5d
    Status:                                    active  
    Enabled:                                   true  
    Application Private Visibility Supported:  false  
    Selected:                                  true  
    Region:                                    us-south
    Resource Group:             default
    Service Binding Service ID: ServiceId-1234abcd-abcd-abcd-1111-1a2b3c4d5e6f
    Age:                        52d
    Created:                                   Tue, 28 Sep 2021 05:12:16 -0500  
    Updated:                                   Tue, 28 Sep 2021 05:12:19 -0500  
    
    Quotas:    
    Category                                  Used  Limit  
    App revisions                             1     60  
    Apps                                      1     20  
    Build runs                                1     100  
    Builds                                    2     100  
    Configmaps                                2     100  
    CPU                                       0     64  
    Ephemeral storage                         0     256G  
    Instances (active)                        0     250  
    Instances (total)                         0     2500  
    Job runs                                  0     100  
    Jobs                                      0     100  
    Memory                                    0     256G  
    Secrets                                   6     100  
    Subscriptions (cron)                      0     100  
    Subscriptions (IBM Cloud Object Storage)  0     100  
    Subscriptions (Kafka)                     0     100
    
  9. プライベート・エンドポイントにのみ表示されるアプリケーションを作成します。 --visibility=privateオプションを指定してibmcloud ce application createコマンドを使用します。 あるいは、コンソールを使用してアプリを作成するか、既存のアプリを更新して アプリの可視性を設定できます。

    ibmcloud ce application create -n myapp --visibility=private
    

これで、プロジェクト・リソースを管理するための仮想プライベート・エンドポイントの構成とセットアップが完了しました。 プライベート・エンドポイントに公開するアプリを制御する場合は、アプリケーションにアクセスするための VPE のセットアップを実行できます。

VPE を使用したアプリへの安全なアクセス

始める前に、IBM Cloudアカウントを用意ししなければなりません。

選択したプロジェクトが アプリケーションのプライベート可視性をサポートしている場合は、プライベート・エンドポイントを使用してアプリにアクセスするためにのみ VPE を使用できます。 プロジェクトがアプリケーションのプライベート可視性をサポートしているかどうかを確認するには、ibmcloud ce project getコマンドを使用して、Application Private Visibility Supportedの出力がtrueに設定されていることを確認します。

  1. IBM Cloud® Virtual Private Cloudを作成します。 『概要』に記載されている説明に従ってください。

  2. VPC に少なくとも 1 つの VSI (仮想サーバー・インスタンス) があり、VSI に接続できることを確認します。 コンソール、CLI、および API を使用して、 IBM Cloud コンソールの IBM Cloud® Virtual Private Cloud ページから仮想サーバー・インスタンスを素早くプロビジョンできます。

    1. VSI にアクセスするためのSSH 鍵を作成します。
    2. UI を使用した仮想サーバー・インスタンスの作成
    3. 浮動 IP アドレスの予約これにより、インターネットからインスタンスにアクセスできるようになります。
    4. VSI への接続
  3. Code Engineプロジェクトから、アプリケーションが visibility=private設定で構成されていることを確認します。 プライベート・エンドポイントを使用したアプリケーションのデプロイを参照してください。

  4. IBM Cloud コンソールで、メニュー・アイコンをクリックし、VPC インフラストラクチャー-> ネットワーク-> 仮想プライベート・エンドポイント・ゲートウェイを選択します。 この 命令を実行して、プライベート・アプリケーションの可視性に使用する特定のプロジェクトの地域 Code Engine エンドポイント用の VPE を作成します。 このプロジェクトが表にリストされ、そのエンドポイントが*.<uuid>.private.<region>.codeengine.appdomain.cloudという形式で示されます。

  5. VPE を作成した後、新しい VPE とプライベート DNS (pDNS) がプロセスを完了して VPC の作業を開始するまでに数分かかる場合があります。 VPE の詳細ビューに設定された IP アドレスが表示されると、完了したことが確認できます。

  6. プライベート・ネットワークに公開されている Code Engineアプリケーションの URL を取得します。 URL の形式は次のとおりです<app>.<uuid>.private.<region>.codeengine.appdomain.cloud。 Code Engine コンソールから、アプリケーションの 「ドメイン・マッピング」 タブに移動して、アプリケーションとその使用可能な URL の可視性を表示します。 Code Engine CLIから、--option urlオプションを指定したibmcloud ce application getコマンドを使用できます。 myappの可視性がvisibility=privateに設定されているため、このコマンドで--option urlを指定すると、URL がプライベート・ネットワークに出力されます。

    ibmcloud ce application get -n myapp -output url
    

    出力例

    http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    
  7. これで、VSI でインスタンスを使用できるようになりました。 アプリケーションを呼び出します。 myappアプリケーションは、単純な Hello World アプリケーションです。 myappアプリを curl すると、Hello Worldが返されます。

    curl http://myapp.4svg40kna19.private.us-south.codeengine.appdomain.cloud
    

機能に安全にアクセスするための VPE の使用

始める前に、IBM Cloudアカウントを用意ししなければなりません。

選択したプロジェクトが function private visibility をサポートしている場合、プライベート・エンドポイントを使用して機能にアクセスするためにのみ VPE を使用できます。 プロジェクトが関数のプライベート可視性をサポートしているかどうかを確認するには、 ibmcloud ce project get コマンドを使用して、 Application Private Visibility Supported の出力が true に設定されていることを確認します。

  1. IBM Cloud® Virtual Private Cloudを作成します。 『概要』に記載されている説明に従ってください。

  2. VPC に少なくとも 1 つの VSI (仮想サーバー・インスタンス) があり、VSI に接続できることを確認します。 コンソール、CLI、および API を使用して、 IBM Cloud コンソールの IBM Cloud® Virtual Private Cloud ページから仮想サーバー・インスタンスを素早くプロビジョンできます。

    1. VSI にアクセスするためのSSH 鍵を作成します。
    2. UI を使用した仮想サーバー・インスタンスの作成
    3. 浮動 IP アドレスの予約これにより、インターネットからインスタンスにアクセスできるようになります。
    4. VSI への接続
  3. Code Engineプロジェクトから、アプリケーションが visibility=private設定で構成されていることを確認します。 プライベート・エンドポイントを使用したアプリケーションのデプロイを参照してください。

  4. IBM Cloud コンソールで、メニュー・アイコンをクリックし、VPC インフラストラクチャー-> ネットワーク-> 仮想プライベート・エンドポイント・ゲートウェイを選択します。 この 命令を実行して、プライベート・アプリケーションの可視性に使用する特定のプロジェクトの地域 Code Engine エンドポイント用の VPE を作成します。 このプロジェクトが表にリストされ、そのエンドポイントが*.<uuid>.private.<region>.codeengine.appdomain.cloudという形式で示されます。

  5. VPE を作成した後、新しい VPE とプライベート DNS (pDNS) がプロセスを完了して VPC の作業を開始するまでに数分かかる場合があります。 VPE の詳細ビューに設定された IP アドレスが表示されると、完了したことが確認できます。

  6. プライベート・ネットワークに公開されている Code Engine 関数の URL を取得します。 URL の形式は次のとおりです<function>.<uuid>.private.<region>.codeengine.appdomain.cloud。 Code Engine コンソールから、関数の 「ドメイン・マッピング」 タブに移動して、関数とその使用可能な URL の可視性を表示します。 Code Engine CLI から、 ibmcloud ce function get コマンドを使用できます。 myfunction の可視性が visibility=private に設定されているため、このコマンドはプライベート・ネットワークへの URL を表示します。

    ibmcloud ce function get -n myfunction
    

    出力例

    http://myfunction.1abc23def19.private.us-south.codeengine.appdomain.cloud
    

これで、VSI でインスタンスを使用できるようになりました。