TIL | <AWS> EC2 배포하기

bubblegum·2024년 1월 23일
0

Today I learn(TIL)

목록 보기
15/84
post-thumbnail

AWS EC2 Instance 생성

EC2 Instance 생성

회원가입과 로그인

  1. AWS 회원가입 후 Region(ap-northeast-2)을 선택한다.
    인스턴스(Instance) : 컴퓨터 하나의 단위

Instance 생성하기

  1. EC2 서비스 페이지로 이동한다.
  2. 왼쪽 메뉴에서 “인스턴스” 를 눌러 아래 페이지로 이동합니다.
  3. 우측 상단에 있는 주황색 “인스턴스 시작” 버튼을 눌러 아래 페이지로 이동합니다.
  4. 애플리케이션 및 OS 이미지(Amazon Machine Image)에서 Ubuntu를 선택하고, Ubuntu Server 22.04 LST(HVM)-프리티어 사용 가능을 선택한다(무료일 가능성이 높음). 아키텍처는 64비트(x86)으로 지정한다.
  5. 인스턴스 유형에서 “프리 티어 사용 가능” 이라고 적혀있는 t2.micro 타입을 선택합니다.
  6. 키 페어(로그인)에서 "새 키 페어 생성"을 선택한다.
  7. 키 페어 이름, 키페어 유형, 프라이빗 키 파일 형식을 설정한다.
  8. "키 페어 생성"을 누른다. 이때 생성된 키 페어 파일이 다운로드 된다.

Instance 시작

  1. 요약 하단에 있는 "인스턴스 시작"을 누른다.
  2. 인스턴스 ID를 선택한다.
  3. 실행된 인스턴스를 확인할 수 있다.

EC2 Instance 종료/삭제

인스턴스 상태에서 "인스턴스 종료"를 클릭하면 인스턴스가 삭제된다.

EC2 Instance 접속하기

AWS에서는 “Security Group” 또는 “보안 그룹”이라는 이름으로 방화벽을 제공하기 때문에 Instance에 접속하기 위해서는 SSH가 필요하다. SSH(Secure Shell)은 다른 접속 방법보다 보안이 뛰어나 일반적으로 다른 컴퓨터에 연결할 때 사용한다. macOS에는 ssh가 기본 설치되어 있어 명령어로 바로 접근이 가능하다.

  1. 키 페어의 접근 권한을 바꿔준다.

    //다운로드 폴더로 접근합니다.
    cd Download
    
    //sparta_keypair.pem 파일의 권한을 읽기만 가능하도록 수정합니다.
    sudo chmod 400 sparta_keypair.pem 
  2. SSH로 접속한다.

    ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피
    
    //예시
    ssh -i sparta_keypair.pem ubuntu@13.125.253.21

Node.js 설치 및 서버 실행시키기

AWS EC2 Instance에 Node.js 설치하기

  1. SSH에 접속한 상태에서 Node.js를 설치한다.

    curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
    
    sudo apt-get install -y nodejs

    여기서, apt(Advanced Package Tool)는 리눅스 운영체제의 대표적인 패키지 관리 도구 중 하나이다. apt-get 명령어는 리눅스 운영체제에서 지원하는 패키지 매니저에서 원하는 패키지를 설치하는 명령이다.

  2. 설치 확인 명령어

    # 설치된 Node.js 버전 확인하기
    node -v
    
    # 설치된 npm 버전 확인하기
    npm -v

서버 프로그램 실행 및 웹사이트 접속하기

EC2 Instance에서 서버 실행

  1. GitHub에 있는 Repository를 Clone한다.

  2. 프로젝트를 실행한다.

    1. cd nodejs-todo-list : 원격 저장소로부터 가져온 프로젝트로 이동합니다.
    2. sudo npm install -g yarn : yarn을 사용하기 위해, 전역으로 yarn을 설치합니다.
    3. yarn : 원격 저장소로 부터 가져온 프로젝트의 의존성 및 패키지를 설치합니다.
    4. node app.js : 프로젝트를 실행합니다.
  3. EC2 Instance IP 복사한다.

  4. 브라우저에 주소를 입력한다.

    http://<복사한IP>:3000

EC2 Instance 포트 설정: AWS 보안 그룹(Security Group)

대여한 EC2 Instance의 방화벽에서 3000번 포트를 막고 있기 때문에 Node.js로 서버를 켜도 접속을 할 수 없다. 따라서 접근이 가능하도록 방화벽을 수정해야 한다.

  1. AWS의 '인스턴스' 페이지에 접속한다.
  2. EC2를 선택하면 노출되는 하단 창에서 ‘보안’ 탭 선택하고 ‘보안 그룹’ 이라는 이름을 가진 링크를 누른다.
  3. '인바운드 규칙 편집' 버튼을 클릭한다.
  4. '규칙 추가' 버튼을 눌러 (유형: 사용자 지정 TCP, 포트 범위: 3000, 소스: Anywhere-IPv4)로 설정한 다음 "규칙 저장" 버튼을 클릭한다.

서버 실행 프로그램 PM2

ssh 접속이 끊기거나 실행중인 Node.js 프로그램을 끄면 웹 사이트에 접속할 수 없다. 따라서 PM2를 사용하여 터미널을 종료하더라도 웹 서버가 실행될 수 있게 만들어야 한다. pm2는 프로세스 매니정 도구로 Node.js를 편하게 관리할 수 있게 도와주는 라이브러리이다.

  1. 리눅스의 관리자 계정으로 전환한다.
    sudo -s
  2. yarn으로 pm2를 설치한다.
    yarn global add pm2
  3. pm2로 app.js를 실행한다.
    pm2 start app.js
  4. 실행된 프로젝트는 다음과 같이 종료할 수 있다.
    pm2 delete 0
    위 명령어를 실행한 뒤 pm2 list를 입력했을 때 프로세스가 존재하지 않다면 성공적으로 종료된 것이다.
profile
황세민

0개의 댓글

관련 채용 정보