ECS에 컨테이너 인스턴스를 추가하고 EIP를 부여할 인스턴스를 특정하기 위해 인스턴스를 특정하여 태스크를 실행하기 위한 테스트
ECS 인스턴스에 사용자 속성 부여
사용자 속성(Attribute)이란?
Amazon ECS에서는 각 컨테이너 인스턴스에 사용자 정의 속성을 부여할 수 있습니다. 이러한 속성은 태스크 배치를 제어하는 데 유용하며, 특정 태스크가 특정 인스턴스에서 실행되도록 할 수 있습니다.
사용자 속성 부여의 이점
- 유연한 배치 전략: 특정 작업을 특정 인스턴스에서 실행하도록 설정하여 리소스 사용을 최적화할 수 있습니다.
- 고급 관리: 인프라를 더 세밀하게 제어하고 관리할 수 있습니다.
사용자 속성 부여 방법
AWS CLI를 사용하여 ECS 인스턴스에 사용자 속성을 부여할 수 있습니다. 다음은 해당 명령어의 예제입니다.
aws ecs put-attributes --cluster <클러스터 이름> --attributes "name=<속성 이름>,value=<속성 값>,targetType=container-instance,targetId=<인스턴스 ID>"
각 파라미터에 대한 설명은 다음과 같습니다:
- -cluster: 사용자 속성을 부여할 ECS 클러스터의 이름을 지정합니다.
- -attributes: 속성의 이름(name)과 값(value)을 지정합니다.
- name: 부여할 속성의 이름입니다.
- value: 부여할 속성의 값입니다.
- targetType: 대상의 유형을 지정합니다. 여기서는 container-instance로 설정합니다.
- targetId: 속성을 부여할 대상의 인스턴스 ID입니다.
- ex
aws ecs put-attributes --cluster my-cluster --attributes "name=dashboard,value=true,targetType=container-instance,targetId=i-0123456789abcdef0"
aws ecs put-attributes --cluster my-cluster --attributes "name=trade,value=true,targetType=container-instance,targetId=i-0987654321abcdef0"
aws ecs put-attributes --cluster my-cluster --attributes "name=price-comparison,value=true,targetType=container-instance,targetId=i-112233445566778899"
Task Definition Json
{
"family": "nginx_test",
"containerDefinitions": [
{
"name": "nginx",
"image": "123456789012.dkr.ecr.ap-northeast-2.amazonaws.com/test-nginx:test.v.1",
"cpu": 1024,
"memory": 768,
"memoryReservation": 512,
"portMappings": [
{
"containerPort": 80,
"hostPort": 8080,
"protocol": "tcp"
}
],
"essential": true,
"logConfiguration": {
"logDriver": "awslogs",
"options": {
"awslogs-group": "/ecs/nginx_test",
"awslogs-create-group": "true",
"awslogs-region": "ap-northeast-2",
"awslogs-stream-prefix": "ecs"
}
}
}
],
"taskRoleArn": "arn:aws:iam::123456789012:role/IAMRole-ECSTask-Example",
"executionRoleArn": "arn:aws:iam::123456789012:role/IAMRole-ECSTask-Example",
"networkMode": "bridge",
"requiresCompatibilities": ["EC2"],
"cpu": "1024",
"memory": "768",
"runtimePlatform": {
"cpuArchitecture": "X86_64",
"operatingSystemFamily": "LINUX"
},
"placementConstraints": [
{
"type": "memberOf",
"expression": "attribute:dashboard == true"
}
]
}
placementConstraints 섹션에서 방금 지정한 사용자 속성 컨테이너 인스턴스를 특정한다.
콘솔을 사용하여 서비스 생성
- ECS 콘솔 접속: AWS Management Console에 로그인하고 ECS 서비스로 이동합니다.
- 서비스 생성:
- 클러스터 선택: your-cluster-name
- 서비스 이름: nginx-test-latest
- 시작 유형: EC2
- 서비스 유형: DAEMON
- 태스크 정의: nginx_test:latest
- 배포 구성 설정:
- 배포 유형: 롤링 업데이트
- 최소 실행 작업 비율: 0%
퍼블릭 ip를 통해 접속하여 동작 확인
'1인개발 메이킹로그 > [HybridCloud+AI] 가상화폐 자동매매 with AI' 카테고리의 다른 글
pyupbit - get_order_details() (0) | 2024.08.16 |
---|---|
ECS Anywhere로 안쓰는 노트북을 외부 인스턴스로 추가 (1) | 2024.06.09 |