[AWS] copilot: ECS 배포해보기

AWS Copilot은 자동화된 인프라 구성을 지원하는 CLI 도구다.

막 terraform처럼 커스텀이 엄청 자유롭거나 한건 아니고, 미리 정의된 템플릿에서 골라쓰는 형식이다.




설치

리눅스는 이걸로

sudo curl -Lo /usr/local/bin/copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-linux \
   && sudo chmod +x /usr/local/bin/copilot \
   && copilot --help

windows는 이걸로 설치할 수 있다.

New-Item -Path 'C:\copilot' -ItemType directory; ` Invoke-WebRequest -OutFile 'C:\copilot\copilot.exe' https://github.com/aws/copilot-cli/releases/latest/download/copilot-windows.exe

깔고, 환경변수도 적절히 저장해서 CLI로 실행되도록 해주면 끝이다.




ECS 서버 생성하기

우선 아래 레포지토리를 clone한다.

git clone https://github.com/aws-samples/amazon-ecs-cli-sample-app.git demo-app

안에는 별건 없다.
Dockerfile만 있다.


init 명령을 사용하고, 앱 이름을 고른다.
그러면 어떤 서비스를 배포할 것인지를 물어본다.
여기서 Load Balanced Web Service를 선택한다.


도커파일 지정하고, 포트 고르고


적절히 답해주면 된다.

다 만들어지면 app ls와 app show 명령을 통해 생성된 앱을 조회할 수 있다.

그러면 ECR과

ECS 클러스터, 서비스

로드밸런서 등이 생성될 것이고

로드밸런서를 통해 접속을 해볼 수 있다.

근데 이게 다다.
CI/CD 같은건 별도로 추가해야 하고, 오토스케일링같은것도 직접 구성해야 한다.
간단하지만, 통합해서 관리하는 느낌은 없다.




정리하기

app delete 명령을 사용하면 삭제가 된다.


참조
https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/AWS_Copilot.html
https://docs.aws.amazon.com/ko_kr/AmazonECS/latest/developerguide/getting-started-aws-copilot-cli.html