

$ cd [키 페어 파일이 존재하는 경로] $ ssh -i "instagram-server.pem" ubuntu@[instagram-server 인스턴스의 프라이빗 IP]
$ sudo apt update # 패키지 관리 시스템(apt)의 패키지 정보 업데이트 $ sudo apt install openjdk-17-jdk -y # JDK 17 버전 설치 $ java -version # JDK가 잘 설치됐는 지 확인
$ git clone https://github.com/JSCODE-COURSE/aws-vpc-springboot.git
/health GET : Heatlh Check API/boards : 게시글 조회 API (더미 데이터 생성을 위한 게시글 저장 로직 포함)$ cd aws-vpc-springboot/src/main/resources $ vi application.yml
server: port: 80 spring: datasource: url: jdbc:mysql://___________:3306/instagram # RDS 인스턴스 엔드포인트 username: ______ # RDS 마스터 사용자 이름 password: ______ # RDS 마스터 비밀번호 driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true
$ cd ~/aws-vpc-springboot $ ./gradlew clean build -x test # 빌드하기 $ cd build/libs $ sudo nohup java -jar aws-vpc-springboot-0.0.1-SNAPSHOT.jar &
$ curl localhost:80/health $ curl localhost:80/boards # 게시글 조회 (+ 게시글 저장)


$ exit
instagram-server-b 인스턴스에도 똑같이 Spring Boot 프로젝트를 배포하자.
$ cd [키 페어 파일이 존재하는 경로] $ ssh -i "instagram-server.pem" ubuntu@[instagram-server-b 인스턴스의 프라이빗 IP]
$ sudo apt update # 패키지 관리 시스템(apt)의 패키지 정보 업데이트 $ sudo apt install openjdk-17-jdk -y # JDK 17 버전 설치 $ java -version # JDK가 잘 설치됐는 지 확인
$ git clone https://github.com/JSCODE-COURSE/aws-vpc-springboot.git
$ cd aws-vpc-springboot/src/main/resources $ vi application.yml
server: port: 80 spring: datasource: url: jdbc:mysql://___________:3306/instagram # RDS 인스턴스 엔드포인트 username: ______ # RDS 마스터 사용자 이름 password: ______ # RDS 마스터 비밀번호 driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: true
$ cd ~/aws-vpc-springboot $ ./gradlew clean build -x test # 빌드하기 $ cd build/libs $ sudo nohup java -jar aws-vpc-springboot-0.0.1-SNAPSHOT.jar &
$ curl localhost:80/health $ curl localhost:80/boards # 게시글 조회 (+ 게시글 저장)


지금까지 2개의 EC2 인스턴스에 Spring Boot 프로젝트를 배포해봤다. 하지만 일반 사용자가 백엔드 API 서버에 요청을 보내기 위해 Bastion Host에 접속하는 과정을 거칠 수는 없다. 따라서 일반 사용자도 백엔드 API에 직접 요청을 보낼 수 있게 만들어주어야 한다. 그리고 사용자보고 2개의 백엔드 서버에 골고루 요청을 나눠서 보내라고 시킬 수가 없다. 따라서 사용자의 요청을 여러 대의 백엔드 서버에 골고루 전달하기 위한 장치가 필요하다. 그게 바로 로드 밸런서(ELB)이다. 로드 밸런스를 도입하면 여러 대의 EC2에 골고루 트래픽을 분산시킬 수 있게 된다. 뿐만 아니라 Bastion Host를 거치지 않고 외부 인터넷에서 요청을 보낼 수 있게 된다. 다음 강의에서는 ELB를 도입해보도록 하자.