IT 개발/AWS

2. AWS RDS - DB인스턴스 생성 및 Oracle SQL Developer 접속

미웡할꺼야 2020. 12. 4. 21:49

[참고] AWS>제품>Amazno RDS>요금

[참고] AWS>설명서>Amazon RDS>사용 설명서

[참고] AWS>설명서>Amazon RDS>사용 설명서>Amazon RDS의 Oracle

[참고] [Server - AWS RDS 구축 및 Oracle 연동] : 네이버 블로그
[참고] [AWS] RDS DB 외부에서 접속 안될 때 외부 접속되게 하는 해결 방법

 

[이전] 1. AWS VPC - RDS, EC2, Mail 보안 그룹 및 탄력적 IP 생성

[다음] 3. AWS S3 - 버킷 생성 및 연동

 

운영체제(OS) : Windows 10 64bit
개발환경 : Oracle Database 11g
개발도구 : Oracle SQL Developer

AWS 프리 티어 범위에서 진행.

 

Amazon Relational Database Service(Amazon RDS)란 무엇입니까?

Amazon Relational Database Service(Amazon RDS)는 AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스입니다. 이 서비스는 산업 표준 관계형 데이터베이스를 위한 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리합니다.


DB 인스턴스 생성

1) AWS Management Console > RDS 검색 또는 선택.

 

AWS Management Console > RDS 검색 또는 선택.


2) RDS Console > DashBoard or 데이터베이스 > 리전 확인 > 데이터베이스 생성 클릭.

 

RDS Console > DashBoard or 데이터베이스 > 데이터베이스 생성 클릭


3.1) 표준 생성 선택.

  • 표준 생성 : 사용자 지정 생성.

  • 손쉬운 생성 : 빠른 생성.

데이터베이스 생성 - 데이터베이스 생성 방식 선택


3.2) 엔진 유형=Oracle , 에디션=Oracle Enterprise Edition , 버전=Oracle xx.x.x.x.Vxx 선택.(* x : 숫자)

  • Oracle SQL Developer를 통해 DB를 관리할 것이기에 엔진 유형=Oracle을 선택.

  • 버전 : Oracle xx.x.x.x.ru-YYYY-MM.rur-YYYY-MM.rx를 선택할 경우 템플릿 사항프리 티어 선택란이 나오지 않으며 프리 티어를 선택하지 않을 시 요금이 부과된다.

  • 중요) Oracle 12v 이상을 선택해야 하는 이유 : Oracle사와 Amazon사에서 2020년 12월 31일에 Oracle DB v11에 대한 모든 지원이 중단된다.

데이터베이스 생성 - 엔진 옵션


3.3) 프리 티어 선택.

  • 프리 티어를 선택해야 요금이 발생하지 않는다.

데이터베이스 생성 - 템플릿


3.4) DB 인스턴스 식별자 작성 , 마스터 사용자 이름 작성 , 마스터 암호, 암호 확인 작성.

  • 외부 접속을 통해 Oracle SQL Developer에서 데이터베이스를 생성할 때 사용자 이름=마스터 사용자 이름, 비밀번호=마스터 암호이다. 마스터 암호 분실 시 DB 인스턴스를 다시 만들어야 한다.

  • 마스터 사용자 이름 : MADE

  • 마스터 암호 : kosmo2020

데이터베이스 생성 - 설정


3.5) 템플릿=프리 티어를 선택하여 설정이 제한되어 있다.

  • Amazon RDS 프리 티어는 단일 AZ db.t2.micro 인스턴스에서 Amazon RDS의 750시간 제한되어 있다.

데이터베이스 생성 - DB 인스턴스 크기


3.6) 기본 설정값 유지.

  • Amazon RDS 프리 티어는 20GB의 범용 스토리지(SSD) / 20GB의 자동 백업 스토리지 및 사용자가 시작한 모든 DB 스냅샷으로 제한.

  • 스토리지 유형=프로비저닝된 IOPS(SSD)으로 월별 추정 요금 사항에 변화가 없지만 사용 시 요금이 발생된다.

데이터베이스 생성 - 스토리지


3.7) 템플릿=프리 티어를 선택하여 설정이 제한되어 있다.

 

데이터베이스 생성 - 가용성 및 내구성


3.8) 퍼블릭 액세스 가능=예 , 나머지 기본 설정값 유지.

  • 퍼블릭 액세스 가능=예로 안 할 경우 Oracle SQL Developer에서 연결이 불가능하다.

  • 기존 VPC 보안 그룹이 있을 경우 선택.

데이터베이스 생성 - 연결


3.9) 데이터베이스 인증 옵션=암호 인증 선택.

  • 암호 및 Kerberos 인증 : Aurora MySQL 버전만 됨.

RDS > 데이터베이스 생성 > 데이터베이스 인증


3.10) 초기 데이터베이스 이름=빈칸 , 문자 집합=본인 Oracle DB 문자셋 , 삭제 방지 활성화=체크 , 나머지 기본 설정값 유지.

  • 초기 데이터베이스 이름 : SID이다. 빈칸으로 설정할 경우 엔진 유형에 맞게 자동 생성된다. Oracle의 경우 ORCL로 자동 생성된다.

  • 문자 집합 : AWS RDS로 CRUD를 하거나 EC2 Server <-> AWS RDS 할 경우 서로 다른 CharacterSet 때문에 byte 크기 문제가 발생할 수 있기 때문.

-- CHARACTERSET(문자셋) 및 LANGUAGE(언어셋) 확인.
SELECT *
FROM NLS_DATABASE_PARAMETERS
WHERE PARAMETER IN ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET', 'NLS_LANGUAGE');
-- 결과
-- NLS_LANGUAGE AMERICAN
-- NLS_CHARACTERSET KO16MSWIN949
-- NLS_NCHAR_CHARACTERSET AL16UTF16

-- KO16KSC5601 : 완성형 한글- 일반적으로 많이 사용되며 2350자의 한글, 4888자의 한자, 히라가나, 가타카나, 영문 및 각종 기호를 포함하고 있음(한글 바이트: 2byte).
-- KO16MSWIN949 : 조합형 한글- 완성형을 포함하여 11172자의 한글을 표현함(한글 바이트: 2byte).
-- AL32UTF8 : Unicode의 CES 중 하나- 11172자의 한글을 지원(한글 바이트: 3byte).

 

데이터베이스 생성 - 추가 구성_데이터베이스 옵션

 

데이터베이스 생성 - 추가 구성_삭제 방지


3.11) 데이터베이스 생성 클릭.

  • 만약 요금이 나와있을 경우 템플릿=프리티어를 선택했는지 확인.

데이터베이스 생성 - 월별 추정 요금


4) 생성이 완료되었다면 아래 그림과 같이 나와있다. 생성한 DB 인스턴스를 클릭하면 해당 상세 내용을 볼 수 있다.

  • 상태 : creating > Configuring-enhanced-monitoring > 백업 중 > 사용 가능.

  • 사용 가능 상태까지 최대 1시간 정도 걸린다.

DB 인스턴스 생성 완료


Oracle SQL Developer를 통한 DB 인스턴스 접속

5) Oracle SQL Developer 실행 > 새 접속 > Name=사용자 정의 , 사용자 이름=마스터 사용자 이름 , 비밀번호=마스터 암호 , 호스트 이름=엔드포인트 , 포트=포트 , SID=DB 이름 > 테스트 클릭 > 상태: 성공 확인 > 접속 클릭.

  • 생성한 DB 인스턴스 > 연결 & 보안 - 엔드포인트, 포트 / 구성 - DB 이름, 마스터 사용자 이름에서 확인 가능. 마스터 암호는 없음 기억하고 있어야 한다.

  • 만약 위 과정들을 수행하고 Oracle SQL Developer를 통해 접속이 안될 경우 DB 버전에 맞는 ojdbc를 사용하고 있는지 체크해야 한다(최신 버전의 Oracle DB를 사용한다면 ojdbc6을 받아야 한다).

Oracle SQL Developer를 통해 DB 인스턴스 접속


6) 접속 후 테이블 생성 및 데이터 삽입이 가능한지 확인.

 

테이블 생성 및 데이터 삽입


마무리

요약 : AWS RDS에서 DB 인스턴스 생성 > 인바운드 규칙 확인 > Oracle SQL Developer를 통한 DB 인스턴스 접속.

 

DB 인스턴스 생성 후 Oracle SQL Developer를 통해 접속이 안될 경우 생성한 DB 인스턴스에서 퍼블릭 액세스 가능성=예가 돼있는지, 인바운드 규칙유형=Oracle-RDS, 소스=위치 무관으로 설정되어 있는지 확인해본다.

 

Spring Fremework 기반의 프로젝트에서 EC2 인스턴스배포AWS RDS의 데이터를 Server, Client에 가져오려면 사용 중인 보안 그룹아웃바운드 규칙HTTP, HTTPS, Customer TCP(Tomcat Port) / 위치 무관을 추가하면 된다. 모든 트래픽 허용을 하면 편하지만 보안이 취약해지기에 AWS에서도 권장하지 않는다.

 

Amazon RDS 프리 티어한 달 기준 750시간 무료이다. 계산해보면 한 달=최대 31일=744시간이다. Full로 돌려도 문제없다.

 

[이전] 1. AWS VPC - RDS, EC2, Mail 보안 그룹 및 탄력적 IP 생성

[다음] 3. AWS S3 - 버킷 생성 및 연동