JuNo_12 2025. 8. 12. 20:28

시작하기

AWS ECS에 접속해줍니다.

 


Cluster

ECS에 접속하여 클러스터를 먼저 생성해줍니다.

 


Task Definition

클러스터 생성을 완료했다면, 이제 작업 정의를 생성해줘야합니다.

 

 

사용중인 ECR의 이미지 URI를 복사하여 컨테이너에 적용해줍니다.

컨테이너 포트와 매핑해줍니다. 저희 프로젝트는 8080포트입니다.

환경변수도 직접 넣어줄 수 있습니다. 

 

 

AWS CloudWatch도 설정해줄 수 있습니다.

 

이렇게하면 작업 정의 생성도 완료입니다.


서비스 생성

 

위에서 생성한 작업 정의를 선택해주고 서비스 이름도 설정해줍니다.

용량 공급자를 선택하고, FARGATE로 설정해주고 플랫폼 버전은 LATEST로 설정해줍니다.

 

가용 영역 리밸런싱을 제거합니다.

 

가용 영역 리밴런싱이란?

더보기

가용 영역 리밸런싱

애플리케이션의 고가용성을 실현하려면 다중 태스크 서비스를 여러 가용 영역에서 실행하도록 구성하는 것이 좋습니다. 첫 번째 배치 전략을 가용 영역 분산으로 지정하는 서비스의 경우 AWS가 사용 가능한 가용 영역 전체에 서비스 태스크를 최대한 균등하게 분산합니다. 하지만 한 가용 영역에서 실행되는 태스크 수가 다른 가용 영역에서 실행되는 태스크 수와 같지 않은 경우가 있을 수 있습니다. 예를 들어 가용 영역에 가동 중단이 발생한 후 그럴 수 있습니다. 이러한 태스크 불균형을 해결하기 위해 가용 영역 리밸런싱 기능을 활성화할 수 있습니다. 가용 영역 리밸런싱을 사용하면 Amazon ECS가 각 서비스에 대해 가용 영역 전반에 걸친 태스크 분산을 지속적으로 모니터링합니다. Amazon ECS는 불균등한 태스크 분배를 감지하면 자동으로 조치를 취하여 가용 영역 전반에서 워크로드를 리밸런싱합니다. 여기에는 태스크 수가 가장 적은 가용 영역에서 새 태스크를 시작하고 과부하가 걸린 가용 영역에서 태스크를 종료하는 것이 포함됩니다. 이러한 재분배를 통해 단일 가용 영역이 장애점이 되지 않으므로 컨테이너식 애플리케이션의 전체 가용성을 유지하는 데 도움이 됩니다. 자동 리밸런싱 프로세스를 통해 수동 개입이 필요 없으므로 이벤트 후 복구 시간이 단축됩니다.

만들어둔 VPC와 서브넷, 그리고 보안그룹과 연결합니다.

 

로드밸런싱 사용을 체크하고, 로드밸런서 유형을 Apllication Load Balancer로 설정해준 뒤, 컨테이너에 연결해주고 로드 밸런서를 생성해줍니다.

리스너 및 대상 그룹도 설정해줍니다. 대상 그룹은 스프링 애플리케이션이 들어가있는 포트인 8080포트로 연결해줍니다.

또한, 헬스체크를 위한 경로도 설정해줍니다. 이렇게하면 서비스가 생성되고, 베포가 시작됩니다.


명령어 모음

더보기

명령어 모음

aws configure : 로컬에서 aws로 연동하는 시작단계입니다.

 

aws ecr get-login-password --region ap-northeast-2 | docker login --username AWS --password-stdin ECR 주소

  • aws ecr get-login-password --region ap-northeast-2
    → AWS CLI로 ECR(Elastic Container Registry) 로그인용 비밀번호를 가져옵니다.
  • | (파이프)
    → 앞 명령어의 출력(비밀번호)을 뒤 명령어의 입력으로 전달합니다.
  • docker login --username AWS --password-stdin ECR 주소
    → 도커 클라이언트가 AWS ECR 레지스트리에 로그인합니다.
    → --username AWS는 ECR 로그인 시 고정된 사용자 이름입니다.
    → --password-stdin는 파이프로 전달된 비밀번호를 사용한다는 뜻입니다.
  • 결과: 도커가 AWS ECR에 인증되어, 이후 이미지 푸시/풀 작업을 할 수 있게 됩니다.




docker build -t ECR 리포지토리 주소/이미지 이름:테그 .

  • docker build
    → 현재 디렉터리(.)에 있는 Dockerfile을 기준으로 도커 이미지를 만듭니다.
  • -t 옵션
    → 만든 이미지에 태그(tag)를 붙입니다.
  • 결과: 로컬에 AWS ECR용으로 태그가 붙은 도커 이미지가 만들어집니다.


docker push ECR 리포지토리 주소/이미지 이름:테그

  • docker push
    → 로컬 도커 이미지를 원격 저장소(여기서는 AWS ECR)에 업로드(푸시)합니다.
  • 결과: 도커 이미지가 AWS ECR 리포지토리에 저장되어, ECS나 다른 곳에서 가져다 쓸 수 있게 됩니다.