TIL 2021.09.16 AWS 로 배포하기

김동찬·2021년 9월 16일
0

aws

이번 세션에서 배운 내용은 aws를 이용해서 배포를 하는 것을 배웠다.
1. 서버 배포 EC2
2. 클라이언트 배포 S3
3. 데이터 베이스 연결 RDS

EC2 서버

EC2는 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스이다.
클라우드 컴퓨팅은 인터넷을 통해 서버, 데이터 베이스 등의 컴퓨팅 서비스를 제공한다.

쉽게 말하면 아마존에서 가상의 컴퓨터를 빌리는 것이다.

EC2 콘솔을 통해 EC2 인스턴스를 생성하고, 간단한 서버 애플리케이션을 생성 및 EC2 인스턴스에 코드를 배포하였다. 인스턴스 생성하는 법은 aws에도 잘 소개가 되어있다.

SSH프로토콜을 통해서 원격 접속을 해야하므로 키 페어(.pem파일)을 받았다.
키 페어링을 해주고 EC2 인스턴스랑 연결을 해주면 된다.

사진과 같이 pem 파일에 대한 권한을 수정을 해준다.

그리고

ssh -i " pem 주소 " ubuntu@ "인스턴스 주소"

를 입력을 해준다. pem 주소를 입력할시 경로도 적어준다.

이제 인스턴스에서 개발 환경을 구축을 해야한다.

sudo apt update

가상 컴퓨터에 패키지 정보를 최신 상태로 업데이트를 해준다.

nvm install node

그다음 node.js를 이용할거니 설치를 해준다.
node.js의 설치가 끝나면 npm 명령어가 정상적으로 입력 되지 않는 상황을 방지하기 위해서

sudo apt install npm

이라고 입력을 해주면 된다!.

그다음 가상서버에서 프로젝트를 클론을 해주면된다.!!

리눅스로 서버를 구현하였고, sodo npm start 로 서버를 실행을 해주었다.!

인스턴스의 ip주소로 접속을 진행을 하면 긴 로딩 끝에 오류 메세지를 보이는 창이 나온다.
보안 그룹 설정을 진행을 안했기 때문이다.

Security Group

보안 그룹이란 인스턴스로 들어가고 인스턴스로 나가는 트래픽에 대한 가상 방화벽이다.
인스턴스로 들어가는 트래픽은 인바운드, 나가는 트래픽을 아웃바운드라고 한다.

인바운드 규칙은 EC2로 들어오는 트래픽에 대한 규칙이다.
인바운드 규칙에 허용되지 않는 규칙은 인스턴스로 접근하지 못하도록 필터링을 해준다.
EC2 인스턴스를 생성하면 기본적으로 SSH 접속을 위한 SSH 규칙만 있다.

아웃바운드 규칙은 EC2 인스턴스에 나가는 트래픽에 대한 규칙이다.
EC2인스턴스를 생성하면 기본적으로 나가는 모든 트래픽을 허용을 해준다.

S3 클라이언트 배포

정적 웹 페이지를 빌드하는 과정이다.
'빌드(build)'에 대해서 진행을 한다.
빌드란 작성한 코드의 불필요한 데이터를 없애고, 통합 및 압축하여 배포하기 이상적인 상태를 만드는 과정이다. 빌드 과정을 통하여 코드를 담고 있는 데이터의 용량이 줄어들고, 웹 사이트의 로딩 속도가 빨라진다.

빌드를 하기 앞서 환경 변수를 담고 있는 .env파일을 세팅을 해준다.
서버의 주소를 담을때 꼭

http:// & https://를 포함!!

환경 변수 설정을 제대로 하지 못하면 서버에 요청을 제대로 보내지 못하고 정상적으로 응답을 받아 올수가 없다.

클라이언트가 담겨있는 폴더에 진입해서

npm run build

라고 해주면 빌드 폴터가 생성이 된다.!

S3 콘솔을 통해서 클라이언트를 배포를 한다.
버킷이라는 것을 생성을 하게 된다.

버킷에 빌드된 파일을 업로드 해준다.

정적 웹사이트 호스팅 용으로 구성하였다.

그 뒤에 퍼블릭 액세스 차단 해제 및 정책을 생성해 주면된다.

여기서 스프린트는 서버를 배포하면 로그인 구현화면이 나온다.

여기서 로그인을 진행할시

이러한 화면이 나와야 한다.

하지만 진행 중 안넘어가서 하루종일 원인을 찾았다.

해결방법.

일단 .env 파일의 환경 변수를 살펴보았다.
주소를 도 잘입력햇다... 페어분한테 도움을 구했다. 주소코드를 복사하는데 com/ << 이 /가 아마 줄바꿈? 이런거 때문에 붙었던것 같다. 그래서 2줄이 되어있는 .env 파일을 한줄로 만들었다.
클라이언트 서버 부분 환경변수를 확인을 하였고, EC2에서 클라이언트 부분 내 컴퓨터 클라이언트 부분도 전부
설정을 진행하고 하니..
그래도 로그인 완료가 안된다..
알고보니 환경변수 세팅을 한다고 서버실행을 종료를 한것...
여러가지 삽질을 정말 많이 했다. vscode랑 aws랑 연동해서 가상에 있는 파일을 편집을 하고, 다시 EC2 구성하고.. 인스턴스도 다시 만들고 하루정도 이것 저것 해봣다. ㅋㅋㅋ 정말 바보 같이 서버를 꺼놓고...
하하하하하...

데이터베이스 RDS

데이터베이스 생성은 별로 어렵지 않았다.
RDS를 사용을 한다.
먼저 mysql 데이터베이스 엔진을 사용할 것이므로 DB인스턴스를 생성하고 로컬 환경을 mysql로 세팅하면 된다.
생성을 하고 포트와 마스터 유저정보 부분을 기입하면 된다. 비밀번호 까먹지 말자..
엔드포인트 주소를 받게 되는데 복사 해서

mysql -u [마스터 이름] --host [엔드포인트 주소] -P 포트번호 -p 

라고 치면 패스워드를 요구를 한다. 마스터 비밀번호를 입력하면 끝!

mysql에 접속하여서 show databases; 입력해서 잘 생성됬는지 확인하고 !!

profile
프론트엔드 지망 개발공부를 하는 김동찬입니다 ^^7 코드스테이츠

0개의 댓글