Как вы заметили при создании кластера EMR, теги одинаковы для всех узлов (Master, Slave, Task).
Вы обнаружите, что этот процесс, использующий интерфейс командной строки AWS, будет сложным. Я рекомендую ознакомиться с приведенными ниже примерами и написать для этого программу на Python.
Процесс добавления собственных тегов к экземплярам EC2.
ШАГ 1. Перечислите свои кластеры EMR:
aws emr list-clusters
Это выведет JSON:
{
"Clusters": [
{
"Id": "j-ABCDEFGHIJKLM",
"Name": "'MyCluster'",
"Status": {
"State": "WAITING",
"StateChangeReason": {
"Message": "Cluster ready after last step completed."
},
"Timeline": {
"CreationDateTime": 1536626095.303,
"ReadyDateTime": 1536626568.482
}
},
"NormalizedInstanceHours": 0
}
]
}
ШАГ 2. Запишите идентификатор кластера из JSON:
"Id": "j-ABCDEFGHIJKLM",
ШАГ 3: Опишите свой кластер EMR:
aws emr describe-cluster --cluster-id j-ABCDEFGHIJKLM
Это выведет JSON (я урезал этот вывод только до раздела MASTER):
{
"Cluster": {
"Id": "j-ABCDEFGHIJKLM",
"Name": "'Test01'",
....
"InstanceGroups": [
{
"Id": "ig-2EHOYXFABCDEF",
"Name": "Master Instance Group",
"Market": "ON_DEMAND",
"InstanceGroupType": "MASTER",
"InstanceType": "m3.xlarge",
"RequestedInstanceCount": 1,
"RunningInstanceCount": 1,
"Status": {
"State": "RUNNING",
"StateChangeReason": {
"Message": ""
},
"Timeline": {
"CreationDateTime": 1536626095.316,
"ReadyDateTime": 1536626533.886
}
},
"Configurations": [],
"EbsBlockDevices": [],
"ShrinkPolicy": {}
},
....
]
}
}
ШАГ 4: InstanceGroups - это массив. Найдите запись, где InstanceGroupType
равно MASTER
. Запишите Id
.
"Id": "ig-2EHOYXFABCDEF",
ШАГ 5: Список экземпляров вашего кластера:
aws emr list-instances --cluster-id j-ABCDEFGHIJKLM
Это выведет JSON (я урезал вывод):
{
"Instances": [
....
{
"Id": "ci-31LGK4KIECHNY",
"Ec2InstanceId": "i-0524ec45912345678",
"PublicDnsName": "ec2-52-123-201-221.us-west-2.compute.amazonaws.com",
"PublicIpAddress": "52.123.201.221",
"PrivateDnsName": "ip-172-31-41-111.us-west-2.compute.internal",
"PrivateIpAddress": "172.31.41.111",
"Status": {
"State": "RUNNING",
"StateChangeReason": {},
"Timeline": {
"CreationDateTime": 1536626164.073,
"ReadyDateTime": 1536626533.886
}
},
"InstanceGroupId": "ig-2EHOYXFABCDEF",
"Market": "ON_DEMAND",
"InstanceType": "m3.xlarge",
"EbsVolumes": []
}
]
}
ШАГ 6: Найти соответствие InstanceGroupId
ig-2EHOYXFABCDEF
. Это даст вам идентификатор экземпляра EC2 для MASTER: "Ec2InstanceId": "i-0524ec45912345678"
Шаг 7: пометьте свой экземпляр EC2:
aws ec2 create-tags --resources i-0524ec45912345678 --tags Key=EMR,Value=MASTER
Вышеуказанные шаги могут быть проще с CLI Filters
и / или jq
, но этой информации должно быть достаточно, чтобы вы знали, как найти и пометить мастер-экземпляр EMR.