Virtual Private Endpoint経由でICOSを使ってみた


Virtual Private Endpoint(VPE)とは

VPEは、自分のVPCのサブネット内のIPを指定してIBM Cloudのサービスにアクセスできる機能です。あたかも自分のVPCのサブネットにIBM Cloudのサービスがあるかのように使えます。
まずはこちらのDocsと記事を読むと理解が早いと思います。
https://cloud.ibm.com/docs/vpc?topic=vpc-about-vpe
https://qiita.com/testnin2/items/4663169274975bdb7a9e

VPEは、対応サービスが徐々に増えてきており、ICOSも使えるようになったので試してみました。
対応サービスのリストは下記にあります。
https://cloud.ibm.com/docs/vpc?topic=vpc-vpe-supported-services

VPCを作成

VPCはあらかじめ定義しておきます。今回は、東京リージョンの3つのAvailability Zoneで構成し、各ゾーンに1つずつサブネットを作成しておきます。10.244.0.0/24, 10.244.64.0/24, 10.244.128.0/24のサブネットを作りました。

VPE画面にアクセス

左上のメニューボタンから、VPCインフラストラクチャ > エンドポイント・ゲートウェイを選択します。

作成ボタンを押します。

今回は、東京リージョンのVPCに、東京リージョンのICOSへのエンドポイント・ゲートウェイを作成します。

エンドポイント・ゲートウェイが作られたら、東京リージョンの各ゾーンに1つずつVPE用のIPを予約します。

VPC内の仮想サーバーから動作確認

それぞれのサブネットに1台ずつ仮想サーバーを作成しました。

通常、s3.direct.tok.ap.cloud-object-storage.appdomain.cloudは、161.26.x.xに名前解決されます。今回、VPEを使って、10.244.x.xがICOSのエンドポイントとして動作するよう設定した事により、ゾーン1内からの名前解決要求については、自動的にIBM Cloud内のDNSで、s3.direct.tok.ap.cloud-object-storage.appdomain.cloudが10.244.0.6に名前解決されるようになっていました。
(10.244.0.6を使うために、IPアドレスの直指定やhostsファイルでの解決は不要です。)

# nslookup s3.direct.tok.ap.cloud-object-storage.appdomain.cloud
Server:     161.26.0.7
Address:    161.26.0.7#53

Non-authoritative answer:
Name:   s3.direct.tok.ap.cloud-object-storage.appdomain.cloud
Address: 10.244.0.6
# 

上記の名前解決を使い、awscliで、bucket一覧を取得できました。
(credentialにはICOSのHMAC形式のaccess_key_idとsecret_access_keyを指定しています)

# cat ~/.aws/config
[default]
region = jp-tok-smart
output = json
#
# aws --endpoint-url https://s3.direct.tok.ap.cloud-object-storage.appdomain.cloud s3 ls
2020-10-21 09:56:51 bucket1021
2020-10-28 01:31:47 bucket1028
# 

zone2のサーバー(10.244.64.0/24)では、s3.direct.tok.ap.cloud-object-storage.appdomain.cloudはゾーン2のVPEのIPに名前解決されます。

# nslookup s3.direct.tok.ap.cloud-object-storage.appdomain.cloud
Server:     161.26.0.7
Address:    161.26.0.7#53

Non-authoritative answer:
Name:   s3.direct.tok.ap.cloud-object-storage.appdomain.cloud
Address: 10.244.64.4
#

zone3のサーバー(10.244.128.0/24)では、s3.direct.tok.ap.cloud-object-storage.appdomain.cloudはゾーン3のVPEのIPに名前解決されます。

# nslookup s3.direct.tok.ap.cloud-object-storage.appdomain.cloud
Server:     161.26.0.7
Address:    161.26.0.7#53

Non-authoritative answer:
Name:   s3.direct.tok.ap.cloud-object-storage.appdomain.cloud
Address: 10.244.128.5

# 

以上で、VPEを使って、自分のサブネット内のIPを指定し、ICOSが使えるようになりました。