[참고] 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 생성
운영체제(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 검색 또는 선택.
2) 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시간 제한되어 있다.
3.6) 기본 설정값 유지.
-
Amazon RDS 프리 티어는 20GB의 범용 스토리지(SSD) / 20GB의 자동 백업 스토리지 및 사용자가 시작한 모든 DB 스냅샷으로 제한.
-
스토리지 유형=프로비저닝된 IOPS(SSD)으로 월별 추정 요금 사항에 변화가 없지만 사용 시 요금이 발생된다.
3.7) 템플릿=프리 티어를 선택하여 설정이 제한되어 있다.
3.8) 퍼블릭 액세스 가능=예 , 나머지 기본 설정값 유지.
-
퍼블릭 액세스 가능=예로 안 할 경우 Oracle SQL Developer에서 연결이 불가능하다.
-
기존 VPC 보안 그룹이 있을 경우 선택.
3.9) 데이터베이스 인증 옵션=암호 인증 선택.
-
암호 및 Kerberos 인증 : Aurora MySQL 버전만 됨.
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시간 정도 걸린다.
Oracle SQL Developer를 통한 DB 인스턴스 접속
5) Oracle SQL Developer 실행 > 새 접속 > Name=사용자 정의 , 사용자 이름=마스터 사용자 이름 , 비밀번호=마스터 암호 , 호스트 이름=엔드포인트 , 포트=포트 , SID=DB 이름 > 테스트 클릭 > 상태: 성공 확인 > 접속 클릭.
-
생성한 DB 인스턴스 > 연결 & 보안 - 엔드포인트, 포트 / 구성 - DB 이름, 마스터 사용자 이름에서 확인 가능. 마스터 암호는 없음 기억하고 있어야 한다.
-
만약 위 과정들을 수행하고 Oracle SQL Developer를 통해 접속이 안될 경우 DB 버전에 맞는 ojdbc를 사용하고 있는지 체크해야 한다(최신 버전의 Oracle DB를 사용한다면 ojdbc6을 받아야 한다).
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로 돌려도 문제없다.
'IT 개발 > AWS' 카테고리의 다른 글
5. AWS EC2(2) - Utuntu 자바(JDK, JRE), 톰캣 설치 및 war파일 배포 (0) | 2020.12.14 |
---|---|
4. AWS EC2(1) - 인스턴스 생성 및 접속 (0) | 2020.12.11 |
AWS 프리 티어 사용 시 요금 발생(폭탄)을 막기 위한 팁 (0) | 2020.12.11 |
3. AWS S3 - 버킷 생성 및 연동 (0) | 2020.12.07 |
AWS IAM 유저 및 MFA 생성하기 (0) | 2020.12.03 |