[공감병동 프로젝트] 배포(Vercel, AWS)

somin·2021년 12월 18일
1

공감병동 프로젝트

목록 보기
11/12
post-thumbnail

배포를 어떻게 할까 고민을 하다가 클라이언트는 Next.js를 개발한 Vercel을 활용하면 편하다는 이야기를 듣고 Vercel 배포를 결정했다. 서버같은 경우는 함께 프로젝트를 진행한 팀원이 AWS 배포 경험이 있어 EC2를 활용해 진행하기로 했다!

배포에 앞서 데이터베이스는 AWS의 RDS를 활용했는데, 이 역시 팀원이 예전에 열어둔 RDS에 공감병동 DB를 생성해주었다.

Vercel 배포

Vercel 학습 기록
Vercel을 코드스테이츠에서 AWS를 학습하기 전에 간단한 배포 방법으로 짧게 학습한 적이 있다. 특히 Github 레포지토리를 import하고 차근차근 진행하다보면 배포가 바로 완료된다!

코드스테이츠에서 학습했던 것이외에 추가로 작업해준 것은 바로 도메인을 변경해 주는 부분이었다. 공감병동 도메인은 가비아를 통해 구매하였는데, AWS의 Route53에 해당 주소를 넣고 Vercel에서 배포한 IP주소를 연결해줌으로써 마무리하였다!

Vercel 배포는 과정 자체도 간단하고, 자동으로 CI/CD가 구성되기때문에 배포 후 에러를 잡는데에도 너무 편했다. 하지만 문제가 발생하였는데.. 문제점은 회고에 작성해 두겠다.
결국 Vercel을 내리고 EC2를 활용하기로 변경하게 되었다.

AWS 배포

AWS도 코드스테이츠 수업 과정에 포함되어있어 과제를 통해 배포를 해 보았고, 더 나아가 배포 자동화까지 경험해 보았지만 앞선 2번의 프로젝트에선 내가 배포를 맡지 않아 배포 과정에 참여하지 못했었다.

하지만 이번 프로젝트에서는 팀원과 함께 배포를 진행할 수 있게 되었는데, 사실 팀원은 이미 코드스테이츠 파이널 프로젝트에서 배포를 담당한 적이 있었기 때문에 많은 것을 배울 수 있었다.

경험이 있던 팀원 덕분에 이미 열어둔 RDS를 활용해 데이터베이스도 간단하게 올릴 수 있었고, EC2와 로드밸런서 등도 수월하게 생성할 수 있었다.

가장 처음 해준 것은 프리티어로 인스턴스를 생성하는 것이다.
이후 해당 인스턴스에 접속하여 공감병동의 server repo를 클론(git clone)해준다.

그런 다음 vim을 통해 .env를 작성해주고,
웹 서버가 구동 중인 node 프로세스가 종료되지 않도록 pm2로 실행시켜주었다.
(PM2는 node.js로 실행되는 프로그램(프로세스)를 관리해 주며, 백그라운드에서 실행되게 만들 수 있음)

다음으로 EC2에서 8080 포트로 실행되는 http로 타겟 그룹을 설정해준 후 로드 밸런서로 https 연결이 가능하도록 해 주었다.

이후 Route53을 이용해 가비아에서 구입한 도메인을 해당 로드 밸런서를 연결해주면서 서버 배포가 완료되었다.

해당 포스팅에는 보안그룹 설정 등 상세한 내용은 축약하였다. 또한 단순히 배우는 느낌으로 배포 과정에 참여했을 뿐이기에 다음에는 직접 배포까지 진행해 볼 수 있도록 공부해봐야 겠다.

profile
✏️

0개의 댓글

관련 채용 정보