https://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/vpc-endpoints.html
VPC エンドポイントを使用すると、Virtual Private Cloud (VPC) とサポートされているサービスの間の接続が有効になります。インターネットゲートウェイ、NAT デバイス、VPN 接続、および AWS Direct Connect 接続は必要ありません。したがって、VPC はパブリックインターネットに公開されません。
https://docs.aws.amazon.com/ja_jp/vpc/latest/privatelink/vpc-endpoints.html
要はVPCに属しているリソースからVPCに属していないリソースにプライベートにアクセスするためのもの。
VPC Endpointは、グローバルIPをもつAWSのサービスに対して、VPC内部から直接アクセスするための出口
https://d1.awsstatic.com/webinars/jp/pdf/services/20201021_AWS-BlackBelt-VPC.pdf p.77
インターフェイス型の場合は、ENIを利用してVPC内部にサービスのエンドポイントが立ち上がります。そのため、ネットワークACLでローカルの通信のみに制限しても影響を受けることがありません。
https://dev.classmethod.jp/articles/vpc-endpoint-gateway-type/ Gateway Load Balancer エンドポイント
ref. 2つのVPCエンドポイントの違いを知る
AWS PrivateLinkを実現する仕組みがVPC エンドポイント。
VPC エンドポイントを使ってVPCからlambdaにアクセスするサンプル。
許可:
信頼関係:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
ランタイムにNode.js 14.xを選択したときにデフォルトで入力されているサンプルを使用。 関数名はhello-worldにした。
exports.handler = async (event) => {
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
$ aws --region ap-northeast-1 lambda invoke --function-name hello-world response.json
{
"ExecutedVersion": "$LATEST",
"StatusCode": 200
}