서론 지난 편에서 Spring boot에서 Docker image를 만들고 Docker image를 Docker Hub에 등록하는 것까지 해봤다. 이번에는 등록한 이미지를 끌어와 ECS에서 구동하는 법을 실습해본다. 해당 실습은 AWS 계정이 있고 해당 계정이 IAM에서 VPC 접근 권한과 ECS 접근 권한이 허용되어있어야 한다. 주의사항 프리티어를 제공하는 EC2와는 다르게 ECS는 프리티어가 제공되지 않는다. 컴퓨팅 서비스를 띄우는 시간에 비례하여 요금이 청구되기 때문에 이에 유념하며 사용하자. 사용하지 않는 Task는 중지시켜 요금을 절약할 수 있다. ECS 구성 요소 ECS를 생성하여 컨테이너를 구동하기 전에 ECS가 어떻게 구성되어있는지 살펴본다. ECS는 다음과 같이 구성되어있다. 클러스터 컨..
서론 프로젝트를 진행하다보면 기존의 VPC를 삭제하고 새로운 VPC를 생성하여 인스턴스 환경을 바꿔야 할 필요가 있다. 하지만 VPC를 삭제하는 과정에서 VPC 내부에 사용되는 ENI가 남아있어서 삭제가 안 되는 문제가 종종 발생한다. 이 글은 그 중에 빈번하게 발생하는 원인 중 하나인 API gateway 관련 eni 문제 때문에 VPC가 삭제되지 못하는 문제와 해결책을 기록해놓은 것이다. VPC가 삭제되지 않은 원인 '네트워크 인터페이스가 포함되어있습니다.' AWS는 VPC가 삭제되지 않을 때 그 원인을 직접적으로 알려준다. 아래와 같이 VPC에 현재 사용되고 있는 eni가 있어서 삭제되지 않는다고 한다. '네트워크 인터페이스가 포함되어 있습니다.' 를 클릭하면 현재 삭제되지 않는 VPC에 관련된 E..
서론 지난 글에서 NAT gateway를 사용하여 private subnet에서 Docker Hub에 요청을 보내어 docker image를 가져오는 실습을 진행해봤다. 글을 마치면서 NAT gateway 단점으로 비용이 많이 발생한다는 것을 언급하였다. 실제로 서비스를 이용해보니 NAT gateway의 비용이 상당하게 부과되는 것을 경험하였다. 아래는 글쓴이의 AWS Billing Dashboard의 청구서 페이지를 일부 캡쳐한 것이다. NAT Gateway를 361시간 사용하고 21.3달러가 청구되었다. NAT gateway는 시간당 0.059 달러 비용이 발생하는 것이다. (리전마다 비용이 다르다.) 이는 꽤 부담스러운 가격이다. NAT gateway가 얼마나 비싼지 감이 안 온다면 아래 표도 참고..
Private Subnet에서 배포하면서 생긴 문제 프로젝트 진행 중에 AWS ECS가 생성되지 않는 문제가 발생했다. 현재 프로젝트 설계 구조는 다음과 같이 VPC 내 프라이빗 리소스를 통해 API gateway - Load balancer - Container Service 가 연결되어있는 구조다. 보안상의 이유로 어플리케이션인 ECS에는 외부에서 접속하지 못하게 해야한다. 우리 어플리케이션의 인증/인가는 API gateway와 Cognito에서 이뤄지기 때문에 ECS에는 인증/인가 프로세스가 없기 때문이다. 그래서 허가되지 않은 외부 사용자는 ECS에 접근할 수 없어야 한다. Private subnet에서 ECS를 생성하려고 하면 딜레이가 발생하다가 생성되지 않는 문제가 발생한다. 이 문제를 해결하..