본문 바로가기
부트캠프 개발일기/Cloud

73일차: 3 Tier Architecture 배포 실습

by shyun00 2023. 5. 26.

❯ 서버 배포

EC2를 통해 서버를 배포하게 된다.

처음 EC2 인스턴스를 생성하면 우리가 컴퓨터를 새로 샀을때처럼 깨끗한 상태인데, 필요한 개발 환경을 먼저 구축하고 서버를 배포한다.

 EC2 인스턴스에서 Session Manager를 실행하여 bash 쉘, 홈경로(~) 로 이동하여 아래 실습을 진행했다.

패키지 매니저가 관리하는 패키지 정보를 최신 상태로 업데이트 하기 위해 아래 코드를 실행한다.

$ sudo apt update

현재 java 11 버전을 사용하고 있으므로 아래 코드를 입력하여 java를 설치한다.

$ sudo apt install openjdk-11-jre-headless

애플리케이션 코드를 업로드(클론) 해주고, 빌드 후 실행해주면 애플리케이션이 실행된다.

java -jar build/libs/jar파일명.jar // 포그라운드에서 실행하는 방법 
nohup -jar build/libs/jar파일명.jar & // 백그라운드에서 실행하는 방법

❯ 클라이언트 배포

S3를 통해 클라이언트를 배포하게된다.

정적 웹사이트 호스팅용 버킷을 구성하고 정적 파일을 버킷에 업로드한다. 이후 액세스 권한에 관한 내용을 설정해주면 배포가 완료된다.

이 때 파일내에서 배포한 서버 주소로 요청이 제대로 갈 수 있도록 프론트엔드 파일 중 ***.js 파일의 서버의 주소(EC2의 주소)를 설정해주는 것이 필요하다.

const url = "EC2의 주소를 입력해준다."

❯ 데이터베이스 연결

서버 배포와 클라이언트 배포가 끝났으면 DB를 연결할 수 있다.

RDS 인스턴스를 생성하고 MySQL을 통해 인스턴스에 접속한다.

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

인스턴스 실행이 완료되었으면 현재 실행중인 서버와 연동이 필요하다.

서버 코드의 설정파일에 spring.datasource.url=RDS 엔드포인트 주소:포트 를 추가하고, username과 password를 지정해준다.

config.domain에는 AWS S3의 엔드포인트 주소를 입력해준다. CORS 설정을 위해 통신할 클라이언트 도메인이 필요하기 때문이다.(이 때 주소에는 http:// 가 포함되어야함)

위 과정을 통해서 클라이언트, 서버, DB 배포를 완료할 수 있다.

 

참고자료

AWS - S3, CloudFront, Route53을 이용한 정적 호스팅

'부트캠프 개발일기 > Cloud' 카테고리의 다른 글

77일차: 운영 전략  (0) 2023.06.02
76일차: Github Actions  (0) 2023.06.01
75일차: AWS 배포 자동화(Automated Deployment)  (0) 2023.05.31
74일차: Docker  (0) 2023.05.30
72일차: 배포(AWS)  (0) 2023.05.25