반응형
이번 포스트에서는 ALB(로드 밸런서)를 사용하지 않고 AWS의 ECS를 생성하고 SpringBoot의 jar 파일를 dockerfile로 이미지 변환하고 배포해 보도록 하자
이 글을 따라하기 전에 ECR을 먼저 만들고 오는것을 추천한다.
2023.10.27 - [AWS] - AWS ECR로 Docker 이미지 관리하기: 완벽 가이드
1. Task 정의하기
1-1. ECS 좌측의 메뉴바에서 “태스크 정의”를 클릭한다.
1-2. 우측의 “새 태스크 정의 생성”을 클릭한다.
1-3. 이동한 페이지 좌측에 있는 “새로운 ECS환경” 버튼을 클릭한다.
- 태스크 정의를 할때는 예전버전으로 하는게 좀 더 세밀하고 쉽게 설정이 가능하다.
1-4. 시작 유형 호환성을 선택한다.
- EC2를 선택한다.
1-5. 작업 및 컨테이너 정의를 구성한다.
- 여기서는 “테스크 정의 이름”만 적고 나머지는 default로 둔다.
1-6. 작업 실행 IAM 역할도 그냥 default로 둔다.
1-7. 다음으로 “작업 크기”를 설정한다.
- 메모리는 512MB, CPU는 256으로 설정했다.
1-8. 다음으로 “컨테이너 정의”를 한다.
- 컨테이너 정의 아래에 있는 파란색 "컨테이너 추가" 버튼을 클릭한다.
1-9. 컨테이너 추가 작성하기
- 아래와 같이 컨테이너 이름을 적고 ECR에서 이미지의 URI를 복사해서 “이미지” 항목에 넣는다.
- 메모리 제한은 건드리지 않고 하단의 포트 매핑에 docker 이미지로 실행할 tomcat 8081포트와 http 80번 포트를 열어준다.
- 아래로 스크롤해서 하단의 “고급 컨테이너 구성”에서는 “스토리지 및 로깅” 에서 “로그 구성”에 Auto-configure CloudWatch Logs만 체크를 해주고 오른쪽 하단의 “추가” 버튼을 눌러서 컨테이너 설정을 저장한다.
1-10. 남은 태스크 정의 작성하기
- 컨테이너 설정을 마쳤으므로 다시 태스크 설정창으로 이동된다.
- 여기서 하단의 나머지 설정들은 다 default로 두고 “생성” 버튼을 누른다.
1-11. 태스크 정의의 생성이 완료되면 아래와 같이 나온다.
2. ECS 클러스터 생성하기
2-1. 클러스터 생성하기
- 태스크를 만들었으니 이제 ECS 클러스터를 만들어보자 좌측 메뉴바에서 “클러스터”를 클릭한다. 이후 우측 상단의 “클러스터 생성” 버튼을 클릭한다.
2-2. 클러스터 구성창 작성하기
- 클러스터 이름과 기본 네임스페이스를 구성한다.
2-3. 인프라 세팅하기
- 여기서는 EC2를 선택하고 Amazon Linux2023과 내가 원하는 인스턴스 유형을 선택한다.
- 원하는 용량은 최소1, 최대1로 설정했다.
2-4. 다음으로 “네트워크” 설정을 한다.
- 기존에 존재하던 VPC를 선택했고 서브넷도 전부 선택해 주었다.
- 보안그룹도 기존에 존재하던 default를 선택했다.
2-5. 클러스터 생성
- 위에 작성된 내용만 세팅하고 나머지는 다 default로 두고 "생성"버튼을 누르면 아래와 같이 나온다. (초기에는 생성시간이 걸림)
2-6. 클러스터 EC2 확인하기
- 생성이 완료되면 “EC2 대시보드”의 동작중인 ECS 인스턴스(EC2)를 클릭해서 "인스턴스 요약" 하단의 "태그" 목록을 클릭한다.
- Key:Value에서 이 인스턴스가 "ECS-Cluster"라는것을 확인할 수 있다.
2-7. ECS 클러스터에서 하단의 "인프라" 확인하기
- 용량 공급자에 ASG(Auto-Scaling-Group)이 잘 지정되어있는지 확인한다.
여기까지가 ECS 클러스터 생성이었다. 이제 서비스를 만들자
3. ECS 서비스 만들기
3-1. 클러스터 하단의 서비스 목록에서 “생성”을 클릭한다.
3-2. 서비스 생성하기 “환경”에서 컴퓨팅 옵션을 선택한다.
- 우리는 클러스터를 EC2로 만들어 줬으니 컴퓨팅 옵션에 EC2를 선택한다.
3-3. 배포 구성 선택하기
- 패밀리에 선택할 것은 1번에서 정의했던 “태스크 정의”를 선택하면 된다. 이후 서비스 이름을 작성한다.
- 여기서 "배포 옵션" 은 하단과 같이 기본 default를 사용한다. (롤링 업데이트 선택)
3-4. 서비스 생성하기
- 하단의 “생성” 버튼을 누르면 클러스터 개요로 이동되고 기다림이 시작된다.
3-5. 배포상태 체크하기
- 클러스터 하단의 테스크를 확인한다. “원하는 상태 필터링”에서
- 그 옆의 서비스도 확인한다.
이렇게 ALB없이 ECS 배포를 마쳤다. 이것또한 많은 우여곡절이 있었지만 VPC를 기본으로 세팅하니 수월하게 해결되었다. 다음에는 왜 VPC때문에 문제가 생겼었는지 공유하고 해결방안에 대해서 말하도록 하겠다.
2023.10.27 - [AWS] - AWS ECR로 Docker 이미지 관리하기: 완벽 가이드
반응형
'AWS > ECS, ECR' 카테고리의 다른 글
AWS ECS와 ALB: 동적 포트 vs 명시적 포트 설정의 EC2 DNS 접속 이슈 (1) | 2023.10.31 |
---|---|
AWS - ALB를 적용시킨 ECS의 동적 포트 할당관계 동작원리 (1) | 2023.10.30 |
AWS EC2를 사용하는 ECS 클러스터 생성 및 사용 (1) | 2023.10.28 |
AWS ECS를 위한 ALB세팅: 실전 예제와 함께 (0) | 2023.10.27 |
AWS ECR로 Docker 이미지 관리하기: 완벽 가이드 (0) | 2023.10.27 |