hat*_*lla 0 amazon-web-services amazon-ecs aws-vpc
我在 VPC 中有一个 ECS 集群。ECS 必须从 SQS 读取。那么,我是否需要在同一个 VPC 中创建 SQS 才能进行通信?另外,如果说,我想在 VPC 之外进行通信,我该怎么做?
虽然 SQS 是 AWS 托管服务,可以通过公共互联网端点直接访问,没有任何 VPC 限制,但从 ECS 应用程序与 SQS 交互的角度来看,我建议创建到 SQS 的 VPC PrivateLink 端点,这将使您免于进行额外的跳跃之旅通过互联网网关。
如果您不创建 VPC 终端节点,流量将按以下方式路由。
AWS ECS 应用程序 ----> NAT 网关(如果 ECS 位于 VPC 的私有子网中,否则不需要) ----> Internet 网关 ----> AWS SQS。
如果您确实创建了到 SQS 的 VPC 端点,那么流量将如下所示,从而消除了通过互联网的跃点。
AWS ECS 应用程序 ----> AWS SQS(通过 PrivateLink)
以下是有关 VPC 终端节点如何工作的一些文档以及为 SQS 创建 VPC 终端节点的一些指南。
https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints.html https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-vpc-endpoints.html
SQS 队列不属于特定 VPC。创建/配置队列时不涉及网络。
对 SQS 队列的访问完全由 IAM 权限管理。
使用 ECS,您必须正确配置您的任务执行角色。例如,如下所示的策略允许从特定队列发送、接收和删除消息:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"sqs:DeleteMessage",
"sqs:ReceiveMessage",
"sqs:SendMessage"
],
"Resource": "arn:aws:sqs:<region>:<account>:<queue name>"
}
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1681 次 |
| 最近记录: |