2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

IBM Cloud:Code EngineのVPE利用方法

Last updated at Posted at 2022-04-13

概要

この度、Code EngineのVirtual Private Endpoint(VPE)機能が追加されました。
IBM Cloud Virtual Private Endpoint (VPE) for VPC を使用すると、サポートされている IBM Cloud サービスにプライベートネットワークからアクセスできます。具体的には、VPC のネットワークから、選択した IP アドレス (VPC のサブネットから割り振られるアドレス) を使用して接続することができます。

本記事では、Code EngineのVPE利用の設定方法を記載します。

  • VPE Gatewayの作成
  • Code Engineアプリのprivate公開

参考

本記事は以下のdocsに従っています。

設定VPE手順

本章では、ibmcloud CLIを用いてアプリケーションをVPE経由で公開する手順を記載します。

前提条件

  • 使用可能なVPCがある
  • 1つ以上の仮想サーバーを作成している
  • 浮動IPを予約し、ssh鍵を用いて仮想サーバーに接続できる
  • IBM CloudポータルにてUI・CLI・APIを使用できる
  • アプリをデプロイできるCode Engineのプロジェクトを作成している

作業手順

VPEのオーダー

初めにVPEをオーダーします。
左上のハンバーガーメニューより、VPC INfrastructure->Virtual private endpoint gatewaysを選択します。

作成をクリックし、各項目を入力します。
ここで、リージョンには指定したいVPCがある場所を選択します。

Cloud serviceCode Engineを選択し、Cloud service regionsにCode Engineプロジェクトを作成したリージョンを選択します。
Reserve IPにて、VPEに割り振るIPをVPCのSubnetから決定します。

アプリのprivate公開

1. ibmcloud CLIにてログインし、アプリを公開するCode Engineのプロジェクトを選択します。
$ ibmcloud login -apikey [APIキー] -g [リソースグループ] -r [Code Engineプロジェクトのリージョン]
$ ibmcloud ce project select -n [プロジェクト名]
2. コンテナ・レジストリーより、指定のアプリをprivate公開でにデプロイします。

今回はコンテナ・イメージにCode Engineのチュートリアルにあるhellowaroldイメージを指定しました。
アプリで使用するportはデフォルトで8080ですが、アプリがポート 8080 以外のポートで listen する場合は、--port xxxで指定します。

$ ibmcloud ce application create -n myapp-hello --image icr.io/codeengine/helloworld --visibility=private
Creating application 'myapp-hello'...
The Route is still working to reflect the latest desired specification.
Configuration 'myapp-hello' is waiting for a Revision to become ready.
Ingress has not yet been reconciled.
Waiting for load balancer to be ready.
Run 'ibmcloud ce application get -n myapp-hello' to check the application status.
OK

https://myapp-hello.xxxxxxxxxxx.private.jp-tok.codeengine.appdomain.cloud

作成されたURLにprivateが含まれていればIBM Cloud外からのアクセスはできません。

private公開になっているか確認

同VPC内のWindowsサーバーのブラウザで確認してみます。

以下のようにアクセスできました。

自PC(IBM Cloud外)からアクセスしてみます。

アクセスに失敗したので、private公開になっていることが確認できました。

curlで確認します。

VPEを作成したVPCにある仮想サーバーからcurlしてみます。
以下のように応答が返ってきました。

VPC内の仮想サーバー
root@takamura-scc-target-ubuntu2004:~# curl https://myapp-hello.xxxxxxxxx.private.jp-tok.codeengine.appdomain.cloud
Hello World from:
. ___  __  ____  ____
./ __)/  \(    \(  __)
( (__(  O )) D ( ) _)
.\___)\__/(____/(____)
.____  __ _   ___  __  __ _  ____
(  __)(  ( \ / __)(  )(  ( \(  __)
.) _) /    /( (_ \ )( /    / ) _)
(____)\_)__) \___/(__)\_)__)(____)

自PCからも試してみます。
以下のようにcurlに失敗しました。

自PC(IBM Cloud外)
$ curl https://myapp-hello.xxxxxxxxx.private.jp-tok.codeengine.appdomain.cloud
curl: (6) Could not resolve host: myapp-hello-xxxxxxxxx.private.jp-tok.codeengine.appdomain.cloud

注意

VPE suport前に作成されたプロジェクトではVPEを利用できません。VPEが必要な場合は、Caseにて既存プロジェクトをVPE対応に変更することが可能です。

参考:IBM Cloud: Caseの起票方法と注意点

GUIで確認する方法

新規application作成画面にて、以下のような注意書きが表示される場合はサポートされていません。

CLIで確認する方法

以下のコマンドを実行し、Application Private Visibility SupportedFalseになっている場合、VPEはサポートされていませんのでご注意ください。

$ 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:
...
    
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?