코드스테이츠 백엔드 부트캠프 73일차 - [Cloud] 운영 환경 구성2

wish17·2023년 3월 30일
0
post-thumbnail

테스트용으로 한거라 최대한 간력하게 적었습니다.
(db 생성등 과정에서 각 옵션들은 경우에 따라 쓰는게 다르고 너무나 많기 때문...)

클라이언트 배포[aws] - S3

정적 웹 사이트 호스팅 과정

  1. 구현이 완성된 정적 웹 페이지를 빌드
  • 클라이언트 프로젝트 파일에 npm install 명령어를 이용해 의존성 모듈 설치

  • 환경변수 설정

    • .env 파일에 REACT_APP_API_URL=http://~~EC2인스턴스 주소~~ 입력
  • npm run build 명령어 입력해서 빌드

  1. 빌드 과정이 끝나면 S3 대시보드에 접속하여 버킷을 생성하고, 생성한 버킷을 정적 웹 사이트 호스팅 용으로 구성
  • s3 메인화면 접속

  • 버킷 선택

  • 정적 웹 사이트 호스팅 활성화로 변경

  1. 빌드된 정적 웹 페이지를 버킷에 업로드
  • 객체 업로드(build 폴더 안에 포함된 내용을 업로드)

  1. 퍼블릭 액세스 차단 설정을 해제 및 정책 생성
  • 퍼블릭 엑세스 차단 설정 변경

  • 버킷 정책 편집

생성된거 붙여넣으면 끝
(ARN뒤에 /* 붙여야 됐음)

AWS DB 연결방법

RDS 인스턴스 연결

  1. RDS 인스턴스 생성

  • 데이터베이스 생성 누르고 원하는 옵션에 따라 만들면 됨.
  • DB 디폴트 포트번호 3306으로 설정 됨. 만들면서 이런거 수정 가능
  1. DB 연결
  • 1번에서 생성한 DB 선택하고 연결&보안 텝에서 엔드 포인트 확인 가능.
  • TMI로 mysql명령어 안먹길래 이것저것 해보다가...뭔가 잘못 건드려서 재설치하기로 마음먹었는데 이것도 잘안돼서 MySQL 비밀번호관련 오류 때문에 6시간 날렸다...

터미널에서

mysql -u [마스터 이름] --host [엔드 포인트 주소] -P 13306(포트 번호) -p 입력하고 엔터

비밀번호입력하면 연결 끝

show databases;를 통해 연결 확인 가능


서버 환경 설정

(애초에 미리 수정하고 EC2에 올리는게 편할거임)

다시 EC2 인스턴스 터미널 열고 application.properties 파일에 환경 변수 설정했다.
$ nano src/main/resources/application.properties

  • spring.datasource.url 변수에서 {}부분에는 AWS RDS '엔드포인트 주소:포트'가 들어가야 한다.

    • 복붙하다가 포트번호 붙이는거 까먹지 말자.
  • spring.datasource.username 변수에는 AWS RDS Mysql 마스터 사용자 이름을 넣는다.

  • spring.datasource.password 변수에는 AWS RDS Mysql 마스터 암호를 넣는다.

  • config.domain 에는 AWS S3 Endpoint 주소를 넣는다. 해당 부분에는 꼭 앞에 http:// 가 포함되어야 한다.

    • CORS 설정을 위해 통신할 클라이언트의 도메인 입력이 필요하다.

이제 다 했으면 java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar와 같은 방식으로 다시 서버 실행하고
(미리 만들어둔 Shell script도 ./restart.sh명령어로 가능)

s3 버킷의 엔드포인트 주소로 접속하면 아래와 같이 연결 끝!

0개의 댓글