仮想プライベートクラウド (VPC) 内のサーバーロードバランサー (SLB) インスタンスが、別のアカウントが所有するVPCにサービスを提供できるようにするには、PrivateLinkを使用して2つのVPC間のネットワーク接続を確立できます。このトピックでは、PrivateLinkを使用して、別のアカウントが所有するVPC内のクラシックロードバランサー (CLB) インスタンスにアクセスする方法について説明します。
背景情報
VPCは、クラウド内で互いに隔離されたプライベートネットワークです。PrivateLinkを使用すると、VPCとAlibaba Cloudサービスの間に安全で安定したプライベート接続を確立できます。これにより、ネットワークアーキテクチャが簡素化され、インターネット経由のセキュリティリスクが防止されます。
PrivateLink接続を確立するには、エンドポイントサービスとエンドポイントを作成する必要があります。
エンドポイントサービス
エンドポイントサービスには、PrivateLink接続を介して別のVPCのエンドポイントを使用してアクセスできます。エンドポイントサービスは、サービスプロバイダーによって作成および管理されます。
エンドポイント
エンドポイントは、エンドポイントサービスに関連付けて、VPCが外部サービスにアクセスできるようにするPrivateLink接続を確立できます。エンドポイントは、サービスコンシューマーによって作成および管理されます。
エンティティ | 説明 |
サービスプロバイダー | エンドポイントサービスを作成および管理します。 |
サービスコンシューマー | エンドポイントを作成および管理します。 |
シナリオ
次のシナリオを例として使用します。企業Aは、Alibaba Cloudアカウントを使用して、ドイツ (フランクフルト) リージョンに2つのVPCを作成します。VPC 1とVPC 2です。VPC 1はアカウントAを使用して作成され、VPC 2はアカウントBを使用して作成されます。2つのElastic Compute Service (ECS) インスタンスがVPC 2に作成されます。ECS 2とECS 3です。アプリケーションサービスは、VPC 2のECSインスタンスにデプロイされます。ビジネスの成長に伴い、VPC 1はVPC 2のサービスにアクセスする必要があります。インターネット経由のセキュリティリスクを防ぐために、2つのVPC間にプライベート接続を確立する必要があります。
このシナリオでは、VPC 2でPrivateLinkをサポートするCLBインスタンスを作成し、ECSインスタンスをCLBインスタンスのバックエンドサーバーとして指定できます。その結果、CLBインスタンスはクライアントトラフィックを受信し、リスナーの転送ルールに基づいて対応するECSインスタンスにトラフィックを分散できます。エンドポイントサービスを作成し、CLBインスタンスをエンドポイントサービスのサービスリソースとして指定してから、アカウントAのIDをエンドポイントサービスのホワイトリストに追加します。次に、VPC 1にエンドポイントを作成します。エンドポイントが作成され、VPC 2のエンドポイントサービスに想定どおりに接続されると、VPC 1はVPC 2のサービスにアクセスできます。
制限事項
VPC 2のサービスリソースとして機能するCLBインスタンスがPrivateLinkをサポートするには、従量課金制の内部向けCLBインスタンスである必要があります。
エンドポイントサービスを作成する際は、PrivateLinkとCLBインスタンスをサポートするリージョンを選択する必要があります。PrivateLinkとCLBインスタンスをサポートするリージョンの詳細については、「PrivateLinkをサポートするリージョンとゾーン」および「CLBが利用可能なリージョン」を参照してください。
エンドポイントとエンドポイントサービスは、CLBインスタンスがデプロイされているのと同じゾーンにデプロイする必要があります。
前提条件
PrivateLinkを初めて使用する場合は、「PrivateLinkのアクティベーションページ」にアクセスして、指示に従ってPrivateLinkをアクティベートしてください。
VPC 1はアカウントAを使用して作成され、VPC 2はドイツ (フランクフルト) リージョンでアカウントBを使用して作成されます。各VPCにはvSwitchが作成されます。詳細については、「IPv4 CIDRブロックを持つVPCを作成する」トピックの「手順1: VPCとvSwitchを作成する」セクションを参照してください。
ECS 1は、アカウントAが所有するVPC 1に作成されます。ECS 2とECS 3は、アカウントBが所有するVPC 2に作成されます。異なるNGINXサービスがECS 2とECS 3にデプロイされます。
ECSインスタンスの作成方法の詳細については、「カスタム起動タブでインスタンスを作成する」を参照してください。
次のコードブロックは、ECS 2とECS 3にアプリケーションをデプロイする方法を示しています。
VPC 1にセキュリティグループが作成されます。ビジネスとセキュリティの要件に基づいて、セキュリティグルーパールールを設定できます。
詳細については、「セキュリティグループを作成する」を参照してください。
説明VPC 2のECS 2とECS 3は、ECSインスタンスの作成時にシステムによって作成されるデフォルトのセキュリティグループに属しています。
次の表は、この例でのVPCのネットワークの計画方法を示しています。VPCのCIDRブロックが互いに重複していても、サービスに悪影響はありません。
項目 | VPC 1 | VPC 2 |
リージョン | ドイツ (フランクフルト) | ドイツ (フランクフルト) |
CIDRブロック |
|
|
vSwitchゾーン | ゾーンB | ゾーンB |
ECSインスタンスのIPアドレス | ECS 1: 10.10.2.1 |
|
手順
手順1: PrivateLinkをサポートするCLBインスタンスを作成する
アカウントBでCLBコンソールにログインします。
インスタンスページで、CLBの作成をクリックします。
CLB (従量課金制) 国際サイト購入ページで、次の表に記載されているCLBインスタンスのパラメーターを設定し、今すぐ購入をクリックして支払いを完了します。
パラメーター
説明
リージョン
CLBインスタンスを作成するリージョンを選択します。
この例では、ドイツ (フランクフルト)
説明CLBインスタンスと、バックエンドサーバーとして指定するECSインスタンスが同じリージョンに属していることを確認してください。
ゾーンタイプ
CLBインスタンスを1つのゾーンにデプロイするか、複数のゾーンにデプロイするかを指定します。デフォルトでは、マルチゾーンが選択されています。
プライマリゾーン
CLBインスタンスがネットワークトラフィックを受信するプライマリゾーンを選択します。この例では、ヨーロッパ セントラル 1 ゾーンBを選択します。
バックアップゾーン
CLBインスタンスのセカンダリゾーンを選択します。セカンダリゾーンは、プライマリゾーンが使用できない場合にのみネットワークトラフィックを受信します。
この例では、ヨーロッパ セントラル 1 ゾーンAを選択します。
インスタンス名
CLBインスタンスの名前を入力します。
インスタンスタイプ
CLBインスタンスタイプを選択します。ビジネス要件に基づいて、インターネット向けCLBインスタンスまたは内部向けCLBインスタンスを作成できます。システムは、指定されたインスタンスタイプに基づいて、CLBインスタンスにパブリックIPアドレスまたはプライベートIPアドレスを割り当てます。
この例では、イントラネットを選択します。
インスタンス課金方法
CLBインスタンスの課金方法を選択します。有効な値:
仕様別課金
CLCU別課金
この例では、仕様別課金を選択します。
仕様
CLBインスタンスの仕様を選択します。異なる仕様のCLBインスタンスは、異なるパフォーマンスを提供します。この例では、小型I (slb.s1.small)を選択します。
ネットワークタイプ
CLBインスタンスのネットワークタイプを選択します。
この例では、VPCを選択します。
IPバージョン
CLBインスタンスのIPバージョンを選択します。この例では、IPv4を選択します。
機能
CLBインスタンスの機能タイプを選択します。デフォルトでは、標準が選択されています。
VPCId
VPC 2を選択します。
VswitchId
VPC 2のvSwitchを選択します。
インターネットデータ転送料金
インターネットトラフィックの計測方法を選択します。インターネット向けCLBインスタンスは、次の計測方法をサポートしています。
トラフィック別: データ転送量別課金計測方法
帯域幅別: 帯域幅別課金計測方法
デフォルトでは、トラフィック別が選択されています。
説明インターネット向けCLBインスタンスは、データ転送量別課金計測方法を使用します。この例では、作成するCLBインスタンスは内部向けであり、トラフィック料金は発生しません。
リソースグループ
CLBインスタンスのリソースグループを選択します。この例では、デフォルトリソースグループを選択します。
数量
購入するCLBインスタンスの数を指定します。この例では、1を指定します。
手順2: CLBインスタンスを設定する
CLBインスタンスが作成された後、CLBインスタンスに少なくとも1つのリスナーと1つのバックエンドサーバーグループを追加する必要があります。これにより、ネットワークトラフィックをCLBインスタンスによって転送できます。
アカウントBでCLBコンソールにログインします。
インスタンスページで、ロードバランサー(CLB)手順1で作成したリスナーを構成するアクションインスタンスを見つけ、列のをクリックします。
プロトコルとリスナーウィザードページで、次のパラメーターを設定し、その他のパラメーターにはデフォルト値を使用し、次へをクリックします。
リスナープロトコルの選択: この例では、TCPを選択します。
リスナーポート: CLBインスタンスがリクエストを受信し、バックエンドサーバーに転送するために使用するポートを指定します。
この例では、80を指定します。
バックエンドサーバーウィザードページで、デフォルトサーバーグループを選択し、さらに追加をクリックしてバックエンドサーバーを追加します。
サーバーパネルで、作成したECS 2とECS 3を選択し、次へをクリックします。
バックエンドサーバーの重みを指定し、追加をクリックします。
重みが大きいバックエンドサーバーは、より多くのリクエストを受信します。この例では、デフォルト値100を使用します。
デフォルトサーバーグループタブで、バックエンドポートを指定し、次へをクリックします。この例では、80を指定します。
CLBインスタンスの複数のバックエンドサーバーに同じポートを指定できます。
ヘルスチェックウィザードページで、ヘルスチェック機能を設定し、次へをクリックします。この例では、パラメーターのデフォルト値を使用します。
確認ウィザードページで、設定を確認し、送信をクリックします。
OKをクリックして、インスタンスページに戻ります。
ECSインスタンスのヘルスチェックステータスが正常の場合、ECSインスタンスはCLBインスタンスによって転送されたリクエストを処理できます。
手順3: エンドポイントサービスを作成する
VPCにエンドポイントサービスを作成すると、別のVPCにデプロイされたエンドポイントを使用して、PrivateLink経由でエンドポイントサービスにアクセスできます。
アカウントBでエンドポイントサービスコンソールにログインします。
上部のナビゲーションバーで、エンドポイントサービスを作成するリージョンを選択します。この例では、ドイツ (フランクフルト)を選択します。
エンドポイントサービスページで、エンドポイントサービスの作成をクリックします。
エンドポイントサービスの作成ページで、次の表に示すパラメーターを設定し、OKをクリックします。
次の表は、このトピックに関連するパラメーターを示しています。その他のパラメーターの設定方法の詳細については、「エンドポイントサービスの作成と管理」トピックの「エンドポイントサービスを作成する」セクションを参照してください。
パラメーター
説明
サービスリソースの選択
ネットワークトラフィックを受信するゾーンを選択します。次に、エンドポイントサービスに関連付けるCLBインスタンスを選択します。
この例では、フランクフルト ゾーンBと、手順1で作成したCLBインスタンスを選択します。
エンドポイント接続を自動的に受け入れる
エンドポイントサービスがエンドポイントからの接続リクエストを自動的に受け入れるかどうかを指定します。この例では、いいえを選択します。
はい: このオプションを選択すると、エンドポイントサービスはエンドポイントからの接続リクエストを自動的に受け入れます。その結果、エンドポイントを使用してエンドポイントサービスのサービスリソースにアクセスできます。
いいえ: このオプションを選択すると、エンドポイントサービスのエンドポイント接続はデフォルトで切断状態になります。この場合、エンドポイントサービスへの接続リクエストは、サービスプロバイダーが手動で受け入れるか拒否する必要があります。
サービスプロバイダーがエンドポイントからの接続リクエストを受け入れると、このエンドポイントサービスのサービスリソースにエンドポイントを使用してアクセスできます。
サービスプロバイダーがエンドポイントからの接続リクエストを拒否すると、このエンドポイントサービスのサービスリソースにエンドポイントを使用してアクセスできません。
ゾーンアフィニティを有効にする
この例では、はいを選択します。これは、エンドポイントサービスに関連付けられているすべてのエンドポイントの中で、最も近いエンドポイントのドメイン名が最初に解決されることを示します。
エンドポイントサービスが作成された後、エンドポイントサービスのインスタンスIDと名前を表示できます。
手順4: エンドポイントサービスのホワイトリストを追加する
エンドポイントサービスのホワイトリストを追加できます。アカウントのIDがホワイトリストに含まれている場合、アカウントを使用してエンドポイントを作成し、エンドポイントをエンドポイントサービスに接続できます。
アカウントBを使用して作成したエンドポイントサービスのホワイトリストにアカウントAのIDを追加するには、次の手順を実行します。
アカウントBでエンドポイントサービスコンソールにログインします。
左側のナビゲーションペインで、エンドポイントサービスをクリックします。
エンドポイントサービスページで、手順3で作成したエンドポイントサービスを見つけ、そのIDをクリックします。
サービスホワイトリストタブをクリックし、ホワイトリストに追加をクリックします。
ホワイトリストに追加ダイアログボックスで、ホワイトリストに追加するアカウントIDを入力し、OKをクリックします。
この例では、アカウントAのIDを入力します。次の図は例を示しています。
手順5: エンドポイントを作成する
エンドポイントは、エンドポイントサービスに関連付けて、VPCが外部サービスにアクセスできるようにするPrivateLink接続を確立できます。
アカウントAでエンドポイントコンソールにログインします。
上部のナビゲーションバーで、エンドポイントを作成するリージョンを選択します。この例では、ドイツ (フランクフルト)を選択します。
エンドポイントページで、エンドポイントの作成をクリックします。
エンドポイントの作成ページで、次の表に示すパラメーターを設定し、OKをクリックします。
次の表は、このトピックに関連するパラメーターについて説明しています。その他のパラメーターの設定方法については、「エンドポイントの作成と管理」トピックのエンドポイントの作成セクションを参照してください。
パラメーター
説明
エンドポイント名
エンドポイントの名前を入力します。
エンドポイントタイプ
エンドポイントのタイプを選択します。この例では、インターフェースエンドポイントを選択します。
エンドポイントサービス
関連付けるエンドポイントサービスを選択します。
この例では、サービスの選択をクリックし、手順3で作成したエンドポイントサービスを選択します。
VPC
エンドポイントを作成するVPCを選択します。この例では、VPC 1を選択します。
セキュリティグループ
エンドポイントエラスティックネットワークインターフェース (ENI) に関連付けるセキュリティグループを選択します。セキュリティグループは、VPCからエンドポイントENIへのデータ転送を制御するために使用されます。
説明セキュリティグループのルールで、クライアントがエンドポイントENIにアクセスできることを確認してください。
デフォルトでは、最大5つのセキュリティグループにエンドポイントを追加できます。
ゾーンとvswitch
エンドポイントサービスのゾーンを選択し、ゾーン内のvSwitchを選択します。システムは自動的にエンドポイントENIを作成し、vSwitchに接続します。
この例では、フランクフルト ゾーンBと、VPC 1に作成されたvSwitchを選択します。
エンドポイントを作成した後、エンドポイントの詳細ページで、エンドポイントのドメイン名と、選択したゾーンのドメイン名とIPアドレスを表示できます。
手順6: エンドポイントからの接続リクエストを受け入れる
VPC 1にエンドポイントを作成した後、エンドポイントからの接続リクエストを受け入れるようにエンドポイントサービスを設定する必要があります。これにより、VPC 1のリソースは、エンドポイントを使用してVPC 2のエンドポイントサービスにアクセスできます。
手順3で[エンドポイント接続を自動的に受け入れる]パラメーターを[はい]に設定した場合は、この手順をスキップします。
アカウントB内のエンドポイントサービスがアカウントA内のエンドポイントからの接続リクエストを受け入れるようにするには、次の手順を実行します。
アカウントBでエンドポイントサービスコンソールにログインします。
上部のナビゲーションバーで、エンドポイントサービスがデプロイされているリージョンを選択します。この例では、ドイツ (フランクフルト)を選択します。
エンドポイントサービスページで、手順3で作成したエンドポイントサービスを見つけ、そのIDをクリックします。
エンドポイントサービスの詳細ページで、エンドポイント接続タブをクリックし、管理するエンドポイントを見つけ、許可アクション列のをクリックします。
接続を許可ダイアログボックスで、OKをクリックします。
エンドポイントサービスがエンドポイントからの接続リクエストを受け入れることを許可すると、エンドポイント接続の状態が切断から接続済みに変わります。その後、エンドポイントサービスはエンドポイントからのリクエストを処理できます。
手順7: エンドポイントを使用してサービスにアクセスする
VPC 1のECS 1が、エンドポイントを使用してVPC 2のECS 2とECS 3にデプロイされているサービスにアクセスできるかどうかをテストするには、次の手順を実行します。
この例では、ECSインスタンスはAlibaba Cloud Linuxオペレーティングシステムを実行しています。他のオペレーティングシステムでVPC 1とVPC 2間のネットワーク接続をテストする方法の詳細については、使用しているオペレーティングシステムのユーザーガイドを参照してください。
アカウントAでVPC 1のECS 1にログインします。詳細については、「ECSインスタンスに接続する方法」を参照してください。
アカウントAを使用してECS 1でブラウザーを開きます。
VPC 1のECS 1にログインした後、次のいずれかの方法を使用してVPC間の接続をテストできます。
[エンドポイントサービスのドメイン名]セクションに表示されているドメイン名を使用して、VPC 2にデプロイされているサービスにアクセスします。
エンドポイントの詳細ページで、生成されたエンドポイントサービスのドメイン名を表示します。
curl
コマンドを実行して、ネットワーク接続をテストします。
エンドポイントがデプロイされているゾーンのドメイン名またはIPアドレスを使用して、VPC 2にデプロイされているサービスにアクセスします。
エンドポイントの詳細ページで、ゾーンとENIタブをクリックして、生成されたゾーンのドメイン名とIPアドレスを表示します。
curl
コマンドを実行して、ネットワーク接続をテストします。