3
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 CloudAdvent Calendar 2024

Day 13

IBM Cloud:Private Code Engine へのアクセス・パターン

Last updated at Posted at 2024-12-13

はじめに

Code Engine では、アプリを公開する際の公開範囲として "パブリック" や "プライベート" を指定して公開することができます。プライベート公開アプリへのアクセスには CSE 経由、あるいは VPE (Virtual Private Endpoint) を定義し、VPC のサブネットから割り振られるアドレスをプロジェクトに割り当てることができます。
本記事では、アクセス元のロケーションに応じてどのようなアクセス・パターンがあるかを記載します。

環境

全体構成は以下です。VPC内からのアクセスとClient PCからのアクセスを実施します。
image.png

準備

Code Engineアプリの設定

今回はデフォルトで提供されている以下のコンテナ・イメージを利用しました。
icr.io/codeengine/helloworld

また、アプリの公開範囲を「プライベート」に設定しています。
image.png

VPN for VPCの設定

VPNのルーティング設定にて、CSEを利用できるよう追加しています。
image.png

VPNの作成は以下を参照ください。
Qiita:IBM Cloud:Client to Site型VPNでVPC環境に接続する (Secrets Manager)

VPEの設定

Code Engineのプロジェクトに対して、VPEを作成しています。
(サブネットからIPアドレスが払い出されているのが分かります)

下記記事にて作成方法を記載しています。参照ください。
IBM Cloud:Code EngineのVPE利用方法
image.png

アクセス・パターン

【アクセス不可】 パブリックネットワークからのアクセス

念のため、パブリックからアクセスできないことを確認します。

【パターン1】 VPC内のサーバーからのアクセス(VPE利用)

VPC内のサーバーからのアクセスの場合、同VPC内に作成されたVPEを利用することができます。

private domainの名前解決をしたところ、VPEのアドレスが返ってきました。

$ nslookup application-takason-private-domain.private.jp-tok.codeengine.appdomain.cloud
Server:		161.26.0.7
Address:	161.26.0.7#53

Non-authoritative answer:
Name:	application-takason-private-domain.private.jp-tok.codeengine.appdomain.cloud
Address: 10.50.6.7

アクセスできました。
image.png

Code EngineではFQDNを用いてアプリへのルーティングを行うため、VPEのアドレスではアクセスすることはできません。
NG例:https://10.50.6.7

【パターン2】 VPNを繋いだPCからのアクセス (CSE利用)

image.png

private domainの名前解決をしたところ、CSEのアドレスが返ってきました。

$ nslookup application-takason-private-domain.private.jp-tok.codeengine.appdomain.cloud
Server:		161.26.0.10
Address:	161.26.0.10#53

Non-authoritative answer:
application-takason-private-domain.private.jp-tok.codeengine.appdomain.cloud	canonical name = cse.s01.jp-tok.codeengine.appdomain.cloud.
Name:	cse.s01.jp-tok.codeengine.appdomain.cloud
Address: 166.9.44.33
Name:	cse.s01.jp-tok.codeengine.appdomain.cloud
Address: 166.9.40.80
Name:	cse.s01.jp-tok.codeengine.appdomain.cloud
Address: 166.9.42.87

ブラウザからのアクセスも確認できました。

つまりこのパターンでは、「パブリックに名前解決をして」「VPNサーバーを経由して」「IBM Cloud のprivate networkを通り」 Code Engineへアクセスしていると分かります。

【パターン3】 VPNを繋いだPCからのアクセス (VPE利用)

image.png

VPNを繋いだ状態でVPEを利用する場合、以下をローカルPCの /etc/hosts に追加する必要があります。

/etc/hosts (Client PC)
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting.  Do not change this entry.
##
10.50.6.7 application-takason.private.jp-tok.codeengine.appdomain.cloud <- !!追加!!
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1             localhost

この設定後にprivate domainでアクセスすると、無事ブラウザ表示されました。
image.png

まとめ

Code EngineにおけるVPE利用の鍵は、以下のようです。

  • VPEアドレスを名前解決できる
  • FQDNでアクセスする

Client PCからVPN経由でアクセスする場合、特別な要件がない限りCSE経由でアクセスする構成が簡単ですね。

3
0
1

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
3
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?