최근 AWS스터디를 시작하며 배운내용을 간략하게 정리해기로 하자. Ec2에서 Node.js 서버를 띄우기 위한 세팅하기를 해보자. 참고로 내가 밑에 말한거 외에 만진건 아무것도 없음!
EC2 생성하기
- AWS 홈페이지의 EC2 인스턴스에 들어가 오른쪽 상단의 '인스턴스 시작' 을 누른다.

2. 인스턴스 시작 페이지에서 AMI를 고른다. 나는 Ubuntu로 설정을 했다.

3. t2.micro 설정, 새 키 페어를 생성, 네트워크에서는 모두 체크를 해주었다.

새 키페어 생성은 이름을 내가 하고싶은 이름으로 정해주고, 유형은 RSA, 프라이빗 키 파일 형식은 .pem으로 하자. 그리고 키 페어 생성 후 위치를 잘 알아두자!

4. 마지막으로 스토리지 구성은 8GIB로 하고 고급 세부정보는 하지 않았다. 그리고 맨 아래에 인스턴스 시작을 눌러주면 다음과 같이 내가 만든 인스턴스가 실행 된다.

새 키페어를 사용해 ubuntu로 접속해보기
- 만든 인스턴스를 클릭하고 상단에 '연결'을 클릭해본다.


2. 맥 기준에서 터미널을 열고 새 키페어를 다운받은 경로로 먼저 이동을 해준다.
나는 다운로드에 받았기에 터미널에서 다운로드로 이동했다. 그리고 위의 사진 맨 마지막 예시로 나와 있는 명령어를 복사해 붙여넣어준다.

3. ubuntu 로 접속을 완료했다. 처음 하는 분들은 yes/no가 뜰텐데 그냥 yes를 눌러주면 된다.

Node.js 세팅하기
ubuntu에 Node.js를 설치하기 위해 아래와 같은 명령어를 차례대로 입력해준다.
$ sudo apt-get install curl
$ curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
$ sudo apt-get install -y nodejs
$ sudo apt-get install build-essential
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
$ export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"
$ nvm install --lts
$ npm install -g yarn
차례대로 명령어를 입력하면 아래와 같이 node가 설치된 것을 알 수 있다.

ubuntu 에서 서버 띄우기
- ubuntu 자체에는 git은 깔려있으므로 간단하게 실습하기 위해 AWS 파트장님의 깃을 클론해왔다.
git clone "클론할 코드"

- clone 후 app.js 를 실행시키기 위해 디렉토리로 이동했고, 그 다음 node 명령어를 사용해 app.js를 실행시켰다. 아무것도 뜨지 않지만 실행이 된 것 이다.

- 그리고 서버를 띄워보기 위해서 AWS 홈페이지의 인스턴스에 들어가보면 아래에 퍼블릭 IPv4 주소가 있는데 이를 복사 하고 app.js의 포트 5000번을 입력해본다. 아래와 같이 성공한 모습을 볼 수 있다.


- 사실 여기서 'IPv4:포트번호'를 입력해도 들어가지지 않는 분이 계실텐데 그 이유는 포트 5000번에 대한 방화벽을 설치를 해주지 않았기 때문이다.
처음 EC2 생성하기 3번에서 http와 https를 설정을 해주었는데 포트 5000번에 대한 방화벽을 설치해주기 위해서는 콘솔 창의 보안 -> 보안그룹을 클릭해준다.

- 보안그룹에 들어가면 인바운드 규칙이 있는데 우측의 인바운드 규칙 편집을 클릭한다.

- 규칙 편집에서 사용자 지정 TCP > 포트 범위 5000 > Anywhere-IPv4로 설정 후 규칙 저장을 한다.

- 다시 'IPv4:포트번호' 를 입력하면 성공한 모습을 볼 수 있다.
