본문 바로가기
백엔드

[윈도우] AWS EC2인스턴스 생성 및 서버 배포(Nginx, PM2),403 forbidden 해결 방법

by 하_영 2023. 5. 25.

AWS에서 EC2 인스턴스 생성합니다.

이름을 적고 원하는 운영체제 선택

 

프리티어 사용가능으로 된 인스턴스로 사용

 

 

윈도우에서 인스턴스에 접근하기 위해서 PuTTY를 사용하는데 이 PuTTY로 인스턴스에 접근할때

키페어의 경로가 사용되기때문에 키페어를 잘 보관해야합니다.

 

키페어의 이름을 key-value와 같이 입력하고 프라이빗 키 파일 형식에서는 PuTTY로 사용하기 위해 .ppk를 선택합니다.

 

네트워크를 선택하고

 

 

인스턴스 시작을 누르면 인스턴스가 생성됩니다.

 

인스턴스를 생성하면 IPv4 퍼블릭 IP에서 ip주소를 확인할 수 있습니다.

 

이제 PuTTY를 사용해서 인스턴스에 접근합니다.

먼저 PuTTY를 다운로드하고 설치합니다.

 

PuTTY Key Generator를 사용하여 새 키페어를 생성합니다. 이를 위해 "Start" 버튼을 클릭하고 "PuTTY Key Generator"를 선택합니다. "Generate" 버튼을 클릭하여 새 키페어를 생성하고, "Save private key" 버튼을 클릭하여 키페어를 저장합니다.

 

 

 

AWS 콘솔에서 EC2 인스턴스의 Public IP 주소 또는 DNS 이름을 확인합니다.

PuTTY를 실행하고, "Session" 카테고리에서 "Host Name (or IP address)" 필드에 EC2 인스턴스의 Public IP 주소 또는 DNS 이름을 입력합니다.

 

 

 

"Connection" 카테고리에서 "Data" 아래의 "Auto-login username" 필드에 사용자 이름을 입력합니다. 기본적으로 EC2 인스턴스에서는 "ec2-user"를 사용합니다.

 

 

"Connection" 카테고리에서 "SSH"를 선택하고, "Auth" 아래의 "Private key file for authentication" 필드에 이전에 생성한 키페어 파일의 경로를 입력합니다.

 

 

 

"Session" 카테고리에서 "Saved Sessions" 아래에 원하는 이름으로 새로운 세션을 저장합니다.

"Open" 버튼을 클릭하여 SSH 연결을 시작합니다.

PuTTY 창이 열리면 "login as"와 같은 메시지가 나타납니다. 이 경우, EC2 인스턴스에서 사용하는 사용자 이름을 입력합니다.

SSH 연결이 성공적으로 수립되면 터미널에서 EC2 인스턴스에 필요한 명령을 실행할 수 있습니다.

 

 

 

원하는 경로에 코드를 클론합니다.

 

 

 

Amazon Linux 2에서는 다음과 같은 명령어로 Nginx를 설치할 수 있습니다.

sudo yum install nginx

 

Nginx를 구성파일인 /etc/nginx/nginx.conf 로 들어가서 nginx를 구성합니다.

 

 

 

서버의 루트 디렉토리와 포트를 설정합니다 여기선 클론받은 front-end 디렉토리를 루트파일로 지정했습니다.

아래의 명령어를 사용해서 nginx를 시작시킵니다.

sudo systemctl start nginx

 

이제 ec2의 ip주소로 접속하면 403 forbidden 에러가 뜹니다.

이 에러는 권한때문에 생기는 에러로 아래의 명령어를 사용해서 접근해야하는 디렉터리에 권한을 주어햐 합니다.

sudo chmod 755 /home/ec2-user

 

다시 nginx를 재시작하면 서버가 제대로 실행된 모습을 확인할 수 있습니다.

sudo systemctl restart nginx

 

여기서PM2를 사용하면 nginx를 계속해서 켜둘수가 있는데 아래의 명령어로 설치할 수 있습니다.

sudo npm install pm2 -g

 

PM2 실행

PM2 start npm — start

이제 서버를 끊고 나와도 자동으로 서버를 사용할 수 있게 됩니다.