我的 AWS 自动扩展组中的 EC2 实例都在运行 1-4 小时后终止。确切的时间各不相同,但当它发生时,整个组在几分钟内就会倒下。
每个的缩放历史描述很简单:
在 2016-08-26T05:21:04Z,一个实例被停止服务以响应 EC2 运行状况检查,表明它已终止或停止。
但我没有添加任何健康检查。EC2 状态检查实例生命周期内的所有通过。
我如何确定这种“健康检查”失败的实际含义?
大多数关于 ASG 终止的问题都会回到负载平衡器,但我没有负载平衡器。该集群处理批处理作业,最小/最大/期望值由基于系统中其他地方的工作负载积压的软件控制。
ASG 历史记录不指示缩减事件,并且实例也都明确地受到缩减保护。
我尝试将运行状况检查宽限期设置为 20 小时,看看这是否至少让实例保持运行状态,以便我可以检查它,但它们仍然会终止。
实例正在运行 ECS AMI,而 ECS 正在容器中运行单个任务,在启动时启动。该任务的日志看起来很正常,并且在实例消失前几分钟前一切似乎都在愉快地运行。
该任务是 CPU 密集型的,但是当我让它休眠六个小时时仍然会发生错误。
我在EC2上运行一个守护进程来处理作业.对于每个作业,我知道(可能)不同的日志流我想要附加消息.
如何创建一个特定于日志流的Appender,我可以将其附加到我的log4j记录器,并在我的监听器转到下一个作业时更改它?
当我在 Amazon AWS ECS 容器中启动任务时,我需要通过 Java SDK 以编程方式恢复退出代码。
它出现在 Amazon Web 界面中,在 SDK 中我可以获得基于文本的失败原因,但是有没有办法获得显式退出代码?
当 --engine 设置为 时,以下命令有效postgres,但是当我将其更改为aurora-postgresql(根据文档)时,我收到一个奇怪的错误:
aws rds create-db-instance \
--db-name mydb1 \
--db-instance-identifier mydb1 \
--db-instance-class db.r5.large \
--engine aurora-postgresql \
--master-username postgres \
--master-user-password XXXXX \
--availability-zone us-east-1a \
--db-subnet-group-name mydb-subnets-us-east-1 \
--allocated-storage 100
Run Code Online (Sandbox Code Playgroud)
错误:
An error occurred (InvalidParameterCombination) when calling the CreateDBInstance operation:
Invalid storage type for DB engine manfred: aurora
Run Code Online (Sandbox Code Playgroud)
什么是manfred:?
--storage-type我已经尝试了我看到的所有记录值( standard、io1和gp2),它们都会生成错误:
An error occurred (StorageTypeNotSupported) when calling the CreateDBInstance operation:\n
Invalid storage type: XXX …Run Code Online (Sandbox Code Playgroud)