(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
'개발 > AWS' 카테고리의 다른 글
EC2 기반 ECS 서비스 이용해보기(2)-EC2 기반 ECS 구성 (0) | 2022.11.16 |
---|---|
EC2 기반 ECS 서비스 이용해보기(1)-사전작업 (0) | 2022.11.13 |
컨테이너 환경에서 aws dynamo DB 구동 (0) | 2022.07.25 |
댓글