LoginSignup
36

More than 3 years have passed since last update.

【初心者】AWS PrivateLink を使ってみる

Posted at

目的

  • PrivateLinkは既に登場して2年ほどになる、ある程度枯れたサービスだが、構成を理解するため触ってみることにした。

AWS PrivateLink とは(自分の理解)

  • 自分のVPCのNLB配下のWEB等のサービスを、同一リージョン内の他のVPCに公開できるサービス。VPCピアリング等と異なり、IPアドレスレンジの重複等の考慮が不要で、AWS内に閉じた安全なNW接続を実現できる。
  • PrivateLinkは、サービスを公開する側(エンドポイントサービス)と、サービスにアクセスする側(インターフェースエンドポイント)のセットで構成される。

やったこと

  • VPC(Provider)側にNLBとEC2(nginx)、VPC(Consumer)側にEC2(WEB Client)を作成する。
  • VPC(Provider)側で「エンドポイントサービス」を作成し、NLBを指定する。
  • VPC(Consumer)側で「インターフェースエンドポイント」を作成し、接続先として、「エンドポイントサービス」を指定する。
  • VPC(Provider)側で、「インターフェースエンドポイント」の接続要求を承認し、接続を確立する。
  • EC2(web client)からEC2(nginx)へPrivateLink経由でhttpアクセスする。

構成図

pl-02.png

作業手順

VPC(2個)及びEC2(WEBサーバ/クライアント)の作成

  • VPC(Provider)を作成し、NLBとEC2(nginx)を作成する。NLBのスキームを「内部」で設定する。
  • VPC(Consumer)を作成し、EC2(WS2019,Web Client用)を作成する。

エンドポイントサービスの作成

  • VPCのメニューから、「エンドポイントサービスの作成」を選択し、VPC(Provider側)にて既存のNLBを指定してエンドポイントサービスを作成する。「エンドポイントサービスの作成」とは、NLBの配下のサービスを、他のVPCに対しての公開サービスとして登録するイメージ。2019/11現在、エンドポイントサービスとして公開設定できるのはNLBのみ。

pl-01.png

インターフェースエンドポイントの作成

  • VPCのメニューから、「エンドポイントの作成」を実行し、VPC(Consumer側)にてインターフェースエンドポイントを作成する。「インターフェースエンドポイント」は、「エンドポイントサービス」とつながる道の入口のようなもの。エンドポイントサービスの「サービス名」(com.amazonaws.vpce.ap-northeast-1.vpce-svc-xxxxxxxxxxxxxxxxx)を入力することで、エンドポイントサービスとの紐づけ要求を作成することができる。

pl-02a.png

エンドポイントサービス側での承認

  • エンドポイントサービス側の設定に戻ると、エンドポイントからの接続リクエストが「承諾の保留中」の状態になっているため、「エンドポイント接続リクエストの承諾」を実行する。これにより、接続が確立される。 pl-04a.png

PrivateLink経由での接続確認

  • VPC(Consumer)側で起動したEC2(WEB Client)のブラウザで、URLにインタフェースエンドポイントのDNS名を入力して、PrivateLink経由でNLBの先のEC2(nginx)へアクセスする。 pl-05a.png

所感

  • VPC PrivateLinkというサービスメニューがあるわけではなく、「エンドポイントサービスとインターフェースエンドポイントをつなげること」=「PrivateLink」という感じなので、ちょっと分かりにくいなと感じた。

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
36