애플리케이션 이름 입력 후, 플랫폼을 [Java], 플랫폼 브랜치를 [Corretto 17 running on 64bit Amazon Linux 2], 플랫폼 버전을 [3.7.1(Recommended)]을 선택한다.
환경을 관리하고 모니터링하기 위해 AWS Elastic Beanstalk는 사용자를 대신하여 환경 리소스에 대한 작업을 수행한다. Elastic Beanstalk는 이러한 작업을 수행하려면 특정 권한이 필요하며, 이러한 권한을 얻기 위해 AWS Identity and Access Management(IAM) 서비스 역할을 부여해줘야 한다.
클라우드에 올릴 데이터베이스를 생성한다. Elastic Beanstalk 메뉴를 이용해 RDS를 구축해준다.
#애플리케이션 실행 시 일래스틱 빈스토크에서 값을 덮어쓰므로 해당 부분은 삭제 또는 주석처리를 해준다.
spring:
# AWS RDS 사용으로 인한 주석화.
#datasource:
#url: jdbc:h2:mem:testdb
#username: sa
로컬에서 사용하던 H2 대신 AWS의 RDS를 사용한다. RDS는 H2처럼 데이터를 콘솔에서 조회할 수 없고, 데이터베이스 도구를 사용해야 한다.
RDS 서비스로 들어가 데이터베이스 관리 페이지로 이동한다.
로컬에서 데이터베이스에 접근할 수 있도록 로컬의 IP를 허용해야 한다. 데이터베이스 항목의 DB 식별자에 있는 링크를 눌러 이동하고, [연결 및 보안] 탭의 보안 그룹에 있는 VPC 보안 그룹 하이퍼링크를 클릭한다.
유형을 [MYSQL/Aurora], 소스를 [내 IP]를 선택하여 인바운드 규칙을 추가해준다.
cf. IP 주소 확인법
CMD에서 ipconfig 명령어를 통해 내 컴퓨터의 IP를 확인할 수 있다. IPv4가 자신의 아이피 주소이다.
데이터베이스 정보창에 RDS 정보인 Host, Port, User, Password를 입력한다. Host는 RDS의 엔드포인트 주소를 입력하면 되고, Port는 3306, User와 Password는 RDS에서 설정한 User와 Password 값을 입력하면 된다.
입력을 마친 후 [Test Connection] 버튼을 눌러 데이터베이스에 연결이 잘되는지 테스트한다.
DB Brower 메뉴의 [New SQL Console]을 눌러 SQL문을 작성할 수 있는 창을 연 후 다음 SQL문들을 작성하여 실행한다. 다음 SQL문들을 통해 데이터베이스와 테이블들을 생성한다.
create database blog;
use blog;
create table article (
id bigint not null AUTO_INCREMENT,
author varchar(255) not null,
content varchar(255) not null,
created_at timestamp,
title varchar(255) not null,
updated_at timestamp,
primary key (id)
);
create table refresh_token (
id bigint not null AUTO_INCREMENT,
refresh_token varchar(255) not null,
user_id bigint not null,
primary key (id)
);
create table users (
id bigint not null AUTO_INCREMENT,
created_at timestamp,
email varchar(255) not null,
nickname varchar(255),
password varchar(255),
updated_at timestamp,
primary key (id)
);
실행 후 다음 메시지가 콘솔에 나오는지 확인한다.
아마존 서버에서 MySQL을 사용하므로 프로젝트를 빌드해 배포하기 전에 의존성을 추가해준다.
build.gradle 파일을 열어 의존성을 추가하고 새로고침을 눌러 의존성을 추가한다.
// build.gradle
dependencies {
~ 생략 ~
implementation 'mysql:mysql-connector-java'
}
책에서는 인텔리제이의 플러그인 툴을 사용해 RDS에 접속하였지만, 개인적으로 MySQL Workbench를 사용해 접속하는 것이 더 편할 것 같았다. 그래서 위에서 만든 데이터베이스와 테이블을 확인해볼겸 MySQL Workbench를 사용해 접속해보기로 하였다.
MySQL Connections에서 새로운 Connection을 만든 후, 위에서 사용한 설정값들과 동일하게 입력해준다.
다음 SQL문들을 통해 데이터베이스와 테이블들이 잘 생성되었는지 확인해본다.
위 과정에서 생성한 blog 데이터베이스와 article, refresh_token, users 테이블이 잘 생성된 것을 확인할 수 있다.