/ DEVOPS

AWS 배포하기(1) - RDS (MySQL)

DevOps 관련 포스팅

이 시리즈의
1편에서는, RDSMySQL DB를 등록하고
2편에서는, Elastic Beanstalk으로 JAR 파일을 배포하는 과정을 기록했습니다.
전체 소스 코드는 https://github.com/ohoraming/springboot-aws-deployment 이곳을 참고하시기 바랍니다.

1. RDS

  1. RDS 선택 image

  2. 데이터베이스 생성(Create database) 선택 image

  3. 데이터베이스 생성
    3-1. [데이터베이스 생성 방식 선택(Choose a database creation method)] - 표준 생성(Standard create) 선택

    3-2. [엔진 옵션(Engine options)] - 엔진 유형(Engine type): MySQL 선택 image

    3-3. [템플릿(Templates)] - 프리 티어(Free tier) 선택

    • 학습용으로 비용이 발생하지 않음 image

    3-4. [설정(Settings)]

    • DB 인스턴스 식별자, DB 마스터 이름, 마스터 암호 입력 image

    3-5. [인스턴스 구성(DB instance class)]

    • db.t2.micro 선택 image

    3-6. [스토리지(Storage)]

    • 기본 설정으로 두기 image
    • 스토리지 자동 조정 활성화 체크 해제 했음

    3-7. [연결(Connectivity)]

    • 기본 설정으로 진행
    • 퍼블릭 액세스(Public access): Yes 선택 image

    3-8. [추가 구성(Additional configuration)]

    • 초기 데이터베이스 이름(Initial database name) 입력 image

    3-9. 데이터베이스 생성(Create database) 선택 image

    • 데이터베이스 생성 중 image

    • 데이터베이스 생성 성공 image

  4. 보안 그룹 인바운드 규칙 수정

    4-1. DB 식별자(DB identifier) 선택 image

    4-2. VPC 보안 그룹(VPC security groups) 선택 image

    4-3. 보안 그룹 ID(Security group ID) 선택 image

    4-4. 인바운드 규칙 편집(Edit inbound rules) 선택 image

    4-5. 규칙 추가(Add rule) 선택 image

    4-6. MYSQL/Aurora 선택, Anywhere-IPv4 선택 후 규칙 저장(Save rules) 선택 image

    image

  5. MySQL 연결하기

    5-1. 엔드포인트(Endpoint)를 복사 image

    5-2. command line에 입력

    • windows 사용자의 경우,
        winpty mysql -h [엔드포인트] -P 3306 -u [마스터 사용자] -p
      

      ※ 참고 ※
      다음 링크에 MySQL Workbench를 사용하는 방법도 있으니 편한 방법으로 연결하면 된다.
      MySQL 명령줄 클라이언트에서 연결

    • mysql> 프롬프트가 정상적으로 출력된다면 성공! image

    5-3. application.properties 파일 수정

    • spring.datasource.urllocalhost 부분을 엔드포인트(Endpoint)로 교체
       spring.datasource.url = jdbc:mysql://[엔드포인트]:3306/[DB이름]?useSSL=false
      
    • server.port 속성 추가
       server.port = 5000
      
  6. DB생성
    • create database [DB 이름];

        mysql> create database usersDB;
        Query OK, 1 row affected (0.05 sec)
      
        mysql> show databases;
        +--------------------+
        | Database           |
        +--------------------+
        | information_schema |
        | mysql              |
        | performance_schema |
        | sys                |
        | usersDB            |
        +--------------------+
        5 rows in set (0.02 sec)
      
  7. Spring boot application을 JAR파일로 패키징

    7-1. 소스 코드가 있는 디렉터리에서 cmd 실행(디렉터리 표시 창에서 cmd 입력) 또는 git bash 열기

    7-2. mvn clean install 입력

    7-3. BUILD SUCCESS 가 출력되면 target폴더에서 JAR 파일을 확인할 수 있음 image

    image

    7-4. 만약, BUILD FAILIURE가 뜬다면? image

    • Fatal error compiling: error: invalid target release: 17 -> [Help 1]
    • 내 경우는 mvn 버전(11)과 프로젝트의 java 버전(17)이 일치하지 않아 오류가 발생했다.
    • version 확인 명령어
        mvn -version 
        java -version
      

    image

    • 환경변수 편집으로 maven 의 java version 수정하기
      • [시스템 환경 변수 편집] - [환경 변수] - 시스템 변수의 JAVA_HOME 선택 - [편집]
      • 변경할 java version의 jdk가 저장된 위치를 복사해 변수값에 붙임 - [확인]

      image

      image

      image

      image

      image

      • cmd에서 version 재확인 후 BUILD 재실행하기

< 출처 >

‘Amazon RDS | Deploy Spring Boot + MySQL CRUD Application into Elastic Beanstalk | JavaTechie,’ 유튜브 비디오, 14:39, 게시자 ‘Java Techie,’ 2020년07월19일, https://youtu.be/Tbf7F42tcBw

‘Spring Boot AWS Deployment - Full Course,’ 유튜브 비디오, 1:03:19, 게시자 ‘Java Guides,’ 2021년05월01일, https://youtu.be/D1yOALZcMHs