AWS ECS로 컨테이너 배포하기: 수동 방식과 관리형 서비스의 차이

박혜민·2024년 9월 12일
0

도커

목록 보기
2/2

EC2와 ECS

EC2를 사용한 방식은 사용자가 서버와 네트워크를 직접 관리해야 한다는 점에서 큰 자유도를 제공합니다. 인스턴스를 생성하고, 구성하며, 필요한 소프트웨어를 설치하고 유지 관리하는 모든 과정이 사용자의 책임입니다.

AWS ECS의 장점
자동화된 관리: AWS가 컨테이너 실행을 자동으로 관리해주므로 서버 생성, 설정, 유지 관리를 할 필요가 없습니다.
서버리스 옵션(Fargate): Fargate 모드를 사용하면 서버리스 환경에서 컨테이너를 실행할 수 있어, 인프라 관리 부담을 최소화할 수 있습니다.
확장성: 필요에 따라 컨테이너 수를 자동으로 조정할 수 있어, 트래픽 변화에 유연하게 대응할 수 있습니다.
보안: AWS가 제공하는 보안 기능과 모니터링을 활용하여 더 안전하게 애플리케이션을 운영할 수 있습니다.

AWS ECS를 사용한 배포 flow

  1. ECS 접속
    AWS 콘솔에 로그인한 후, "ECS"를 검색하여 Elastic Container Service에 접속합니다. 이 단계에서는 AWS가 제공하는 관리형 서비스 인터페이스를 사용하게 됩니다.

  2. 컨테이너 구성
    사용자 지정 컨테이너를 정의하고, 필요한 설정을 입력합니다.
    이름: 컨테이너를 식별할 수 있는 이름을 입력합니다.
    이미지: Docker Hub 또는 기타 레지스트리에서 사용할 컨테이너 이미지를 지정합니다.
    메모리와 포트 매핑: 컨테이너가 사용할 메모리 한계와 노출할 포트를 설정합니다.
    환경 변수: 필요한 환경 변수를 설정하여 컨테이너 실행 시 필요한 설정을 동적으로 관리합니다.

  3. 작업(Task) 생성
    컨테이너를 포함하는 작업을 정의합니다. 작업은 ECS가 컨테이너를 어떻게 실행할지에 대한 청사진을 제공합니다.
    Fargate 선택: 작업 실행 모드로 Fargate를 사용합니다. Fargate는 서버리스 모드로, 인프라 관리 부담을 줄이고 더 간편하게 컨테이너를 실행할 수 있습니다.

  4. 서비스 설정
    작업을 제어하는 서비스를 정의합니다. 서비스는 컨테이너 실행을 관리하고, 필요시 부하 분산기를 설정하여 트래픽을 효율적으로 관리할 수 있습니다.

  5. 클러스터 구성
    클러스터는 컨테이너와 작업을 그룹화하여 관리하는 단위입니다. 클러스터를 구성하여 여러 개의 컨테이너를 효율적으로 관리할 수 있습니다.
    클러스터 이름: 클러스터의 이름을 지정합니다.
    네트워크 설정: AWS가 자동으로 네트워크를 구성해주므로 별도의 설정 없이 클러스터 내의 컨테이너들이 통신할 수 있습니다.

  6. 배포 확인
    모든 설정이 완료되면 ECS에서 실행 중인 작업과 서비스를 확인합니다. AWS가 제공하는 공용 IP 주소를 통해 애플리케이션이 정상적으로 실행되는지 테스트할 수 있습니다.

주의 사항: 비용 관리!!!

ECS는 AWS 프리 티어에 포함되지 않기 때문에 사용량에 따라 비용이 발생할 수 있습니다. 배포 전에 AWS 가격 페이지를 참조하여 예상 비용을 확인하고, 필요시 사용을 중지하여 불필요한 비용이 발생하지 않도록 주의해야 합니다!!

profile
말랑말랑 개발자

0개의 댓글

관련 채용 정보