IT's Jenna

AWS 인스턴스 연결 & 서버 생성 본문

서버배포/aws

AWS 인스턴스 연결 & 서버 생성

developer Jenna 2021. 3. 23. 02:33

이전 포스팅에서 AWS에 인스턴스라는 가상의 컴퓨팅 환경을 만들어 주었다. 이제 해당 환경에 실제 서버를 구축해보자.

 

사용 중인 인스턴스에서 인스턴스 정보를 확인할 수 있다. 인스턴스 연결에 들어가면 SSH 프로토콜을 통해 서버를 생성하는 명령어가 표시되어 있다.

 

<인스턴스에 연결>

1. 키 페어 권한 설정 : 사용자만 키 파일을 읽을 수 있도록 키 페어에 권한을 설정한다.

  • 터미널에서 키 페어를 저장해둔 폴더로 이동후 명령어를 실행한다. 나는 aws라는 폴더에 키 페어를 저장해 두었다.
  • 권한 설정 명령어를 실행한다.
  • 해당 명령어를 실행후에 실제로 표시되는 것은 없지만, 실행 전/후 ls -al로 파일을 확인했을 때 권한이 변경된 것을 확인할 수 있다. 아래 그림에서 파란색으로 표시된 부분이 파일의 권한에 관련된 부분이다.

<인스턴스 권한 설정>

2. 인스턴스 연결

  • ssh 명령어를 통해서 인스턴스에 연결한다.
  • Are you sure you want to continue connecting (yes/no)? : yes를 입력한다.
  • 아래 그림과 같이 초록색으로 ubuntu@ip주소가 나온다면 서버에 알맞게 생성한 것이다.

<인스턴스 실행>

이제 우리는 가상의 컴퓨팅 환경에 서버를 새로 만들어주었다. 새로운 환경에서 서버를 생성한 것이기 때문에 해당 서버에는 지금 어떠한 환경 설정도 되어있지 않은 상태이다.

 

따라서 서버를 구동하는데 필요한 node.js를 다시 설치해주어야 한다. 하기 페이지의 installation instruction에서 최신 버전의 os에 맞는 명령어를 가져와서 node.js를 설치할 수 있다 : github.com/nodesource/distributions/blob/master/README.md

 

node.js까지 설치해 줌으로서 우리는 서버를 활용하기 위한 환경설정을 완료했다. 이제 local pc에 생성해두었던 파일을 올리기만 하면 aws에 실제로 구동하는 서버를 만들 수 있게 되는 것이다.

 

ssh가 인스턴스에 연결하는 명령어라면, local pc의 파일을 인스턴스에 복사할 수 있는 scp라는 명령어가 있다. 명령어 사용법은 다음과 같다.

  • scp-i "key pair name" -r /local pc의 서버 코드 파일 주소/ aws에 업로드하고자 하는 위치 정보
  • scp -i "jenna_ec2_keypair.pem" -r /Users/JungeunPyun/Documents/server/ ubuntu@ec2-3-34-178-183.ap-northeast-2.compute.amazonaws.com:/home/ubuntu/server

처음 서버에 접속해서 pwd를 해보면 해당 위치는 /home/ubuntu가 나온다. 여기서 폴더를 나누고 싶다면 mkdir 명령어를 이용해서 폴더를 생성할 수 있다. 위의 scp 명령어도 server라는 폴더 안에 파일들이 복사되도록 하였다. 

 

<서버 경로 설정>

이때 scp 명령어를 사용할 때는 다시 키파일이 있는 폴더로 돌아가서 실행해 주어야 한다. 파일을 복사하기 전에 rm -rf node_modules/ 명령어를 사용해서 node_modules 파일을 삭제해 주어야한다. os가 다르기 때문에 (PC는 맥, 서버는 ubuntu) 모듈을 다시 설치해 주어야 하기 때문이다.

 

<서버 파일 복사>

그리고 다시 서버로 돌아가서 파일이 잘 올라갔는지 확인한다. ls -al로 파일들을 확인했다면 npm i로 모듈을 설치할 수 있다.

모듈 설치가 완료되면 sudo node ./bin/www로 서버를 실행시킬 수 있게 된다. Public DNS를 통해서 들어가면 서버가 실행되는 것을 확인할 수 있다.

 

다만, 여기서 문제는 해당 서버를 실행시킨 터미널을 종료하면 서버도 종료된다는 것이다! 애초에 서버라는 것은 종료되어선 안되기 때문에 이렇게 서버가 종료되는 것을 막아주는 PM2라는 모듈이 필요하다.

 

해당 모듈에 대해선 다음 포스팅에서 다루어 보도록 하겠다.

'서버배포 > aws' 카테고리의 다른 글

AWS - IAM 사용자 추가  (0) 2022.09.15
AWS - S3 생성하기  (0) 2022.09.15
RDS  (0) 2021.03.25
pm2  (0) 2021.03.23
AWS 시작하기  (0) 2021.03.14
Comments