実際の呼び出しチェーンをシミュレートすることで、ご利用のローカル開発環境と Serverless App Engine (SAE) テスト環境間のトラフィックを自動的に隔離します。これにより、共同開発およびデバッグが加速されます。
前提条件
-
Cloud Toolkit は、IntelliJ IDEA にインストールおよび設定されています。
- アプリケーションが配置されている仮想プライベートクラウド (VPC) 内に、Secure Shell (SSH) 経由でアクセス可能な Elastic Compute Service (ECS) インスタンスを作成し、オンプレミスとクラウド上のアプリケーション間のチャネルを確立します。詳細については、「コンソールでの ECS インスタンスの作成と管理 (簡易版)」をご参照ください。重要
- ECS インスタンスとアプリケーションは同じ VPC 内に配置する必要があります。
- SSH チャネルにはパスワードログインが必要です。キーペアログインはサポートされていません。
- オペレーティングシステムにプロキシが設定されている場合、オンプレミスとクラウド上のアプリケーション間でチャネルを確立できない可能性があります。その場合は、プロキシを無効にしてから再度お試しください。
背景情報
以下の例では Spring Cloud マイクロサービスアプリケーションを使用します。ビジネスコードを一切変更せずに、トラフィック用の タグ を設定します。エンド・クラウド相互接続機能はこのタグに基づき、トラフィックを SAE テスト環境またはご利用のローカル開発環境にルーティングし、自動的にトラフィックを隔離します。
ステップ 1:アプリケーションを SAE にデプロイする
デモ アプリケーションをデプロイし、サービス名を spring-cloud-zuul、spring-cloud-a、spring-cloud-b、および spring-cloud-c に設定します。詳細な手順については、「アプリケーションのサービスレジストリを Nacos に変更する」をご参照ください。
イメージまたは JAR パッケージを使用してアプリケーションをデプロイし、購入済みのサービスレジストリを使用するために、起動パラメーターとして -Dnacos.use.endpoint.parsing.rule=false および -Dnacos.use.cloud.namespace.parsing=false を設定することを推奨します。
ステップ 2:エンド・クラウド相互接続を設定する
-
IntelliJ IDEA を起動します。
-
上部メニューバーで、 を選択します。
-
[設定] ダイアログボックスで、 を選択します。
-
[マイクロサービス] ページで、エンド・クラウド相互接続のパラメーターを設定します。
-
[プロキシ]:ECS インスタンスをプロキシとして使用するには、SAE アプリケーションと同じ VPC 内にパブリック IP を持つインスタンスを購入し、[プロキシ] ページで追加します。
-
[マイクロサービス]:[マイクロサービス] ページで、プロキシおよび MSE サービスレジストリを設定します。
-
[MSE]:[MSE] ページでパラメーターを設定します。
-
[ライセンスキー] と [アプリ名] を入力します。
SAE Webshell にログインし、次のコマンドを実行して [ライセンスキー] および [アプリ名] を取得します。Webshell へのアクセス方法については、「Webshell の表示」をご参照ください。
env | grep java出力例:
JAVA_TOOL_OPTIONS=-javaagent:/home/admin/.opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar -Darms.licenseKey=iioe7jcnuk@a0bcdaec24f**** -Darms.appId=8641dbc9-8663-4c47-95f7-683fa6dd**** -Darms.agent.env=Serverless -Darms.agent.args= -Dprofiler.micro.service.canary.enable=true -Dprofiler.micro.service.metadata.report.enable=true -Dprofiler.micro.service.http.server.enable=true -Dmsc.appName=cn-shenzhen-test-sc-gateway-****** -Dmsc.licenseKey=iioe7jcnuk@460d62050fa**** -
タグを設定します。[タグ] フィールドに local を入力します。
-
エージェントをローカルマシンにダウンロードします。
-
-
-
[適用] をクリックし、次に [OK] をクリックします。
-
ローカルアプリケーションを起動して接続を確認します。
[情報] ダイアログボックスにエンド・クラウド相互接続が正常に有効化された旨が表示された場合、この機能はアクティブです。
ステップ 3:トラフィックルーティングをテストする
クラウドネイティブゲートウェイへの HTTP リクエストには、リクエストヘッダーに x-mse-tag=[local] を追加します。これにより、トラフィックは指定された環境内で自動的に閉ループを形成します。
キー x-mse-tag は固定であり、その値は環境タグと一致する必要があります。
環境タグを設定後、curl を使用してリクエストを送信します。
-
メインパス:
curl http://47.106.XX.XX:8080/A/a -
結果:
A[10.0.1.160] -> B[10.0.1.161] -> C[10.0.1.162] -
ブランチパス:
curl http://47.106.XX.XX:8080/A/a \--header 'x-mse-tag: local' -
結果:
A[127.0.0.1] -> B[127.0.0.1] -> C[10.0.1.162]