AWS 프리티어 RDS

2016-06-10 00:00:00
aws rds oracle instant client

RDS 인스턴스 생성

createinst

먼저 RDS 제품을 선택하여 Create Instance 항목의 Launch a DB Instance를 클릭합니다.

지역을 꼭 확인합니다.

selectengine

Oracle EE(Enterprise Edition)을 선택하였습니다.

production

Production? 항목에서 프리티어를 사용하실 경우 꼭 Dev/Test를 선택해야 합니다. 그렇지 않을 경우 요금이 청구될 수 있습니다.

dbdetails

처음 Specify DB Details 항목에서는 경고가 적혀있지만 프리티어 옵션을 체크한다면 Instance Class가 프리티어에 맞게 db.t2.micro로 자동으로 변합니다.

커서를 위치하면 해당 항목의 설명이 오른쪽에 나타납니다.

프리티어에서 Allocated Storage는 최대 20GB까지 조정할 수 있으며

Master User는 startup shutdown archivelog 설정 등을 제외한

특별한 권한을 가지고 있습니다. (dba, connect, resource, 카탈로그 롤이나 DB Link 등)

advanced

DB Instance에 연결하기 위해 Publicly Accessible 항목을 Yes로 합니다.

VPC는 이전에 EC2 설정했을 때의 Security Group을 선택했습니다.

Database Options 항목은 Oracle Database를 설치할 때의 DBCA(DataBase Configuration Assistant)를 실행했을 때의 옵션입니다. Database Name을 공란으로 하면 RDS는 Instance만 생성하게 됩니다.

여기서는 기본값으로 했지만 Character Set과 Backup Monitoring 등을 지정할 수 있습니다.

Launch DB Instance를 클릭하면 수 분 내에 DB설치가 완료되고 자동으로 startup상태가 됩니다.

success

이제 Endpoint 주소로 데이터베이스에 연결합니다.


EC2 Instant Client - Oracle RDS 연결

RDS가 설치된 운영체제의 정보가 없기 때문에 클라이언트 접속을 해야합니다.

Oracle 11g가 설치되어 있다면 클라이언트 접속을 바로 하시면 됩니다.

여기서는 EC2가 설치된 환경에서 Instant Client를 설치하여 RDS 데이터베이스로 접속하겠습니다.

EC2를 설치하고 SSH 접속을 합니다.

RDS로 설치한 데이터베이스 버전이 11.2.0.4.7이므로

Oracle 홈페이지에서 EC2 운영체제 버전과, RDS 데이터베이스 버전에 맞추어 다운 받습니다.

ftp나 wget등을 통해 다음 두 파일을 전송합니다.

# Instant Client Package - Basic
wget https://github.com/lastone9182/notes/blob/master/file/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm?raw=true --no-check-certificate

Instant Client Package - SQL*Plus

wget https://github.com/lastone9182/notes/blob/master/file/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm?raw=true --no-check-certificate

Package Install

sudo rpm -Uvh oracle-instantclient11.2-*

저 같은 경우는 wget이 쓰기 편해서 github 서버로 다운로드 한 뒤에 옮기는 거라서 다운로드 한 파일을 옮긴다는 것은 똑같습니다.

~/.bash_profile 환경변수를 수정해줍니다.

# ~/.bash_profile
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/usr/bin:/usr/lib/oracle/11.2/client64/bin
export PATH
export LD_LIBRARY_PATH=/usr/lib/oracle/11.2/client64/lib:$LD_LIBRARY_PATH
export SQLPATH=/usr/lib/oracle/11.2/client64/lib:$SQLPATH
export NLS_LANG=AMERICAN_AMERICA.UTF8
export TNS_ADMIN=/usr/lib/oracle/11.2/client64/network/admin

# apply
source ~/.bash_profile

SQL*Plus Instant Client 설치에 필요한 자세한 내용은 Oracle docs를 참고하시기 바랍니다.

이제 SQL*Plus를 실행할 때의 기능을 추가합니다.

sql 스크립트 참조

-- sudo vi $ORACLE_HOME/sqlplus/admin/glogin.sql
define _editor=vi

set sqlprompt '_user> '
set time on

set linesize 130
set pagesize 999

그리고 RDS 데이터베이스의 TNS 정보를 등록합니다.

# TNS_ADMIN 경로는 지정한 곳과 일치하면 됩니다.
(sudo) mkdir -p $ORACLE_HOME/network/admin
-- (sudo) vi $TNS_ADMIN/tnsnames.ora
MYDB = (DESCRIPTION=
          (CONNECT_DATA=
            (SERVICE_NAME=orcl)
          )
          (ADDRESS=
            (PROTOCOL=TCP)
            (HOST=*RDS의 Endpoint 문자열*)
            (PORT=1521)
          )
        )

sqlplus {Master User}@{TNS Alias}로 접속합니다.

sqlplus dbajongwon@mydb

show parameter db_name

아래와 같은 화면이 나오면 성공적으로 Amazon Linux EC2와 Oracle RDS를 연결하였습니다.

connect!