반응형
목차
- 설명하기에앞서 CICD를 위해 시도한 것들
- project에 필요한 files
- Elastic Beanstalk 생성
- CodePipeline 생성
1.설명하기에앞서 CICD를 위해 시도한 것들
- githubaction
- ECR - ECS(EC2) - ALB
Github Action은 사용하기 편했습니다.
marketplace가 존재하여 원하는 flow는 쉽게 찾을 수 있었습니다.
ECR - ECS(EC2)를 활용하여 배포를 했는데 t2-micro(프리티어용) 인스턴스로는 CD를 할 수 없었습니다.
ENI가 최소 3개가 필요한데 t2-micro는 2개만 지원하기 때문에 아무리 soft memory를 줄여도 이를 해결할 수 없었습니다.
fargate를 사용한다면 쉽게 해결할 수 있겠지만 사이드 프로젝트라서 비용부분을 줄이고 싶었습니다.
그래서 요즘 많이 사용한다는 codepipeline을 사용해봤습니다.
AWS의 codepipeline은 github뿐 아니라 다른 repository에서도 코드를 참조할 수 있었습니다.
elasticbeanstalk는 Paas로 생각보다 좋았습니다.
제가 코드에 집중할 수 있는 환경을 만들어주었습니다.
2. project에 필요한 files
1) Procfile
프로젝트 root에 Procfile을 만들어주세요
web: npm run deploy
2) buildspec.yml
프로젝트 root에 buildspec.yml을 만들어주세요
version: 0.2
phases:
install:
commands:
- 'npm ci'
build:
commands:
- 'npm run build'
artifacts:
files:
- '**/*'
3) package.json
package.json의 scripts부분에 해당 deploy명령어를 추가해주세요
"scripts": {
...
"deploy": "npm ci && npm run build && npm run start:prod"
}
반응형
'개발 > AWS' 카테고리의 다른 글
AWS Codepipeline-Elasticbeanstalk-free tier 자동 배포(3) (0) | 2022.02.22 |
---|---|
AWS Codepipeline-Elasticbeanstalk-free tier 자동 배포(2) (0) | 2022.02.22 |
EC2 Ubuntu 20.04 password 설정 (0) | 2021.01.20 |