AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[amazon-ecs](server)

Martin Hope
Umair
Asked: 2024-07-22 18:35:11 +0800 CST

Fluent-bit Match 除 * 外不起作用

  • 5

Match 仅适用于 *,我不明白为什么会发生这种情况。这是我的配置。

鲁阿

function process_record(tag, timestamp, record)
    print("Input tag: ", tag)
    print("Record: ", record["tag"])
    local s3_log = {}
    local cw_log = {}

    for k, v in pairs(record) do
        cw_log[k] = v
        cw_log["tag"] = "cw"

        s3_log[k] = v
        s3_log["tag"] = "s3"
    end
    print("S3 tag: ", s3_log["tag"])
    print("CW tag: ", cw_log["tag"])
    print("S3 Log: ", s3_log["log"])
    print("CW Log: ", cw_log["log"])
    return 2, timestamp, {s3_log, cw_log}
end

配置

[SERVICE]
    flush 1
    daemon off
    log_level debug

[FILTER]
    Name          lua
    Match         *
    script        /append_tag.lua
    call          process_record

[FILTER]
    Name          lua
    Match         $tag cw
    script        /print.lua
    call          process_record


[FILTER]
    Name          rewrite_tag
    Match         cw
    Rule          $tag .* cw true
    Emitter_Name  cw_emitted
[OUTPUT]
    Name                cloudwatch_logs
    Match               *cw*
#    Match               *
#    Match_regex         ^(cw)$
    log_key             log
    region              af-south-1
    log_group_name      /ecs/log
    log_stream_prefix   fluent-bit-
    auto_create_group   On
    log_format          json/emf

附加信息:

Fluent Bit 版本:AWS_FOR_FLUENT_BIT_VERSION 2.32.2.20240627

AWS Fargate 设置

使用 log_router 容器

amazon-ecs
  • 1 个回答
  • 23 Views
Martin Hope
gsantos
Asked: 2022-01-04 09:40:18 +0800 CST

托管区域和域名的 AWS Route 53 定价

  • 0

新手在这里处理 DNS 服务。我正在设置需要相互通信的 Fargate 容器的 ECS 集群。它们作为单独的服务部署在同一个集群中,所以我想使用 CloudMap 来自动将域名绑定到它们的 IP 地址。

这些名称只需要从 VPC 本身内部即可访问,因此我不想注册公共域名。因此,我创建了一个私有托管区域,ECS 成功注册了我的容器,并且测试确认它们可以从 VPC 内部通过名称访问。

我还不明白计费是如何工作的。根据 route 53文档,us-east-1 中的私有托管区域的前 25 个区域的费用为每月 0.5 美元。每月每百万次查询/前 10 亿次 DNS 查询的成本也为 0.4 美元。

到目前为止一切顺利,但有一节是关于域名定价的。他们链接到列出每个 TLD 价格的此文档,但我认为这是指在权威命名空间服务器上注册的可公开访问的域名,不适用于我提供给我的私有托管区域的域名?所以我不会为此被收费吗?

这些域名将如何与公共托管区域一起使用?根据我从这个问题的理解,我们为公共托管区域提供的域名不会自动注册到根 NS 服务器,因此不会收取域名费用。要注册我们的域名,我们需要通过这样的过程手动购买域名,然后我们会被收费。那会是正确的吗?

谢谢你提前。

domain-name-system amazon-web-services amazon-ecs amazon-route53
  • 1 个回答
  • 563 Views
Martin Hope
Daniel Compton
Asked: 2021-12-09 19:03:39 +0800 CST

对于在 EC2 ECS 上运行的任务,memory 和 memoryReservation 如何工作?

  • 0

EC2 ECS 允许您为 ECS 任务和在这些任务中运行的容器指定memory和。memoryReservation我了解容器设置映射memory到memoryReservation底层Docker 内存设置。

但是,我不确定在 EC2 ECS 下具有和设置的任务意味着什么。这仅用于ECS的任务调度,还是有一些运行时影响?memorymemoryReservation

假设我已经在容器上设置了内存限制,那么在任务上设置额外的内存限制是什么意思?

amazon-ecs docker memory-usage cgroup
  • 1 个回答
  • 447 Views
Martin Hope
Howins
Asked: 2021-11-08 13:50:38 +0800 CST

如何仅授权来自 MongoDB Atlas 集群的 Fargate ECS 服务的 IP

  • 1

我有一个 ECS Fargate 服务映射到 AWS 上的 Application Load Balancer。在此服务中,有几个任务经常被杀死并重新启动。这些任务应该能够连接到 MongoDB Atlas 集群。

我应该将哪个 IP 列入我的 Atlas 集群的白名单?我的服务是否可以有一个弹性 IP 或一系列 IP,以在我的 Mongo Atlas 集群中只允许我的服务的 IP?

对不起,如果这个问题很简单,我在 AWS 上的 ECS、ALB 和网络上有点挣扎。

networking amazon-web-services amazon-ecs amazon-alb mongodb
  • 1 个回答
  • 593 Views
Martin Hope
Zev
Asked: 2021-10-14 09:52:13 +0800 CST

由 psycopg2.OperationalError 引起的间歇性 500 错误:无法翻译主机名

  • 0

对我们的后端 Django 应用程序(使用 ECS 和 Postgres RDS 部署在 AWS 上)的请求中有 20% 会引发 500 错误。查看 ECS 日志,显示了各种相关错误:

psycopg2.OperationalError: could not translate host name "abc.efg.us-east-1.rds.amazonaws.com" to address
OSError: [Errno 16] Device or resource busy
<built-in function getaddrinfo>) failed with OSError

我们使用 gunicorn 和 gevent 来服务我们的应用程序:

gunicorn -t 1000 -k gevent -w 4 -b 0.0.0.0:8000 backend.wsgi

domain-name-system amazon-ecs gunicorn amazon-rds
  • 1 个回答
  • 864 Views
Martin Hope
ndtreviv
Asked: 2021-09-29 06:00:01 +0800 CST

ECS 上的 Flink taskmanager 无法连接到 EC2 上的 jobmanager

  • 0

我有一个在 us-east-1b 中的 EC2 实例,它正在运行 flink 作业管理器,它负责通过 RPC 和历史服务器协调多个任务管理器之间的工作。我可以从 netstat 看到 jobmanager 正在监听:::6123传入的 taskmanager 连接。

我有一个 Auto Scaling 组,它会将 EC2 实例运行到与 EC2 实例相同的 az、子网和安全组中。

安全组允许所有端口上的所有流量从组中的任何源到组中的任何目标: 入境规则 出站规则

我将该 ASG 用作 ECS 任务的容量提供程序。然后,我尝试在 ECS 中运行一个任务,该任务运行任务管理器并使用该 ASG。

任务管理器启动,但不会连接到作业管理器:

2021-09-28 13:52:08,651 INFO  org.apache.flink.runtime.taskexecutor.TaskExecutor           [] - Could not resolve ResourceManager address akka.tcp://[email protected]:6123/user/rpc/resourcemanager_*, retrying in 10000 ms: Could not connect to rpc endpoint under address akka.tcp://[email protected]:6123/user/rpc/resourcemanager_*.

我已经 ssh-d 到由 ASG 运行的实例上,并确认我可以 curl 作业管理器ip-xxx-xx-x-xxx.ec2.internal:8081- 它可以工作。所以我知道taskmanager实例可以看到jobmanager实例。

总结一下:

  • taskmanager和jobmanager在同一个VPC,同一个AZ,同一个子网,同一个安全组
  • 安全组允许来自同一安全组中源的所有入站流量
  • 安全组允许所有出站流量到任何目的地
  • 作业管理器在手动创建的 EC2 实例上运行
  • 任务管理器在 ECS 作为 ASG 的一部分创建的 EC2 实例上运行。任务管理器运行在 ECS 上的容器中
  • 我可以从任务管理器节点卷曲作业管理器
  • taskmanager 和 jobmanager 通过 RPC 通信
  • 任务管理器不会将地址解析给作业管理器

为什么我的任务无法连接?我还尝试了公共 IP (v4) 和私有 IP (v4)。

amazon-web-services amazon-ecs
  • 1 个回答
  • 477 Views
Martin Hope
Rohini
Asked: 2021-08-12 04:31:59 +0800 CST

ECS 中的桥接组网模式是否限制容器实例上的任务数

  • 0

我有一个 EC2 注册到 ECS 集群,可以在其上运行任务。最初我选择了awsvpc网络模式,所以每个任务(容器)都有自己的 ENI(IP)。但我在https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-eni.html#AvailableIpPerENI遇到了限制

对于 m5.large 实例类型,ENI 限制为 3

所以我将网络模式更改为 桥接 将使用桥接网络将任务限制为 10,因为从上面的屏幕截图中每个 ENI 的私有 IP 限制为 10。我不知道 using 是否bridge为任务分配了私有 IP。我检查ifconfig了 EC2 主机上的输出,但它返回一长串条目(有些带有私有 IP,有些没有)

amazon-web-services amazon-ecs docker-networking
  • 1 个回答
  • 458 Views
Martin Hope
Philip Couling
Asked: 2021-07-26 07:38:49 +0800 CST

Terraform ECS 容量提供程序不会按需生成新的 ECS 实例

  • 0

从我在这里读到的内容, ECS 容量提供者应该(通常)通过将任务置于“Provisioning”状态并启动新的 EC2 实例来防止任务立即因资源限制而失败

这意味着,例如,如果您调用 RunTask API 并且由于资源不足(意味着没有活动实例具有足够的内存、vCPU、端口、ENI 和/或 GPU 来运行任务)而没有将任务放置在实例上),而不是立即失败,任务将进入配置状态(但是请注意,只有在您为容量提供程序启用托管扩展时才会转换到配置;否则,找不到容量的任务将立即失败,就像他们之前所做的那样)。

我已经设置了一个 ECS 集群,在 terraform 中具有自动缩放组和 ECS 容量提供程序。自动缩放组设置为min_size = 1并立即启动单个实例......所以我相信我的启动配置很好。

但是,当我通过 API 反复调用“RunTask”(带有 的任务memory=128)时,我得到的任务无法立即以 reason 启动RESOURCE:MEMORY。也没有新的实例启动。

我无法弄清楚我配置错误的地方。


这都是在 terraform 中设置的:

resource "aws_ecs_cluster" "ecs_cluster" {
  name = local.cluster_name


  setting {
    name  = "containerInsights"
    value = "enabled"
  }
  tags = var.tags
  capacity_providers = [aws_ecs_capacity_provider.capacity_provider.name]

  # I added this in an attempt to make it spin up new instance 
  default_capacity_provider_strategy {
    capacity_provider = aws_ecs_capacity_provider.capacity_provider.name
  }

}

resource "aws_ecs_capacity_provider" "capacity_provider" {
  name = "${var.tags.PlatformName}-stack-${var.tags.Environment}"

  auto_scaling_group_provider {
    auto_scaling_group_arn         = aws_autoscaling_group.autoscaling_group.arn
    managed_termination_protection = "DISABLED"

    managed_scaling {
      maximum_scaling_step_size = 4
      minimum_scaling_step_size = 1
      status                    = "ENABLED"
      target_capacity           = 100
    }
  }

  tags = var.tags
}

#Compute
resource "aws_autoscaling_group" "autoscaling_group" {
  name                      = "${var.tags.PlatformName}-${var.tags.Environment}"
  # If we're not using it, lets not pay for it
  min_size                  = "1"
  max_size                  = var.ecs_max_size
  launch_configuration      = aws_launch_configuration.launch_config.name
  health_check_grace_period = 60
  default_cooldown          = 30
  termination_policies      = ["OldestInstance"]
  vpc_zone_identifier       = local.subnets
  protect_from_scale_in     = false

  tag {
    key                 = "Name"
    value               = "${var.tags.PlatformName}-${var.tags.Environment}"
    propagate_at_launch = true
  }

  tag {
    key                 = "AmazonECSManaged"
    value               = ""
    propagate_at_launch = true
  }

  dynamic "tag" {
    for_each = var.tags
    content {
      key = tag.key
      propagate_at_launch = true
      value = tag.value
    }
  }

  enabled_metrics = [
    "GroupDesiredCapacity",
    "GroupInServiceInstances",
    "GroupMaxSize",
    "GroupMinSize",
    "GroupPendingInstances",
    "GroupStandbyInstances",
    "GroupTerminatingInstances",
    "GroupTotalInstances",
  ]
}
amazon-ecs terraform autoscaling
  • 1 个回答
  • 584 Views
Martin Hope
Jethro
Asked: 2021-07-15 02:08:18 +0800 CST

禁用 src/dest 检查的 ECS Fargate 网络接口

  • 0

创建 AWS ECS Fargate 服务时,有没有办法将生成的网络接口的Source/dest check字段设置为false?

该服务是按照ECS Fargate 入门指南设置的。该服务正在运行一个 squid 代理,我认为它需要能够接受发往其他 IP 的流量,类似于 NAT。

尽管拥有完整的管理员权限,但在创建后更改 src/dest 检查字段会导致权限被拒绝错误:

未能更新 eni-12345abcde 的源/目标检查:您没有访问指定资源的权限。

我认为该消息具有误导性,并且在附加网络接口时无法修改(或删除)它们,正如我在尝试删除接口时看到的类似,尽管有权限这样做。

有没有办法设置或修改 ECS Fargate 服务的网络接口以跳过 src/dest 检查?

networking amazon-web-services amazon-ecs aws-fargate
  • 1 个回答
  • 221 Views
Martin Hope
Kohini
Asked: 2021-06-27 22:44:08 +0800 CST

容器是否可以在 AWS ECS 中以过载方式放置在 EC2 主机上

  • 0

我有一个运行多个 tomcat 应用程序和独立 jar 的实例。如果机器有 2vcpu 和 8GB RAM,单个应用程序可以按需使用资源(基于为 tomcat 和单个 jar 设置的 Xms 和 Xmx 值)。ECS 目前不在图中。

现在我将把应用程序移动到 EC2 实例上的容器(不是 Fargate)。是否可以有任务定义,其中我指定的 cpu 和内存总和大于 EC2 主机的实际 cpu 或 RAM?

因为我不希望所有应用程序在创建任务定义期间都使用 100% 分配给它的内存。拥有一个具有 4vcpus 的 ECS 主机并且我在其上放置 10 个任务并在任务定义中指定 4vcpus 是否可行?我知道这些任务不会使用 4vcpu,但我希望如果有任何任务需要使用,它们不应该被限制为使用主机的全部容量

我知道 ECS 具有我计划使用的扩展功能。但我的目标是确保不会过度配置我用于 ECS 的 EC2 主机数量

amazon-web-services amazon-ecs containers
  • 1 个回答
  • 181 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve