AWS EC2로 백엔드 배포하기

Kim-DaHam·2023년 6월 2일
0

Server

목록 보기
8/10
post-thumbnail

🔥 학습목표

  • AWS EC2를 사용하여 백엔드 서버를 배포할 수 있다.

🟩 AWS 백엔드 배포하기

🟣 EC2(Elastic Compute Cloud)

AWS에서 제공하는 클라우드 컴퓨팅 서비스. AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것.

⬜ 클라우드 컴퓨팅?

  • 클라우드 컴퓨팅은 인터넷(=클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공한다.

⬜ Elastic = 유연한, 신축성 있는

  • 사용한 만큼 비용을 지불한다.

  • 사용자의 용도에 따라 다양한 운영체제, CPU, RAM, 용량 등을 구성할 수 있다.

  • 빌린 컴퓨터는 데이터센터에 만들어져 있기 때문에, 결제하는 순간 네트워크(인터넷)를 통해 바로 컴퓨터를 제어할 수 있다.


⬜ Instacne

  • AWS에서 빌리는 컴퓨터 1대를 의미하는 단위.

  • AWS를 통해 컴퓨터를 빌리는 것을 "인스턴스를 생성한다." 라고 말한다.


⬜ AMI(Amazon Machine Image)

  • 소프트웨어 구성이 기재된 템플릿

  • 운영체제, 런타임 등 템플릿을 설정하여 자신의 인스턴스 PC 환경을 구성한다.



🟣 배포하기

⬜ 배포 순서

  • EC2 콘솔을 통해 EC2 인스턴스를 생성한다.

  • 간단한 서버 애플리케이션을 생성하고 EC2 인스턴스 코드를 배포한다.

  • 서버를 실행시키고 브라우저에서 서버에 접속한다.


⬜ AWS EC2 접속

  • 제공받은 AWS IAM 계정으로 AWS에 로그인을 한다.

  • 지역을 서울로 맞춘다.

  • (EC2는 미리 생성되어 있고) 검색창에 EC2를 검색해서 EC2대시보드로 이동한다.

  • 인스턴스를 연결한다.

  • Session Manager를 이용해 인스턴스에 접속하면 아래 화면과 같이 웹 브라우저 환경에서 인스턴스 컴퓨터의 터미널이 실행된다.

아래 명령어를 사용하여 터미널을 bash로 변경한다.

$ bash
$ cd ~

⬜ 인스턴스 환경 구축하기

  • 패키지 매니저가 관리하는 패키지 정보를 최신 상태로 업데이트 한다.
$ sudo apt update

  • nvm을 설치하고 버전을 확인한다.

🎁 설치하는 방법

먼저 아래 명령어를 입력하여 nvm에 대한 install script를 다운 및 실행해야 한다.

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh | bash

그 다음 아래 명령어로 profile file을 만들어준다.

$ source ~/.bashrc

vi 편집기로 해당 파일에 들어간 뒤 nvm을 로드하는 아래 코드를 추가해준다. vi 편집기는 i 버튼으로 수정 모드에 들어가고, 수정을 완료한 뒤에는 esc 키를 눌러 모드를 나간 뒤 :wq 명령으로 저장 및 종료한다.

vi ~/.bash
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm

nvm 버전을 확인해보면 잘 설치되어있다는 걸 알 수 있다.

$ nvm -v

  • node.js 를 설치한다.
$ nvm install node

  • npm을 설치한다.
$ sudo apt install npm

⬜ Git SSH 등록하기

CLI 환경에서 다른 PC에 접속하기 위해서는 사용자 인증이 필요하다. github은 ssh 공개키(비대칭키 중 하나)를 등록할 수 있다.

  • 다음 명령어로 SSH 키를 생성한다.
$ ssh-keygen

ssh-keygen 명령어는 경로 ~/.ssh./에 두 개의 파일 id_rsaid_rsa.pub 을 생성한다.

이 두 파일을 ssh 키 페어라고 하며

id_rsa.pub 은 누구에게나 공개해도 되는 공개키(Public Key)

id_rsa 는 개인만이 보관해야 하는 개인키(Private Key), 비밀키(Secret Key)라고 한다.


  • 두 개의 키를 받았다면 다음 명령어를 통해 공개키를 복사한다.
$ cat ~/.ssh/id_rsa.pub

  • Github > 상단 프로필 클릭 > Settings 진입

  • 내비게이션 바에서 SSH and GPG keys 클릭

  • SSH keys에서 New SSH key 버튼 클릭.

  • SSH 공개키를 구분할 만한 타이틀을 작성하고 복사해둔 공개키를 붙여넣는다.


⬜ 서버 코드 클론하기

  • 홈 디렉토리로 이동한다.
$ cd ~
  • Github에서 백엔드 서버 코드가 저장된 레포지토리의 SSH 링크를 복사한 뒤 클론한다.
$ git clone (SSH 링크)

  • 정상적으로 클론 했는지 검사한다. 클론한 코드 폴더명이 존재하면 다운로드가 잘 된 것이다.
$ ls

  • 프로젝트 코드 안 server 폴더로 이동한다.
cd (프로젝트 폴더)/(서버 폴더)

  • 코드에 필요한 모듈을 다운로드 한다.
$ npm install

⬜ 서버 실행하기

  • 이제 서버를 실행시키기만 하면 된다!! 1024 아래의 포트번호를 이용해서 서버를 실행하려면 관리자 권한이 필요하기 때문에 관리자 권한 명려어를 입력해야 한다.
$ sudo npm start

⬜ EC2 인스턴스의 IP 주소로 접근하기

생성한 인스턴스를 클릭하면 두 가지 형태의 주소를 확인 할 수 있다. 둘 다 형태만 다를 뿐 똑같은 주소지만 IPv4 DNS 주소를 사용하여 접속해본다.

정상적으로 작동한다면 아래 화면과 같이 GET 요청이 잘 이루어진 걸 볼 수 있다.



profile
다 하자

0개의 댓글