アプリケーション開発では、Alibaba Cloud Toolkit プラグインを使用して、ローカルアプリケーションが Serverless App Engine (SAE) にデプロイされたアプリケーションと通信できるように設定できます。この設定は「オンプレミスからクラウドへの相互接続」と呼ばれ、開発効率を向上させます。このトピックでは、Alibaba Cloud Toolkit を使用してこの接続をセットアップする前提条件と手順について説明します。
前提条件
-
IntelliJ IDEA 2018.3 以降を使用していることを確認してください。
-
Alibaba Cloud Toolkit 2020.9.1 以降では、プロジェクトおよびモジュールレベルでオンプレミスからクラウドへの相互接続をきめ細かい設定ができます。このきめ細かい設定機能を使用するには、Alibaba Cloud Toolkit をバージョン 2020.9.1 以降にアップグレードしてください。
説明Alibaba Cloud Toolkit がバージョン 2020.9.1 であるにもかかわらず、きめ細かい設定オプションが利用できない場合は、プラグインをアンインストールしてから再インストールしてください。
-
アプリケーションが存在する Virtual Private Cloud (VPC) 内に、SSH 経由でアクセス可能な Elastic Compute Service (ECS) インスタンスを作成しておく必要があります。この ECS インスタンスで相互接続チャネルを確立します。詳細については、「コンソールを使用した ECS インスタンスの作成 (クイックスタート)」をご参照ください。
重要-
ECS インスタンスとアプリケーションは、同じ VPC 内にある必要があります。
-
SSH 経由でログインするにはパスワードを使用する必要があります。キーペア認証はサポートされていません。
-
オペレーティングシステムにプロキシが設定されている場合、相互接続チャネルへの接続が失敗することがあります。プロキシを無効にしてから、もう一度お試しください。
-
制限事項
オンプレミスからクラウドへの相互接続機能は、Java アプリケーションに対応しています。異なる Java マイクロサービスフレームワークには、以下の制限事項が適用されます。
|
マイクロサービスフレームワーク |
制限事項 |
|
Spring Cloud |
構成管理に Nacos を使用する場合、Spring Cloud のバージョンが Edgware 以降であることを確認してください。 |
|
Dubbo |
|
|
HSF |
なし |
Limitations
The interconnection between on-premises and cloud applications feature supports Java applications. The following limitations apply to different Java microservices frameworks:
|
Microservices framework |
Limitations |
|
Spring Cloud |
If you use Nacos for configuration management, make sure that your Spring Cloud version is Edgware or later. |
|
Dubbo |
|
|
HSF |
None |
ステップ 1: Alibaba Cloud Toolkit のインストール
-
IntelliJ IDEA を起動します。
-
プラグインをインストールします。
-
macOS の場合:メインメニューから を選択します。[Preferences] ダイアログボックスの左側メニューで、[Plugins] をクリックします。Alibaba Cloud Toolkit を検索し、[Install] をクリックします。
-
Windows の場合:メインメニューから を選択します。[Settings] ダイアログボックスの左側メニューで、[Plugins] をクリックします。Alibaba Cloud Toolkit を検索し、[Install] をクリックします。
-
-
プラグインのインストール後、IntelliJ IDEA を再起動します。Alibaba Cloud Toolkit アイコン (
) がツールバーに表示されます。
ステップ 2: Alibaba Cloud Toolkit アカウントの設定
Alibaba Cloud Toolkit のインストール後、AccessKey ID と AccessKey Secret を入力してアカウントを設定する必要があります。
-
IntelliJ IDEA を起動します。
-
メインメニューから、 を選択します。
-
[Settings] ダイアログボックスで、 を選択します。
-
[Accounts] ページで、AccessKey ID と AccessKey Secret を入力し、[OK] をクリックします。
RAM ユーザーの AccessKey ID と AccessKey Secret を使用する場合、RAM ユーザーが少なくともアプリケーションのデプロイ権限を持っていることを確認してください。詳細については、「RAM ユーザーへの権限付与」をご参照ください。
Alibaba Cloud アカウントに関する以下の点にご注意ください:
-
Alibaba Cloud アカウントをお持ちの場合は、[Accounts] ページで [Get existing AK/SK] をクリックします。Alibaba Cloud のサインインページにリダイレクトされます。サインイン後、セキュリティ情報管理ページに移動し、そこで AccessKey ID と AccessKey Secret を取得できます。
-
Alibaba Cloud アカウントをお持ちでない場合は、[Accounts] ページで [Sign up] をクリックして登録してください。登録後、上記の手順に従って AccessKey ID と AccessKey Secret を取得してください。
-
ステップ 3: オンプレミスからクラウドへの相互接続の設定
-
メインメニューから、 を選択します。
-
[Settings] ダイアログボックスで、 を選択します。
-
[Microservice] ページで、[Interconnection Between On-premises and Cloud Applications] を選択し、パラメーターを設定してから [Apply] をクリックします。
次の表で各パラメーターについて説明します。
パラメーター
説明
Product
[Serverless App Engine (SAE)] を選択します。
Environment for Interconnection Between On-premises and Cloud Applications
アプリケーションがデプロイされているリージョンと名前空間を指定します。
Spring Cloud Service Port
Spring Cloud アプリケーションを使用する場合、[Spring Cloud Service Port] セクションにアプリケーションのサービスポートを追加します。他の種類のアプリケーションでは、このパラメーターをスキップできます。
Jump Server Settings
-
Jump Server IP:ECS インスタンスのパブリック IP アドレスを入力します。
-
Account:相互接続チャネルを確立するために使用するユーザー名を入力します。
-
Password:相互接続チャネルを確立するために使用するパスワードを入力します。
説明相互接続チャネルに使用する ECS インスタンスのユーザー名とパスワードを入力できます。または、新しいユーザー名とパスワードを入力し、[Initialize Account...] をクリックしてアカウントを初期化することもできます。
Initialize Account...
-
ECS インスタンスのルートユーザー名とパスワードを入力した場合、設定にはルートアカウントが使用されます。操作が成功すると、"The configuration was added successfully" というメッセージが表示されます。
-
接続に新規または非ルートアカウントを使用する場合、このアカウントのプロキシを設定するにはルート権限が必要です。[Add SSH Rule] ダイアログボックスで、ルートユーザーの Password を入力し、[Add] をクリックします。
重要-
ECS インスタンスのユーザー名とパスワードは、ネットワークプロキシの作成にのみ使用され、他の目的には使用されません。
-
接続には新規または非ルートアカウントを使用することを推奨します。これにより、同じく相互接続を使用する必要がある他のチームメンバーとこのアカウントを共有でき、ルート認証情報の漏洩を防ぐのに役立ちます。
-
-
ステップ 4: 相互接続のためのローカルアプリケーションの起動
ローカルアプリケーションを起動します。接続がアクティブな場合、オンプレミスとクラウドアプリケーション間の相互接続が有効になったことを示すメッセージが表示されます。
アプリケーションが起動すると、etrans プロセスも起動します。
@SpringBootApplication
@EnableDiscoveryClient
@EnableFeignClients
public class ConsumerApplication {
@LoadBalanced
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
public static void main(String[] args) {
SpringApplication.run(ConsumerApplication.class, args);
}
}
相互接続プロセス中に問題が発生した場合は、[Quick Diagnostics] をクリックして、「etrans channel startup errors」や「service connection failures」などの問題のトラブルシューティングを行ってください。
詳細情報
-
Alibaba Cloud Toolkit との相互接続を実装する際に問題が発生した場合は、「相互接続の問題のトラブルシューティング」をご参照ください。
-
IntelliJ IDEA プラグインを使用してアプリケーションを SAE に迅速にデプロイする方法については、「Alibaba Cloud Toolkit for IntelliJ IDEA を使用したアプリケーションのデプロイ」をご参照ください。