본문 바로가기

전체 글35

DynamoDB 기본 개념 - 데이터 모델 1. DynamoDB의 데이터 모델 테이블(Table): 아이템의 모음이다. 들어갈 수 있는 아이템의 개수는 제한이 없다. 테이블은 파티션 키(기본키)를 반드시 지정해야 한다. 리전당 생성할 수 있는 테이블 최대 개수는 256개이지만 AWS에 요청하여 더 늘릴 수 있다. 아이템(Item): 아이템은 속성(Attribute) 들의 모음이다. 들어가는 속성의 개수는 제한이 없지만 아이템의 크기는 속성 이름과 값을 포함하여 64KB까지이다. 기본키로 필수 선택되고 필요에 따라 정렬 키를 설정하여 복합키로 활용된다. 속성(Attribute): 속성은 Key-Value 방식이다. 키는 문자열이어야 한다. 데이터 형식은 아래와 같다. 스칼라 데이터 형식(Scalar data types): 숫자(Number), 문자.. 2022. 6. 17.
PostgreSQL 아키텍처 기본 개념 (PostgreSQL Architecture) 1. Shared Memory 1. WAL 버퍼 WAL 버퍼는 데이터베이스에 대한 여러 가지 변경 사항을 임시로 저장하는 버퍼이다. 버퍼에 저장된 내용은 정해진 시점에 WAL 파일로 기록되어 보관된다. 백업 및 복구 시점에서는 WAL 버퍼와 WAL 파일은 대단히 중요하다. 2. Shared 버퍼 Shared 버퍼는 디스크 IO를 최소화하는데 목적이 있다. 그러기 위해서는 아래 사항을 만족해야 한다. 매우 큰 사이즈의 버퍼를 빠르게 access 해야 한다. 많은 사용자가 동시에 접근할 경우 경합을 최소화시켜야 한다. 자주 사용되는 블록은 최대한 오랜 기간 동안 버퍼에 저장되어 있어야 한다. 2. Process Type 1. Postmaster 프로세스 가장 먼저 시작되는 프로세스이며, 초기 기동 시, 복구.. 2022. 6. 16.
오라클 커넥션 기본 개념 (ORACLE CONNECTION) 오라클은 네트워크 통신 수단으로 대부분 TCP/IP 소켓을 사용하고 있다. 쉽게 말해 소켓을 전화라고 생각한다면, 소켓을 사용함으로써 타 장비에 있는 프로그램끼리 통신할 수 있다. 프로세스의 측면에서 본다면, 한번 소켓을 만들어 두면 소켓을 읽고 쓰기만 해도 송수신을 구현할 수 있으므로 매우 편리한 기능이라 할 수 있다. 송수신은 실제로 네트워크의 드라이버와 OS의 라이브러리가 수행하고 있다. 소켓은 주소와 포트 번호의 조합으로 구분할 수 있다. 오라클에서는 수신을 기다리는 프로세스를 Listener라고 한다. listener로 connection을 하는 프로세스는 업무 Application 프로세스이다. DB: 자신이 listen 해야 할 포트 번호 등을 listener.ora에서 확인한 뒤 liste.. 2022. 6. 15.
AWS RDS 기본 개념 AWS RDS는 클릭 몇 번으로 쉽게 DB 인스턴스를 생성할 수 있고, 스토리지 용량과 IOPS를 증가시켜 성능 확장이 가능하다. 또한, 장애 시 Failover를 통해 정상적인 서비스 제공이 가능하도록 구성이 가능하다. 그리고 Read Replica를 이용하여 읽기 성능을 향상하게 할 수 있다. (Multi-AZ 복제 및 Failover: Multi-AZ 복제를 사용하도록 설정하고 메인 DB Instance에 장애 (장애: AZ, 인스턴스 중단, 네트워크, 스토리지 등) 발생하면 자동으로 예비 인스턴스가 메인 인스턴스로 승격된다. 이 기능을 Failover라고 하며 약 3~6분 정도 소요된다. Failover 기능이 동작하면 Endpoint 주소가 가리키는 DB Instance가 메인 Instance에.. 2022. 6. 15.
MySQL 서버 튜닝, 최적화 검토 사항 (MySQL Server Tuning) 모든 운영체제에서 가장 중요한 모니터링 지표 중 하나인 CPU 사용률, mysql 서버를 운영한다면 DBA는 현재 mysql 서버가 성능적으로 안정적인 상태인지 자주 확인해야 한다. 모니터링을 통해 운영 중인 mysql 서버가 불안정한 상태를 보이거나 시스템 자원 부족으로 서비스에 문제가 발생할 가능성이 있다면 이를 인지하고 최적화까지 고려해야 한다. 1. CPU Iowait이 높은 케이스 CPU Iowait의 사용률이 높은 경우, 사용량의 절대량이 높거나 사용이 전체적으로 높다면 그중 CPU Iowait 사용량의 비율이 상대적으로 높으면 디스크의 IO 오퍼레이션에 의한 병목, 지연이 발생하고 있다고 볼 수 있다. 일반적인 원인 전체 쿼리 트래픽에 대한 서버의 처리량을 디스크 성능이 뒷받침하지 못하는 경.. 2022. 6. 14.