EC2란 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스다. 클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스다. 즉, 아마존에서 가상의 컴퓨터를 한 대 빌리는 것과 같다.
EC2는 컴퓨터를 한 대 빌리는 것이므로 컴퓨터로 할 수 있는 모든 일을 할 수 있다. 빌린 컴퓨터는 직접 사용하는 컴퓨터와 다르게 아마존이 전 세계에 만들어 놓은 데이터 센터(인프라)에 만들어져 있기 때문에 컴퓨터를 조작하기 위해 네트워크(인터넷)를 통해 컴퓨터를 제어해야 한다는 차이점이 있을 뿐 일반적인 컴퓨터와 다른 점은 없다.
아마존 EC2를 통해서 할 수 있는 가장 기본적인 일은 웹서버를 설치하고 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 서비스를 제공하는 것이다. 인스턴스는 1대의 컴퓨터를 의미하는 단위이고 AWS에서 컴퓨터를 빌리는 것을 인스턴스를 생성한다고 한다.
인스턴스 시작 이 예시에서는 Ubuntu 18버전으로 인스턴스를 생성할거다.
우리는 돈이 부족한 취준생이니까 프리티어로 만들어준다. 참고로 EC2 프리티어는 월 750시간에 대해 과금이 없는데 프리티어 인스턴스를 2개 만들어서 24시간 31일 돌리면 24 31 2 = 1488시간이 되어서 무료에 해당하는 750시간을 제외한 738시간에 대해 과금이 청구된다. 2개를 돌리고싶다면 12시간씩 / 3개를 돌리고싶다면 8시간씩 시간을 줄여서 돌리거나 인스턴스별로 시간분배해서 750시간만 넘기지 않는다면 인스턴스를 여러개 만들어도 상관은없다.
아래에 검토및 시작을 누르고 시작하기를 누르면
인스턴스에 연결할 때 사용 할 키 페어 다운로드 하는것이 나온다 이름을 지어주고 키 페어를 다운로드 해준 다음 인스턴스 시작을 누른다.
다운로드 한 파일은 SSH 통신을 위한 키 페어 중 프라이빗 키가 기록된 파일이다. 해당 키 페어 파일은 EC2 인스턴스에 연결을 할 때 사용하는 암호가 담긴 파일이다. 따라서 pem 파일은 관리에 유의해야 한다.
인스턴스가 실행 중으로 바뀌고 이제 연결을 해볼 차례이다.
SSH 연결을 이용해볼건데 터미널에 좀 전에 다운받았던 .pem 파일이 있는 경로에서 chmod 400 [name].pem으로 권한을 먼저 수정해준다.
그 후 아래 ssh -i "yeollin.pem" ubuntu@ec2-52-79-227-43.ap-northeast-2.compute.amazonaws.com 명령어를 통해 인스턴스에 접속이 가능할 것이다.
처음 접속할 때 경고메세지가 나타나는데 해당 메시지는 EC2 인스턴스에 처음 접속할 시 나오는 경고 메시지다. 'yes'를 입력하여 다음 과정으로 넘어간다.
위와같이 나오면 SSH 프로토콜을 이용한 원격접속이 성공적으로 됐다. 이제 명령어를 통해 AWS에서 빌린 가상PC를 사용 할 수 있다.
EC2 인스턴스를 생성하는 것은 가상 PC 한 대를 임대하는 것이고, 컴퓨터 운영체제를 처음 구입하면 필요한 프로그램을 설치해야 하듯이, EC2 인스턴스에 처음 접속하면 서버를 구동하는 데 필요한 개발 환경을 구축하는 것부터 시작해야 한다.
패키지 매니저가 관리하는 패키지의 정보를 최신 상태로 업데이트하기 위해서 아래 명령어를 사용한다.
$ sudo apt update
업데이트 과정이 끝나면 nvm, node.js를 설치해야 한다. nvm 설치는 NVM GitHub 페이지의 Install & Update Script 부분을 참조하여 진행한다.
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
$ source ~/.bashrc
설치 과정이 마무리되면 터미널에 nvm --version 명령어를 입력하여 nvm 설치가 정상적으로 끝났는지 확인한다.
다음으로는 node.js를 설치한다
$ nvm install node
node.js의 설치가 끝나면 npm 명령어가 정상적으로 입력되지 않는 상황을 방지하기 위해 터미널에
$ sudo apt install npm
명령어를 입력해서 npm 설치를 진행한다. 위 과정이 모두 끝나면 node.js 기반 서버를 실행하는 데 필요한 개발 환경 구축이 완료된다.
배포할 서버가 들어있는 깃헙 레포지토리 주소를 복사하고, git clone 명령어를 통해 EC2 인스턴스에 해당 프로젝트 클론을 받는다.