본문 바로가기

개발

[AWS] ECS ec2로 private subnet에 배포하기

반응형

이전에 ecs를 기본 vpc, (public)subnet에 배포했었습니다.

그런데 인터넷으로 outbound가 안되고 있었고, 찾아보니 awsvpc 네트워크 모드를 사용하면 public subnet에 띄워도 인터넷에 outbound가 안된다고 합니다..... 

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

 

인터넷에 연결하기 - Amazon Elastic Container Service

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

docs.aws.amazon.com

 

네트워크 모드를 host로 바꿨는데 이 방식은 동적 포트 매핑이 안된다는.....

 

 

 

awsvpc로 다시 돌아 왔습니다. outbound는 nat-gateway로 해결합니다.

private에서 outbound로만 인터넷 접근이 가능하게해, awsvpc모드를 사용해도 외부 api 접속이 가능합니다.

그런데 테스크 배포가 안됩니다. 찾아보니 private subnet을 이용하면 ecr 이미지를 인터넷으로 가져오지 못하게 됩니다.

vpce를 통해 가져와야하고 logs(interface), docker.api(interface), docker.dkr(interface), s3(gateway)를 추가해줘야합니다

*interface 방화벽은 ecs instance 방화벽과 동일하게 설정해줘야합니다

 

이후 배포하니 잘 동작했습니다.