- 온-프레미스 환경에서의 모니터링은 크게 임계치 설정 등 에 따른 경고 메시지를 SMS 등으로 수신하는 Alert Notify 기능과 성능지표 등을 한 눈에 모니터링 하기 위한 Dash Board 기능, Trouble Shooting 등에 필요한 Back Data 수집 및 분석을 위한 In-Depth Analysis 기능 3가지 부류로 구분할 수 있습니다.
- Amazon 에서 기본으로 제공하는 Cloud Watch 는 Alert Notify와 Dash Board 기능만을 제공하고 있습니다.
- Performance Insight 가 Aurora for PostgreSQL(나머지 DBMS 는 2018년 내) 에 런칭 되었으며 In-depth Analysis 부분의 DB Monitoring 기능을 제공, 꾸준히 Upgrade 될 것으로 보입니다.
Amazon RDS Monitoring
뉴스레터 가입
클라우드 관련 최신 소식을 업데이트 받으실 수 있습니다.
Type | Purpose | Key Success Point | AWS provided | |
---|---|---|---|---|
Alert Notify | Automated and immediate situation detection and propagation | Integrity, Immediacy and Appropriate thresholds setting | Amazon CloudWatch | Performance Insight |
Dash Board | The overall situation control for non-experts | Expertise of monitored IT component | ||
In-depth Analysis | Data collection for post-problem analysis of experts | The adequacy of data for post-issue troubleshooting |
CASE 2) RDS for Oracle에서 Query Base 초 단위 실시간 CPU 사용률(VMSTAT 유사) 보기
- Amazon 에 Cloud Watch 로 CPU 사용률 및 추이를 확인 할 수 있으나 최소 1분 단위이기 때문에 비교적 정교한 변화율을 보기 어렵습니다.
- 따라서, Oracle 에서 제공하는 Dynamic View 를 이용하여 vmstat 명령과 유사한 결과를 Query Base 로 초단위 형태의 실시간 조회가 가능합니다.
- 위 그림은 OS 정보를 수집하는 프로시져의 수행과 3초 간격으로 수집되는 CPU와 Memory 사용률을 조회 한 화면입니다.
- 이와 같은 기능 구현은 다음과 같이 2개의 테이블과 1개의 뷰, 2개의 프로시져를 생성하여 가능해집니다.
구현을 위한 선행 Objects 생성 – Table
CREATE TABLE OSSTAT_PAST
(
END_INTERVAL_TIME DATE not null,
STAT_NAME VARCHAR2(64),
VALUE NUMBER
);
CREATE TABLE DPM_OSSTAT
(
MEAS_DATE VARCHAR2(25),
“Busy Time” NUMBER,
“Idle Time” NUMBER,
“Sys Time” NUMBER,
“User Time” NUMBER,
“RunQueue” NUMBER,
“Physical Memory Size” NUMBER,
“Page In” NUMBER,
“Page Out” NUMBER
);
구현을 위한 선행 Objects 생성 – View
create or replace view rds_cpu_usage
as
select MEAS_DATE,
round(“RunQueue”) RQ,
(round(1-“Idle Time”/(“Busy Time”+”Idle Time”), 4))*100 “Usage (%)”,
(round(“Idle Time”/(“Busy Time”+”Idle Time”), 4))*100 “Idle (%)”,
(round(“Sys Time”/(“Busy Time”+”Idle Time”), 4))*100 “Sys (%)”,
(round(“User Time”/(“Busy Time”+”Idle Time”), 4))*100 “User (%)”,
“Physical Memory Size”,”Page In”,”Page Out
from dpm_osstat
order by 1 desc;
구현을 위한 선행 Objects 생성 – Procedure
CREATE OR REPLACE PROCEDURE P_CPU_USAGE
is
v_time1 varchar2(22);
v_num1 number;
v_num2 number;
v_val1 float;
v_val2 float;
BEGIN
execute immediate ‘truncate table osstat_past ‘;
insert into osstat_past select sysdate as end_interval_time,stat_name,value from v$osstat;
dbms_lock.sleep(3);
insert into dpm_osstat
select *
from(
select
to_char(c.end_interval_time,’dd-mon-yyyy hh24:mi:ss’) as meas_date,
sum(case when a.stat_name = ‘BUSY_TIME’ then a.value else null end)-sum(case when c.stat_name = ‘BUSY_TIME’ then c.value else null end) “Busy Time”,
sum(case when a.stat_name = ‘IDLE_TIME’ then a.value else null end)-sum(case when c.stat_name = ‘IDLE_TIME’ then c.value else null end) “Idle Time”,
sum(case when a.stat_name = ‘SYS_TIME’ then a.value else null end)-sum(case when c.stat_name = ‘SYS_TIME’ then c.value else null end) “Sys Time”,
sum(case when a.stat_name = ‘USER_TIME’ then a.value else null end)-sum(case when c.stat_name = ‘USER_TIME’ then c.value else null end) “User Time”,
max(case when a.stat_name = ‘LOAD’ then a.value else null end) “RunQueue”,
max(case when a.stat_name = ‘PHYSICAL_MEMORY_BYTES’ then a.value else null end) “Physical Memory Size”,
sum(case when a.stat_name = ‘VM_IN_BYTES’ then a.value else null end)-sum(case when c.stat_name = ‘VM_IN_BYTES’ then c.value else null end) “Page In”,
sum(case when a.stat_name = ‘VM_OUT_BYTES’ then a.value else null end)-sum(case when c.stat_name = ‘VM_OUT_BYTES’ then c.value else null end) “Page Out”,
from v$osstat a, osstat_past c
where a.stat_name=c.stat_name
group by to_char(c.end_interval_time,’dd-mon-yyyy hh24:mi:ss’)
order by 1 desc);
END P_CPU_USAGE;
CREATE OR REPLACE PROCEDURE P_CPU_USAGE_RUN
is
BEGIN
loop
p_cpu_usage;
end loop;
END P_CPU_USAGE_RUN;
CASE 3) RDS for Oracle에서 AWR Report 생성
- Amazon RDS for Oracle 에서는 기존 On premise 환경에서AWR Report 를 생성하기 위해 호출했던 ?/rdbms/admin/awrrpt.sql을 직접 호출할 수 없습니다.
- 따라서, dbms_workload_repository에 적정 인수를 찾아 매핑 후 직접 Query Base로실행, 조회하여 Text 본문 발췌 후 HTML대체 생성이 가능합니다.
- 왼쪽의 그림은 이와 같은 방법으로 조회 한 HTML 형태의Report조회 결과 를File 형태로 다시 저장하여 결과를 얻은 화면입니다.
- 이와 같은 기능 구현은 다음과 같은 과정으로 가능합니다.

Amazon RDS에 대해 더 알아보고 싶다면, 지금 찾아가는 세미나 신청하세요.
베스핀글로벌이 직접 찾아가 자세히 알려드립니다.
클라우드에 대해 무엇이든 묻고! 덤으로 버거킹도! 베스핀글로벌의 찾아가는 세미나
사이트를 클릭하시고, 30초도 안걸리는 신청하기 버튼 누르면 끝!
세미나 신청하기: www.bespincloudops.com/guestbook
AWS에 대해 더 알고 싶으세요?
베스핀글로벌의 AWS 전문 엔지니어가 답해드립니다.