관리 메뉴

거니의 velog

(57) AWS Elastic Beanstalk 3 본문

SpringBoot_React 풀스택 프로젝트

(57) AWS Elastic Beanstalk 3

Unlimited00 2024. 3. 12. 13:52

3. 빈즈톡에 데이터베이스 설정

* 빈즈톡은 애플리케이션의 모든 구성을 하나로 묶어서 관리할 수 있는데 데이터베이스 역시 애플리케이션의 설정과 같이 처리할 수 있다. 데이터베이스를 이용하기 위해서 구성된 환경의 '구성' 메뉴에서 시작할 수 있다. '구성' 메뉴에는 Networking and database 메뉴의 편집 버튼을 클릭한다.

* 데이터베이스 항목에서는 우선 상단의 데이터베이스 활성화를 변경한다. 데이터베이스는 mysql로 지정하고 버전은 8.0 버전을 지정한다. 인스턴스 클래스의 경우 데이터베이스의 실행 환경을 지정하는데 db.d2.micro 는 프리티어 버전에서 사용할 수 있으므로 다른 선택을 하지 않도록 주의한다. 사용자의 이름과 패스워드는 데이터베이스 관리자이므로 반드시 잘 기억해 두도록 한다.

* 데이터베이스를 설정한 후에는 다시 애플리케이션의 환경이 업데이트된다. 이 때 데이터베이스의 생성 작업이 처리되기 때문에 약간의 시간이 걸린다(약 5-10분 정도, 마찬가지로 Successfully... 메시지가 출력될 때까지 기다려야 한다).


(1) 데이터베이스 외부 연결

* 빈즈톡에서 만들어진 데이터베이스는 내부에서는 접근이 가능하지만, 사용자 개발환경에서는 접속이 차단되기 때문에 외부에서 데이터베이스를 이용하는데 제한이 많다. 외부에서 데이터베이스를 접속해서 사용하기 위해서는 빈즈톡에서 만들어진 데이터베이스 설정을 RDS 서비스에서 변경해 주어야 한다.
* AWS 콘솔 상단 메뉴에서 RDS를 검색하고 빈즈톡에서 생성된 데이터베이스를 확인한다.

* 데이터베이스의 상세 화면에서는 보안 그룹 규칙이라는 항목이 있는데 이를 이용해서 외부 접속을 허용하도록 변경해야 한다. 유형 중에 CIDR/IP 항목을 선택한다.

* 외부 연결을 위해서는 인바운드 규칙, 아웃바운드 규칙을 수정해 주어야 한다.

* 인바운드 규칙을 선택하고 인바운드 규칙 편집을 선택한다. 규칙 추가 버튼을 이용해서 새로운 항목을 추가한다.

* 새로운 항목은 사용자 지정 TCP를 지정하고 3306 포트를 선택한다. 외부 접속이 가능하도록 Anywhere IPv4를 선택하고 저장한다.

* 마찬가지로 아웃바운드 규칙을 편집한다.

* 아웃바운드 규칙 역시 외부 IP에서 접속 가능하도록 3306 포트를 지정한다.


[데이터베이스 연결 확인]

* 변경된 데이터베이스에 외부 연결이 가능한지 확인하기 위해서 데이터베이스의 정보를 다시 확인한다. 엔드포인트의 주소가 데이터베이스의 연결 주소이다.

* 데이터베이스 연결 프로그램(DBeaver)을 이용해서 엔드포인트를 지정하고 데이터베이스 이름은 mysql, 사용자 계정은 빈즈톡에서 지정했던 계정명과 패스워드를 입력한다.

* Test Connection을 이용해서 연결이 가능한지 확인한다.


[데이터베이스 시간/문자셋 변경]

* 데이터베이스의 연결이 가능하다면 select now() 를 이용해서 현재 시간을 확인해 본다. 확인되는 결과는 한국의 경우 9시간의 차이가 나는 것을 확인할 수 있다.

* 이를 변경하기 위해서는 데이터베이스에서 사용할 설정값들을 수정해야 하는데 파라미터 그룹이라는 것을 활용해서 이를 지정한다.
* RDS의 메뉴에서 파라미터 그룹을 선택하고 파라미터 그룹 생성을 확인한다. 설정할 파라미터 그룹은 mysql 8.0을 지정한다. 그룹의 이름은 timeparam 으로 지정한다.

* 파라미터의 그룹을 생성한 후에는 편집 버튼을 이용해서 설정 화면으로 이동한다.

* 설정 화면에서는 검색을 통해서 time_zone을 Asia/Seoul 로 지정한다. 변경된 내용은 Save Changes 혹은 저장을 이용해서 저장한다.

* 마찬가지로 char를 검색하고 값은 utf8로 지정한다.

* 생성된 파라미터 그룹은 데이터베이스 조회 화면에서 설정할 수 있다. 현재 데이터베이스를 선택하고 수정 버튼을 클릭한다.

* 수정 화면에서 아래쪽에 추가 구성 항목을 작성한 파라미터 그룹으로 지정한다. 계속을 선택한 후 인스턴스 수정을 클릭한다.

* 위의 화면에서 즉시 적용을 선택하더라도 데이터베이스의 파라미터 설정이 변경되기 위해서는 약간의 시간이 필요한데, 확실하게 하려면 재부팅을 이용한 직접 재시작이 가장 확실한 방법이다. 데이터베이스의 변경 작업은 5-10분 정도의 시간이 필요하다.

* 재부팅을 모두 마치고 난 뒤, 데이터베이스 개발 도구에서는 변경된 시간 값이 한국 시간으로 처리되는지 확인한다.

한국 시간대로 변경된 것을 확인!

(3) 데이터베이스 생성과 계정 생성

* 데이터베이스의 설정이 완료되었다면 API 서버에서 사용할 데이터베이스를 생성하고 계정을 만들어 주어야 한다.root 계정으로 로그인하고 아래의 SQL 문을 이용해서 예제에서 사용할 스키마와 계정을 생성한다.

CREATE DATABASE malldb;

CREATE USER 'malldbuser'@'%' IDENTIFIED BY 'malldbuser';

GRANT ALL PRIVILEGES ON malldb.* TO 'malldbuser'@'%';

SHOW GRANTS FOR 'malldbuser'@'%';


* 개발 도구에서는 생성된 malldb 데이터베이스와 malldbuser 계정으로 연결이 가능한지 확인한다.


 

'SpringBoot_React 풀스택 프로젝트' 카테고리의 다른 글

(59) AWS Elastic Beanstalk 5  (0) 2024.03.12
(58) AWS Elastic Beanstalk 4  (0) 2024.03.12
(56) AWS Elastic Beanstalk 2  (0) 2024.03.11
(55) AWS Elastic Beanstalk 1  (0) 2024.03.11
(54) 리액트 쿼리와 리코일 6  (0) 2024.03.11