
今回は SAP Private Link Service を用いて、顧客が管理するAWSアカウント上のVPC内に設置されたリソース、中でも今回は色々なユースケースが想定されるAmazon EC2への接続を行います。なお、SAP Private Link Service の概要やAmazon S3への接続については、前回のブログ記事をご参照ください。
SAP BTP上からAWSグローバルネットワーク (AWS PrivateLink) を経由してEC2にアクセスする場合、顧客管理のVPC側にVPCエンドポイントサービスを作成し、接続口を開く必要があります。ここをポイントする形でSAP Private Link Serviceインスタンスを作成することで、接続を確立することが可能です。
SAP Private Link Serviceインスタンスを作成すると、SAP BTP, Cloud Foundry環境上にエンドポイントが生成され、ここにリクエストを送信することで、AWSグローバルネットワーク (AWS PrivateLink) を経由してAWSリソース側へリクエストが転送されます。
AWS 側では、VPCエンドポイントサービスを作成する際にNetwork Load Balancerをアタッチすることが必要です。このNetwork Load BalancerのターゲットグループとしてAmazon EC2を登録します。これにより、VPCエンドポイントサービスを経由して受信したトラフィックをターゲットグループ内のEC2へ転送することが可能となります。
それでは次章から、このアーキテクチャを実装するために必要な設定項目についてみていきましょう。
トラフィックを最終的に受け付けるAmazon EC2上で、Webサーバーの機能を提供するNginxをセットアップします。参考文献に記載の 「(*1) Qiita.com - EC2にnginxをセットアップする」 を参照してください。デフォルトの状態で、ポート80にてHTTPのトラフィックを受け付け、「Welcome to nginx!」 というHTMLページを返す設定になっているはずですが、もしなっていない場合には適宜Nginxの設定ファイルに対して修正を行ってください。
本題のSPA Private Link Serviceのセットアップを行います。こちらでは主に参考文献に記載の「(*2) SAP Tutorials – Connect SAP Private Link Service to AWS Private Link Service」 にしたがって設定を行うことが可能です。
ただしこのチュートリアルに記載がない部分ですが、自分の場合はAWS側でVPCエンドポイントサービスを作成する際に「Allow Principals」に「*」を設定する必要がありました。VPCエンドポイントサービスに接続を行うことが許可される主体についての設定項目で、これに「*」を設定することで、SAPが管理するAWSアカウントから接続が行えるようになります。
SAP Private Link Serviceインスタンスを作成する際に要求される接続先AWSサービスに関するJSONデータには、以下のような情報を渡します。今回はNetwork Load Balancerのターゲットグループが1つのみなので「desiredAZs」 には 「1」 を指定しています。
{
"desiredAZs": 1,
"serviceName": "com.amazonaws.vpce.<リージョン>.<VPCエンドポイントサービスID> "
}
なお、本ブログに沿って実証を行う際には 「btp-privatelink-vpce」という名前でSAP Private Link Serviceのインスタンスを作成してください。このインスタンス名をキーにしてNodeアプリケーションからSAP Private Link Serviceへアクセスが行われます。
AWS側の設定項目については、以下のように設定を行いましょう。
まずVPCエンドポイントサービスにNetwork Load Balancer をアタッチします。
Network Load Balancerにはポート80でのTCPリスナーを設定し、宛先として次に記載のターゲットグループを指定します。
ターゲットグループには先述のAmazon EC2を登録しておきます。
Amazon EC2、Network Load BalancerにはVPCのCIDR範囲からのHTTPトラフィックを許可するセキュリティグループを設定します。
今回はSAP BTPからAmazon EC2へ接続を行うNodeアプリケーションを用意しました。参考文献に記載の 「(*3) GitHub – btp-privatelink-to-ec2」 のリポジトリからCloneを行なってください。その後、cf login コマンドを利用してCloud Foundry環境にログインしてSpaceを指定した状態で、以下のコマンドを実行してアプリケーションをデプロイします。
cf push
デプロイが完了すると、SAP BTP Cockpit上からアプリケーションのURLが入手できます。
アプリケーションのURLにアクセスすると、以下のようにNginxのWelcomeページが表示されるはずです。
Nginxのログを確認してみても、無事にaxiosによるHTTPトラフィックが到達していることが確認できます。
本ブログでは SAP Private Link Service を用いてAmazon EC2 上で稼働しているNginxに接続を行いました。SAP Private Link Serviceの真価を発揮する、VPC内のAZサービスへの接続をぜひお試しください。
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
13 | |
12 | |
9 | |
8 | |
7 | |
7 | |
7 | |
6 | |
5 | |
5 |