원티드 수강생 분의 블로그 도움을 받아 글을 정리후 다시 배포해보려고 한다.
다음 사진을 보자.
앞 글에서 도커이미지를 ECR Repository에 Push하는것까지 성공했다. (1번과정)
또한 Fargate클러스터도 미리 만들어두었다 (5번과정)
다음으로 해야할건 ECS Task Definition 테스크 정의다.
테스크 정의 -> 새 태스크 정의 생성
태스크 역할이 없기 때문에 생성 후 적용해줘야한다. 다음과 같이 Elastic Container Service Task를 선택 후 다음을 눌러주자
AmazonECSTaskExecutionRolePolicy 정책을 추가해준 후 다음
이름을 정해주고 역할을 생성해주자
이제 작업 정의로 돌아가서 만들었던 태스크 역할을 추가해준다.
마음을 가다듬자.
이제 앞 글에서 push했던 컨테이너를 여기에 추가하면 된다. URI는 레퍼지토리를 보면 명시되어있다.
다른 옵션들은 그대로 둔채 작업을 생성 해주었다.
Task Definition 안에 컨테이너가 추가된채로 정의가 완료된걸 확인할 수 있다.
지금 로드맵 사진에서 1번, 2번 과정을 마쳤다.
다시 마음을 가다듬고 3번 과정을 진행해보자.
내 작업 정의에서 배포 -> 서비스생성을 클릭한다
이전 게시글에서 만들었던 Fargate클러스터를 선택해주면 Fargate서비스를 위한 기본설정으로 작성된다. 이름과 작업 개수를 정해준다.
VPC와 서브넷은 기본값으로 두었고, 새 보안그룹 생성을 통해 포트매핑을 해주었다.
기본적으로 잘 되어있지 않기 때문에 신경써야한다고 한다.
이제 로드 밸런서를 생성해야한다. 로드밸런서 설정은 따로 빼서 설명하겠다.
위에 요놈을 설정하기위한 로드 밸런서 설정을 하러 가준다.
로드 밸런서 -> 로드 밸런서 생성 -> Application Load Balancer로 생성
이름을 정해주고
아까 태스크 정의 네트워킹 부분에 설정한대로 VPC와 서브넷을 설정해준다
대상 그룹도 설정해준다.
ALB는 로드 밸런서를 만들어서 그 대상에 대해 조정해야하는데, 아직 컨테이너를 띄우지 않았으므로 대상이 존재하지 않는다. 때문에 지금 지정하는 대상그룹은 나중에 삭제할 가짜 대상 그룹이다.
IP주소 선택후, 기본값으로 둔채 생성해둔뒤, IPv4주소를 입력하고(아무렇게나 입력하면 된다.) 그룹을 생성해준다.
로드밸런서로 돌아가 만든 대상그룹 선택
이제 로드 밸런서를 생성해 준다
서비스 생성으로 돌아가기 전에 생성한 로드 밸런서로 들어가서 아까 만들어준 가짜 리스너와, 대상그룹을 삭제해주어야한다
여기까지 했다면 우린 클린한 상태의 로드밸런스를 만든것이다!!
이제 이 로드 밸런서를 서비스에 붙이면서 타겟 그룹을 우리 컨테이너로 연결하면 된다.
서비스 생성으로 돌아가자.
만든 클린한 로드 밸런서를 선택해준다.
이제 서비스 자동 크기 조정란에서 최소, 최대 태스크개수 등을 설정할 수 있다
이제 생성하기!
하.. 두번째 시도도 실패다
하지만 같은 수강생분의 정리를 통해 ECR배포에 한걸음 더 다가가게 되었고
배포시에 지정했던대로 태스크가 두개로 나뉘어서 배포되는것까지 확인할 수 있어서 행복했다.
다음이 시간이 되면 다시 도전해서 새로운 글로 정리하겠다.
많은 것을 배웠습니다, 감사합니다.