目前,我们有一个用于AWS Fargate实例的工作任务定义文件。
我们希望从Fargate迁移到特定的AWS EC2实例,例如Z1d。
从AWS文档中,我发现需要添加ecs.instance-type参数。不幸的是,它没有说明应该在task_definition.json文件中添加到哪里。目前,我们有一些类似的东西:
{
"family": "generic-family",
"requiresCompatibilities": ["FARGATE"],
"cpu": "4096",
"memory": "8192",
...
"containerDefinitions": [
{
"name": "generic-docker-name",
"image": "...",
},
]
}
我们认为应该是这样的:
{
"family": "generic-family",
"requiresCompatibilities": ["EC2"],
"ecs.instance-type": "Z1d",
...
"containerDefinitions": [
{
"name": "generic-docker-name",
"image": "...",
},
]
}
或者查看其他文档:
{
"family": "generic-family",
"requiresCompatibilities": ["EC2"],
...
"containerDefinitions": [
{
"name": "generic-docker-name",
"image": "...",
"Parameters": {
"InstanceTypeParameter" : {
"Type" : "String",
"Default" : "z1d.large",
"AllowedValues" : ["z1d.large"],
"Description" : "..."
}
}
},
]
}
但这似乎并不奏效。
有人知道该怎么做吗?或者我应该如何阅读这个特定主题的AWS文档?
将其添加到顶层的task_definition.json文件中。
"placementConstraints": [
{
"type": "memberOf",
"expression": "attribute:ecs.instance-type == z1d.large"
}
],
您可以在此处阅读更多信息:https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html