AWS インターフェース型 VPC エンドポイントにどのようにアクセスしているのか?

こんにちは。自称ネットワーク技術者の貝塚です。SCSKでAWSの内製化支援『テクニカルエスコートサービス』を担当しています。

業務でヤバいくらいお世話になっているひつじちゃんがVPCエンドポイントについての記事を書いていました。

ひつじちゃんリスペクト記事として、VPCエンドポイントに関する役立ちそうで役立たない豆知識を書きます。

問題

インターフェース型のエンドポイントのIPはプライベートとなります。

(Amazon VPC エンドポイントについて整理してみる より引用)

とありますが、プライベートIPアドレスがつけられたエンドポイント(例えばSystems Manager用のインターフェース型エンドポイント)に、VPC内のEC2インスタンスなどがアクセスできているのはどうしてでしょうか?

答え

Route 53 Resolverが返すIPアドレスが書き換わっているから。

解説

Route 53 Resolverとは、Amazon Provided DNSなどとも呼ばれる、EC2インスタンスを作成したときにデフォルトで指定されているDNSのことです。

さて、AWSの各種サービスにアクセスするためのインターフェース型エンドポイントにはDNS名がついています。

たとえばec2messagesサービスの場合はこうです。

ep_ec2messages

ec2messagesインターフェース型エンドポイントがないVPCからこの名前を解決してみると以下のようになります。

[ec2-user@ip-10-32-1-157 ~]$ dig ec2messages.ap-northeast-1.amazonaws.com

(略)

;; ANSWER SECTION:
ec2messages.ap-northeast-1.amazonaws.com. 58 IN A 52.119.223.180

(略)

グローバルIPアドレスが返ってきています。

ec2messagesインターフェース型エンドポイントがあるVPCから名前解決するとこうなります。

[ec2-user@ip-10-33-1-124 ~]$ dig ec2messages.ap-northeast-1.amazonaws.com

(略)

;; ANSWER SECTION:
ec2messages.ap-northeast-1.amazonaws.com. 32 IN A 10.33.1.68

(略)

VPC内のIPアドレスが返ってきます。

このようにDNSの名前解決の仕組みによって、本来インターネット上にあるAWSのサービスエンドポイントを、利用者が意識することなくVPC内の通信にしてくれているわけです。

インターネットゲートウェイがなくてもとりあえずVPC内にssmとssmmessagesとec2messagesのエンドポイントを作っておけばSession ManagerでEC2インスタンスにログインできるようになる、とおまじないのように覚えている方の理解を深める一助になれば幸いです。

役に立たない豆知識

インターフェース型エンドポイントは、どこのVPCからの通信か、とか気にしてないので、たとえばVPCピアリングしたお隣のVPCにいるEC2インスタンスのhostsにこんな感じで書いてあげれば、お隣VPCのインスタンスにもSession Managerで接続できるようになります。

[ec2-user@ip-10-32-1-157 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost6 localhost6.localdomain6
# Added for connection to VPC interface endpoints
10.33.1.68 ec2messages.ap-northeast-1.amazonaws.com
10.33.1.138 ssmmessages.ap-northeast-1.amazonaws.com
10.33.1.21 ssm.ap-northeast-1.amazonaws.com

いちいちこれ設定するくらいなら各VPCにエンドポイント作った方が面倒がなくてよくない?というのはあります……。

それではご査収ください。

著者について

SCSKにて、AWSの技術支援を提供するAWSテクニカルエスコートサービスの業務に従事しています。
自称ネットワークエンジニア。
CloudFormationは触っていても面白みが感じられないけれどCDKは好き。

所持資格は、
AWS Certified Solutions Architect - Professional
AWS Certified Advanced Networking - Specialty
AWS Certified Security - Specialty
AWS Certified DevOps Engineer - Professional
IPA 情報処理安全確保支援士
など。

好きなすみっコはとかげ。

貝塚広行をフォローする
クラウドに強いによるエンジニアブログです。
SCSKは専門性と豊富な実績を活かしたクラウドサービス USiZE(ユーサイズ)を提供しています。
USiZEサービスサイトでは、お客様のDX推進をワンストップで支援するサービスの詳細や導入事例を紹介しています。
AWSクラウドソリューションネットワーク
シェアする
タイトルとURLをコピーしました