서버는 ec2 배포,
클라이언트는 amplify 배포를 해보았다.

amplify는 서버리스라 기존에 있는 서버를 배포할 수는 없음. 따라서 서버는 따로 배포해야 됨


배포는 처음해보는데 클라이언트 도메인 때문에 cors 문제가 계속 생겼다.
우선, 서버에서 클라로 쿠키를 전송할 수 없기에 로그인 로직을 새로 작성하고, 클라에서 서버의 api를 호출할 때도 localhost가 아닌 IPv4주소를 입력해야 하기 때문에 수정할 사항이 많았다. 그것도 모르고 계속 에러나서 하나하나 수정하는 과정이 너무 오래걸렸다. 또한, db도 rds로 배포했었어서 인바인드 규칙을 설정해 줘야했고, 인스턴스, rds, amplify 등 모든 aws 작업을 모두 다른 리전에서 생성했었다. 이것때문에 배포 후 속도가 현저히 늦었고, 다시 새로 만들거나 스냅샷, 이미지 등으로 리전하는데 비용이 청구되었다! (험난하게도) 의외였던 건 node를 사용해서 그런지 ec2로 서버를 배포하는 게 생각보다 쉬웠다. 스프링으로 하면 개어려울 듯



EC2 서버 배포

iam 계정 만들어서 ec2, amplify, ssh 권한 부여 후 작업하기! (루트 계정으로 하면 안됨)

✔️ ec2 : aws에서 제공하는 클라우드 컴퓨팅 서비스. 가상 컴퓨터



인스턴스 생성

중요 : 지역은 반드시 서울에서 만들어줍시다! 다른 지역에 생성할 경우 이전 비용 듦

인스턴스 유형은 t2.micro를 선택

키페어는 새로 생성

ssh는 모든 트래픽 허용선택

인스턴스가 생성되었습니다!





ssh 연결

ssh -i "~/jinakeypare.pem" ec2-user@"IPv4주소"

터미널에 입력 후 위와 같은 화면이 나오면 접속 성공!



배포

이제 서버 코드를 압축해서 바탕화면에 위치시킨 후

일반 터미널에 아래와 같이 입력

scp -i "키페어 경로" /Users/leejina/Desktop/server.zip ec2-user@"IPv4주소":~/

이후 ssh에 접속하여 압축을 해제

unzip server.zip

압축해제가 성공

이제 cd로 서버코드에 들어간 후 npm update를 해주고 node server.js로 서버를 실행해주면

아래와 같이 서버가 구동됨

이제 퍼블릭 IPv4:포트번호 로 접속하면 서버가 잘 실행된 것을 확인

이전에 rds, redis, 인스턴스 규칙 등 맞춰줘야 할 것이 많았지만 기존에 있는 자료가 많기 때문에 생략






Amplify 클라이언트 배포

서버를 배포했으니 이젠 클라이언트 차례입니다

GitHub선택

리포지터리, 브렌치를 선택한 후 폴더구조상 클라이언트 폴더가 my-app 하위 디렉토디레 있었기 때문에 경로를 맞춰주기

따로 설정할 건 없었고 라이브 패키지 업데이트에 next.js를 추가

이제 마지막 단계!

조금만 기다리면 배포가 성공됨






배포한 결과

배포한 클라이언트에 접속하면 로컬에서 실행했던 환경과 동일하게 반영된 것을 볼 수 있음

로그인이나 검색기능 등 잘 적용되었다!




profile
이것저것 개발 블로그

0개의 댓글

Powered by GraphCDN, the GraphQL CDN