본문 바로가기
개발/AWS

EC2 기반 ECS 서비스 이용해보기(3)-오류 관련 사항

by 앗가 2022. 11. 18.
728x90
반응형

(1)에서 ECS를 이용하기 위한 사전 준비, (2)에서 본격적인 ECS 서버 만들기를 진행해봤습니다. 이번에는 ECS를 이용하면서 만난 오류 관련 사항을 서술해보겠습니다.

 

- ECS 환경변수 세팅을 S3 파일에 .env 파일을 이용해서 세팅을 진행하는 경우 ecsTaskExecutionRule만 수정하면 해결할 수 있습니다. ecsTaskExecutionRule에 s3 GetObject, GetBucketLocation, GetBucketLocation에 관한 정책을 JSON으로 추가해서 사용할 수 있습니다.

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "<버킷arn>/*"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketLocation"
            ],
            "Resource": [
                "<버킷arn>"
            ]
        }
    ]
}

그러나 일반적인 환경변수 세팅은 AWS secret manager나 AWS systems manager를 쓰는 것을 AWS에서 권장하고 있습니다. 기본적인 환경변수를 ECS 테스크에서 적는 것은 --env옵션에 해당하고 S3로 호스팅하는 파일은 --env-file에 해당합니다. 

- ECS를 EC2로 배포하고 브리지모드를 사용하는 경우 호스트 포트를 0으로 설정해야 합니다. 0으로 설정하면 임시 포트 범위에서 사용되지 않는 임의의 포트를 선택해서 컨테이너에 할당할 수 있습니다. 특정 포트를 지정할 시 새 이미지를 배포할 때 포트가 겹쳐 테스크가 provisioning단계에서 무한히 멈출 수 있습니다. 브리지 모드는 fargate에서 지원하지 않습니다. fargate사용 시 awsvpc모드를 이용하는 것으로 이해하고 있습니다. 

- awsvpc모드를 EC2에서 사용하는 경우 EC2 인스턴스 종류에 따라 연결할 수 있는 ENI가 제한되기 때문에 작업수에 제한이 있을 수 있습니다. 

- ECS 테스크의 배포가 실패하거나 pending단계에서 무한히 멈출 경우 vcpu와 메모리가 혹시 모자라지는 않는지 확인할 필요가 있습니다. 만약 새로운 배포가 진행되기 어려운 용량만 남아있다면 새 배포를 진행할 때 제대로 이루어지지 않을 수 있습니다. 

- ECS 오토스케일링 그룹을 꼭 용량 공급자에 넣고 클러스터를 업데이트해주어야 오토스케일링이 제대로 동작합니다. 

- EC2 인스턴스의 보안 그룹과 로드밸런서의 보안 그룹은 분리하여 적용하는 것이 좋습니다. 같이 이용하는 경우 후에 보안 그룹을 편집할 때 라우팅이 제대로 이루어지지 않을 수 있습니다.

- ECS 서비스에서 용량 공급자를 설정해주어야 테스크 단위의 오토스케일링이 동작합니다.


참고자료

AWS 네트워크 모드 선택에 대한 설명

https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/bestpracticesguide/networking-networkmode.html

 

네트워크 모드 선택 - Amazon Elastic Container Service

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

AWS 배포 전략에 대한 설명

https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/deployment-types.html

 

Amazon ECS 배포 유형 - Amazon Elastic Container Service

이 페이지에 작업이 필요하다는 점을 알려 주셔서 감사합니다. 실망시켜 드려 죄송합니다. 잠깐 시간을 내어 설명서를 향상시킬 수 있는 방법에 대해 말씀해 주십시오.

docs.aws.amazon.com

AWS ECS 실습

http://ecs.catsdogs.kr.s3-website.ap-northeast-2.amazonaws.com/ko/1.-intro/

 

실습 소개 :: DemoGo - Amazon ECS Cats and Dogs

 

ecs.catsdogs.kr.s3-website.ap-northeast-2.amazonaws.com

 

728x90

댓글