Code Engine での仮想プライベート・エンドポイントの使用
すべての IBM Cloud® Code Engine プロジェクトは、仮想プライベート・クラウド (VPC) 用のIBM Cloud® 仮想プライベート・エンドポイント (VPE) との統合を提供します。 このサポートにより、VPC 内のサブネットから割り振られた、選択した IP アドレスを使用して、VPC ネットワークから Code Engine アプリケーションまたは機能に接続することができます。
Code Engineでは、以下のタイプの VPE を使用できます。
- プロジェクト・リソースを管理するための仮想プライベート・エンドポイント。 地域ごとに 1 つの静的 VPE があります。
- アプリケーションにアクセスするための仮想プライベート・エンドポイント。 Code Engineプロジェクトごとに 1 つの VPE があります。 プロジェクト内のすべてのアプリには、この VPE を使用してアクセスできます。
プライベート・エンドポイントは、 IBM Cloud プライベート・ネットワーク上のプロジェクトのリソース、アプリケーション、または機能への接続を提供します。 仮想プライベート・エンドポイントを介して接続すると、すべてのトラフィックは Code Engine アプリケーション専用のハードウェアにルーティングされ、IBM Cloudプライベート・ネットワーク上に残ります。 このエンドポイントとの間のすべてのトラフィックについて、トラフィックが IBM Cloudに留まるかぎり追加料金は発生しません。
Code Engineプロジェクトは、パブリック・エンドポイントと仮想プライベート・エンドポイントの両方を使用して自動的に構成されます。
Code Engine アプリケーションの 可視性 を制御し、アプリケーションまたは関数をパブリック・エンドポイントまたはプライベート・エンドポイントに公開するかどうかを指定できます。 プライベート・ネットワーク用に構成されたアプリケーションまたは機能には、VPE を介して、または他の Code Engine アプリケーションまたは機能を介してアクセスできます。 VPE を介してアクセスされるアプリケーションまたは機能は、 IBM ネットワークを離れず、 IBM Cloud ネットワーク内にとどまりません。
プロジェクト・リソースを安全に管理するための VPE の使用
始める前に、IBM Cloudアカウントを用意ししなければなりません。
-
IBM Cloud® Virtual Private Cloudを作成します。 『概要』に記載されている説明に従ってください。
-
VPC に少なくとも 1 つの VSI (仮想サーバー・インスタンス) があり、VSI に接続できることを確認します。 VPC コンソール、CLI、および API を使用して、 IBM Cloud コンソールの IBM Cloud® Virtual Private Cloud ページから VSI をプロビジョンできます。
- VSI にアクセスするためのSSH 鍵を作成します。
- コンソールを使用して仮想サーバー・インスタンスを作成します。
- 浮動 IP アドレスの予約これにより、インターネットからインスタンスにアクセスできるようになります。
- VSI への接続。
-
IBM Cloud コンソールで、メニュー・アイコンをクリックし、VPC インフラストラクチャー-> ネットワーク-> 仮想プライベート・エンドポイント・ゲートウェイを選択します。 この 命令を実行して、地域の Code Engine エンドポイント
api.<region>.codeengine.cloud.ibm.com
用の VPE を作成します。 -
VPE を作成した後、新しい VPE とプライベート DNS (pDNS) がプロセスを完了して VPC の作業を開始するまでに数分かかる場合があります。 VPE の詳細ビューに設定された IP アドレスが表示されると、完了したことが確認できます。
-
VSI に SSH で接続し、
root@
を使用します。 例えば、ssh root@<VSI_floating_IP_address>
です。 -
VSI 内からCode Engineリソースにアクセスするには、Code EngineCLI 環境をセットアップします。 IBM CloudCLI が
private.cloud.ibm.com
に接続されていることを確認します。 -
プライベート・エンドポイントを使用する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プロジェクトは--endpoint
がprivate
であるかのように動作します。 IBM Cloud CLI がcloud.ibm.com
に接続されている場合、Code Engineプロジェクトは--endpoint
がpublic
であるかのように動作します。 -
新規プロジェクトを作成しておらず、既存のプロジェクトを選択した場合に、アプリまたは機能をプライベート・エンドポイントにのみ表示するには、既存のプロジェクトがプライベート可視性を持つアプリケーションをサポートしていることを確認します。
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
-
プライベート・エンドポイントにのみ表示されるアプリケーションを作成します。
--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
に設定されていることを確認します。
-
IBM Cloud® Virtual Private Cloudを作成します。 『概要』に記載されている説明に従ってください。
-
VPC に少なくとも 1 つの VSI (仮想サーバー・インスタンス) があり、VSI に接続できることを確認します。 コンソール、CLI、および API を使用して、 IBM Cloud コンソールの IBM Cloud® Virtual Private Cloud ページから仮想サーバー・インスタンスを素早くプロビジョンできます。
- VSI にアクセスするためのSSH 鍵を作成します。
- UI を使用した仮想サーバー・インスタンスの作成。
- 浮動 IP アドレスの予約これにより、インターネットからインスタンスにアクセスできるようになります。
- VSI への接続。
-
Code Engineプロジェクトから、アプリケーションが
visibility=private
設定で構成されていることを確認します。 プライベート・エンドポイントを使用したアプリケーションのデプロイを参照してください。 -
IBM Cloud コンソールで、メニュー・アイコンをクリックし、VPC インフラストラクチャー-> ネットワーク-> 仮想プライベート・エンドポイント・ゲートウェイを選択します。 この 命令を実行して、プライベート・アプリケーションの可視性に使用する特定のプロジェクトの地域 Code Engine エンドポイント用の VPE を作成します。 このプロジェクトが表にリストされ、そのエンドポイントが
*.<uuid>.private.<region>.codeengine.appdomain.cloud
という形式で示されます。 -
VPE を作成した後、新しい VPE とプライベート DNS (pDNS) がプロセスを完了して VPC の作業を開始するまでに数分かかる場合があります。 VPE の詳細ビューに設定された IP アドレスが表示されると、完了したことが確認できます。
-
プライベート・ネットワークに公開されている 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
-
これで、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
に設定されていることを確認します。
-
IBM Cloud® Virtual Private Cloudを作成します。 『概要』に記載されている説明に従ってください。
-
VPC に少なくとも 1 つの VSI (仮想サーバー・インスタンス) があり、VSI に接続できることを確認します。 コンソール、CLI、および API を使用して、 IBM Cloud コンソールの IBM Cloud® Virtual Private Cloud ページから仮想サーバー・インスタンスを素早くプロビジョンできます。
- VSI にアクセスするためのSSH 鍵を作成します。
- UI を使用した仮想サーバー・インスタンスの作成。
- 浮動 IP アドレスの予約これにより、インターネットからインスタンスにアクセスできるようになります。
- VSI への接続。
-
Code Engineプロジェクトから、アプリケーションが
visibility=private
設定で構成されていることを確認します。 プライベート・エンドポイントを使用したアプリケーションのデプロイを参照してください。 -
IBM Cloud コンソールで、メニュー・アイコンをクリックし、VPC インフラストラクチャー-> ネットワーク-> 仮想プライベート・エンドポイント・ゲートウェイを選択します。 この 命令を実行して、プライベート・アプリケーションの可視性に使用する特定のプロジェクトの地域 Code Engine エンドポイント用の VPE を作成します。 このプロジェクトが表にリストされ、そのエンドポイントが
*.<uuid>.private.<region>.codeengine.appdomain.cloud
という形式で示されます。 -
VPE を作成した後、新しい VPE とプライベート DNS (pDNS) がプロセスを完了して VPC の作業を開始するまでに数分かかる場合があります。 VPE の詳細ビューに設定された IP アドレスが表示されると、完了したことが確認できます。
-
プライベート・ネットワークに公開されている 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 でインスタンスを使用できるようになりました。