小编gru*_*gru的帖子

如何配置 VPC 端点以使用 Terraform 访问 DynamoDB?

我有一个在 AWS VPC 中运行的 Lambda 函数。此 Lambda 需要同时访问 RDS 和 DynamoDB,因此需要配置一个 VPC 端点以访问 DynamoDB。我已经设法使用手动配置使其工作,如亚马逊博客中所述但我正在努力使用 Terraform 将等效的基础设施定义为代码。

我知道我应该aws_vpc_endpoint在 Terraform 中定义一个(此处的文档),但是在为其配置路由表时我有点迷茫。

到目前为止,这就是我所得到的,我不确定这是正确的,我在route_table_ids配置中留下了一个问号。对于记录,如果我不配置任何路由表,端点将正确创建,但 Lambda 无法访问 DynamoDB。

  data "aws_vpc" "default" {
    default = true
  }

  resource "aws_vpc_endpoint" "private-dynamodb" {
    vpc_id = "${data.aws_vpc.default.id}"
    service_name = "com.amazonaws.${var.region}.dynamodb"
    route_table_ids = ["${WHAT_SHOULD_I_PUT_HERE?}"]
    policy = <<POLICY
    {
    "Statement": [
        {
        "Action": "*",
        "Effect": "Allow",
        "Resource": "*",
        "Principal": "*"
        }
    ]
    }
    POLICY
  }
Run Code Online (Sandbox Code Playgroud)

我还检查了如何使用手动配置创建端点,我看到它有一个关联的路由表,其中包含以下设置:

  • 我的 vpc cidr 块 --> …

vpc routetable amazon-web-services terraform

7
推荐指数
1
解决办法
1830
查看次数

在 AWS 上监控和扩展基于 Docker 的 Celery 工作线程集群

所以我有一个 docker 镜像,它通过主管运行一个 celery worker,并且在单 docker Elastic Beanstalk 上工作得很好(相当长的任务,所以acks late = trueconcurrency = 1prefetch multiplier = 1)。

问题是我想根据工作人员的有效任务负载来扩展实例,而 EB 只允许整体网络和 CPU 负载。

添加一个规则来扩大 CPU 负载工作正常,但我不能保证 EB 在任务中间不会决定缩小。这将触发docker stop并有效地杀死任何无法在短时间内完成的正在运行的芹菜(如果我没记错的话是 10 秒)。

理想情况下,我需要一个基于 CPU 活动和队列中任务的监视器,伪代码如下:

while check interval has passed if task queue is empty (or workers are not busy) if running instances is greater than 1 scale down 1 instance else if CPU load is higher than threshold scale up 1 instance

现在的问题是,这种逻辑级别在 …

amazon-web-services celery docker amazon-elastic-beanstalk

4
推荐指数
1
解决办法
1532
查看次数