CI\CD/CI\CD 종합

CI/CD - EC2에 서버 배포

hustle_D 2025. 10. 3. 17:25
반응형

Express Server EC2에 배포하기

먼저 EC2 인스턴스로 접속을 하고 sudo su로 root 계정으로 변경해주자.

그리고 아래 명령어를 통해서 Node.js를 설치하도록 하자

$ sudo su
$ apt-get update && /
apt-get install -y ca-certificates curl gnupg && /
mkdir -p /etc/apt/keyrings && /
curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && /
NODE_MAJOR=20 && /
echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list && /
apt-get update && /
apt-get install nodejs -y

 

 

node -v를 통해서 node.js 설치 확인을 해주고

그리고 디렉터리를 하나 추가해주고

해당 디렉터리로 들어간 다음에 npm init을 통해서 npm 프로젝트 하나 생성하자.

(내용은 추가적으로 이런 저런거는 기본적으로 설정하자)

보면

package.json이 생긴걸 알 수 있다.

여기에 npm install express dotenv 명령어를 통해서 express랑 dotenv를 추가해주고

 

vim server.js로 파일을 생성해주고

그리고 추가로 vim .env으로 .env파일을 생성해주고

이렇게 express 서버를 간단하게 생성해주자.

 

이건 /(루트)로 접근하면 우리가 작성한 .env에 있는 설정을 가져와 응답을 주는 간단한 서버이다.

 

sudo npm i -g pm2를 입력해서 프로세스를 관리해주는 프로그램을 설치하고 sudo pm2 start server.js

켜져 있는 상태에서 ec2의 80번 포트로 접근하면 아래처럼 서버가 실행되어 있는 상태를 확인할 수 있다.

 

사실 이건 배포라기보다는 운영 환경에서 직접 개발한거나 다름 없지만 저작권으로 인해서 이렇게 하는 걸로 알아두자

 

이제 EC2를 비용이 안나가게 종료하도록 하자.

먼저 인스턴스 상태에서 인스턴스 중지를 눌러주고 

나오는 화면에보면

이 탄력적 IP를 종료하지 않으면 요금이 나갈 수 있다라고 알리는 것을 볼 수 있다

그래서 인스턴스를 종료하면 동시에 탄력적 IP를 릴리즈 해줘야만 한다.

인스턴스가 종료되면 

여기 IP를 선택해주고

탄력적 IP 주소 연결 해제를 선택을 해주고 탄력적 IP 주소 릴리즈를 선택을 하면 

이렇게 탄력적 IP가 삭제된 것을 볼 수 있다.

 

이렇게 종료해주면 안전하게 비용이 나가지 않게 인스턴스를 종료할 수 있게 된다.

반응형