[AWS] EC2, S3, RDS를 활용한 Full Stack Application 배포하기

sunn·2022년 3월 28일

AWS

목록 보기
1/1

1. 서버 배포 (EC2)

  1. EC2 콘솔을 통해 EC2 인스턴스를 생성해야 합니다.
  • 키 페어 파일의 경로로 이동해서 1번 과정을 통해 소유자만 접근할 수 있도록 권한 수정을 해준다.
  • 파일 권한을 수정했다면 SSH 접속 명령어(2번)를 통해 인스턴스에 접속할 수 있다.

    SSH 접속 성공

인스턴스 생성 Reference

  1. 간단한 서버 애플리케이션을 생성하고 EC2 인스턴스에 코드를 배포해야 합니다.

  2. 서버를 실행시키고 브라우저에서 서버에 접속할 수 있어야 합니다.

  • 인스턴스에 개발 환경 구축하기(Ubuntu)
sudo apt update		// 패키지 매니저 업데이트    
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash		// nvm 설치
source ~/.bashrc	// 리눅스에서 .bashrc 파일 수정 후에는 반드시 다시 로그인 해야 적용 되는데, 해당 명령어 실행 시 터미널 종료 없이도 적용 가능
nvm install node	// node.js 설치
sudo apt install npm	// npm 설치
  • 구축 이후, git을 통해 서버 코드 클론 받고 server npm install 하기

  • err_connection_timed_out 오류가 나는 경우,
    보안그룹 -> 인바운드 규칙 수정을 통해 연결할 포트 전체 오픈하기

  • 브라우저 서버 접속 성공 화면

2. 클라이언트 배포 (S3)

  1. S3 콘솔을 통해 버킷을 생성해야 합니다.
  1. 클라이언트 파일을 빌드하고 결과물을 버킷에 업로드해야 합니다.
  • 빌드에 앞서 환경변수에 담긴 서버 주소에는 반드시 'http://' 나 'https://' 를 포함해야 합니다.
  • Client로 이동 후 npm run build 입력
  1. 정적 웹 호스팅 기능을 이용하여 클라이언트 코드를 배포해야 합니다.

    클라이언트 배포 성공

3. 데이터베이스 연결 (RDS)

  1. RDS 콘솔을 통해 RDS 인스턴스를 생성해야 합니다.
  1. 로컬 터미널 혹은 EC2 인스턴스가 실행되고 있는 터미널을 통해 RDS 인스턴스에 연결해야 합니다.
  • MySQL을 통해 DB 인스턴스에 접속하기
mysql -u 마스터 이름 --host RDS 엔드 포인트 주소 -P 13306(포트 번호) -p
Enter password:  마스터 비밀번호

입력 후 연결된 화면

  • 서버 코드에 저장된 .env 파일에 환경 변수 설정하기
    EC2 인스턴스에서 실행하고 있는 서버를 종료한 후,
    server 디렉토리의 환경변수(.env) 파일을 알맞게 수정하기

    DATABASE_HOST 변수에는 생성한 DB 인스턴스의 엔드포인트 주소를 넣습니다.
     DATABASE_USER 변수에는 마스터 사용자 이름을 넣습니다.
     DATABASE_PASSWORD 변수에는 마스터 암호를 넣습니다.
     DATABASE_PORT 에는 DB 인스턴스의 port 번호를 넣습니다.
  • 환경변수 설정 완료 후 sudo npm start 또는 authbind --deep pm2 start app.js를 통해 프로세스 시작하기

데이터베이스 연결 성공 화면


profile
:-)

0개의 댓글