Infra & DevOps/AWS

[AWS][ECS][메모]배포 자동화 과정

용감한 개복치 2022. 4. 2. 22:32

ecs 배포 자동화

 

도커 허브 역할을 하는 ecr에 올려서 그걸 컨테이너 화 시켜서 ecs로 배포하려고한다

그것을 fargate에 올린다. 얘는 ec2랑 비슷한 역할이기 때문에 dns로 들어가면 뜨게된다.

fargate가 일을 하도록 하려면 task definition을 만들고 클러스터와 서비스를 만들어서 그 안에서 돌아가게 한다.

fargate에 들어가려면 로드밸런서를 만들어야하는데, 이게 alb

이걸 다 연결해서 깃 액션으로 묶으려는 자동화를 시도한다.

 

> ecr 만들기

레포지토리 만들기 누르면 뜨는 하라는대로 안내창에 복붙.

이때 태그를 latest로 달아서 올린다.

전부 안내창에 나온대로 복붙만 하면된다.

그러면 ecr 레포지토리에 올라오는 걸 볼수 있음

 

> ecs 만들기

크리에이트 클러스터 네트워크 기준만들기 선택

클러스터 이름 알아서, 그냥 만들기

 

> task definition 만들기

fargate로 만들기 선택, 이름 대충 짓기, 롤 주기,

add container

이름 짓고 ecr에서 해당 부분 uri 들고오기, 포트 몇 번 열지 결정, add, create

 

> 클러스터 안에 서비스 만들기

fargate 선택, 만들어 둔 task definition 선택, 대충 1, 롤링배포 - vpc 선택, 서브넷은 알아서 대충 다 넣으면 됨, alb넣기(따로 만들기)(종류는 필요에 따라, alb), path patter / , 헬스 체크 /, 오토스케일링 안함, 크리에이트,

 

> 로드밸런서 만들기

alb 선택 - 서브넷 다넣고, 시큐리티 그룹 넣고, 타겟 그룹은 대충 만들면됨, 그걸 로드밸런서에 넣기

타겟그룹 만들기, 아이피 어드레스, 이름 대충, 다른설정 다필요 없음.  더미로 타겟그룹 만들고 로드밸런서에서 더미 타겟그룹으로 만들고 시큐리티 그룹에 3000 포트를 추가한다. 모든 사용자 tcp tcp 3000 

> 이러면 서비스에가서 task 확인하면 프로비저닝중

 

> 이 서버가 잘 돌아가는지 확인을 어떻게 하는가????

 

이때 draining 뜨는 이유 백만가지

1. package.json에 실행 명령어에 sudo 있으면 안됨.

2. 로드밸런서의 보안그룹 체크하기

 

git action 오류

1. task definition.json not fullfilled(?) 아무튼 task 어쩌고 파일 필요한데 없다

task definition.json을 본인 vscode 소스코드 안에 같이 넣어줘라

2. 깃헙이 파일의 위치를 못읽을 수 있다. yaml 파일에 타깃하는 파일 경로를 잘 줬는지 꼭꼭 확인하기

 

unhealthy 떴을때

1. 컨테이너가 루프백으로 로컬에서만 서버를 돌고있다.

FASTIFY_ADDRESS=0.0.0.0 추가하기

'Infra & DevOps > AWS' 카테고리의 다른 글

[Serverless]마이크로서비스  (0) 2022.04.06
[ECS] 배포 시 자주 발생하는 실수  (0) 2022.04.04
[AWS][ECS]task definition-service 메모  (0) 2022.04.02
[AWS]Application Load Balancer  (0) 2022.03.30
[AWS]오답 정리  (0) 2022.03.30