이번 실습에서는 Amazon Aurora PostgreSQL 데이터베이스 클러스터를 생성하고 다음 기능을 확인한다.
Aurora는 서로 다른 AZ에 최소 2개의 DB Subnet이 필요하다.
AWS 콘솔 이동
VPC → Subnets → Subnet 생성
다음 명세로 생성한다.
| 항목 | Database Subnet 01 | Database Subnet 02 |
|---|---|---|
| VPC | 이니셜-vpc-ap-01 | 이니셜-vpc-ap-01 |
| Subnet Name | 이니셜-sub-db-01 | 이니셜-sub-db-02 |
| AZ | ap-northeast-2a | ap-northeast-2c |
| CIDR | 10.30.80.0/24 | 10.30.81.0/24 |
AWS 콘솔 이동
VPC → Route Tables → 생성
설정
| 항목 | 값 |
|---|---|
| Name | 이니셜-rtb-db |
| VPC | 이니셜-vpc-ap-01 |
생성 후 다음 서브넷 연결
AWS 콘솔 이동
EC2 → Security Groups → 생성
설정
| 항목 | 값 |
|---|---|
| Name | 이니셜-sg-aurora |
| VPC | 이니셜-vpc-ap-01 |
| Type | Port | Source |
|---|---|---|
| PostgreSQL | 5432 | 10.0.0.0/16 |
💡 VPC 내부에서만 DB 접속 허용한다.
Aurora는 DB Subnet Group을 통해 DB 인스턴스를 배치할 서브넷을 지정한다.
AWS 콘솔 이동
RDS → Subnet Groups → Create
설정
| 항목 | 값 |
|---|---|
| Name | 이니셜-subgroup-aurora |
| VPC | 이니셜-vpc-ap-01 |
| AZ | ap-northeast-2a, ap-northeast-2c |
| Subnet | 이니셜-sub-db-01, 이니셜-sub-db-02 |

AWS 콘솔 이동
RDS → Databases → Create database (전체구성)
| 항목 | 값 |
|---|---|
| Engine | Aurora PostgreSQL |
| Version | Aurora PostgreSQL 17 |
| Template | Dev/Test |


| 항목 | 값 |
|---|---|
| Cluster identifier | 이니셜-rds-aurora |
| Master username | postgres |
| Password | qwer1234 |

| 항목 | 값 |
|---|---|
| Instance type | db.t3.medium |
| Multi-AZ | 생성 안함 |
| 항목 | 값 |
|---|---|
| VPC | 이니셜-vpc-ap-01 |
| DB Subnet Group | 이니셜-subgroup-aurora |
| Public Access | No |
| Security Group | 이니셜-sg-aurora |

sudo dnf install postgresql17
AWS 콘솔 이동
RDS → Databases → 이니셜-rds-aurora
다음 값 복사
Cluster Endpoint
psql -U postgres -h {RDS_AURORA_ENDPOINT}
비밀번호 입력
qwer1234
정상 접속 화면
postgres=>

Aurora 접속 상태에서 실행
create database trip_advisor;
create user "user" with password 'qwer1234';
grant all privileges on database trip_advisor to "user";
alter database trip_advisor owner to "user";
psql -U user -d trip_advisor -h {RDS_AURORA_ENDPOINT}

Parameter Group은 DB 설정값 관리 기능이다.
AWS 콘솔 이동
RDS → Parameter Groups → Create
설정
| 항목 | 값 |
|---|---|
| Name | 이니셜-pg-postgresql |
| Engine | Aurora PostgreSQL |
| Family | aurora-postgresql17 |
| Type | DB Cluster Parameter Group |

Parameter Group 수정
timezone = Asia/Seoul

RDS → Databases → 이니셜-rds-aurora → Modify
다음 변경
DB Cluster Parameter Group
→ 이니셜-pg-postgresql

SHOW timezone;
결과
Asia/Seoul

Aurora Reader 인스턴스를 생성한다.
AWS 콘솔 이동
RDS → Databases → 이니셜-rds-aurora → Actions → Add reader


psql -U user -d trip_advisor -h {WRITER_ENDPOINT}
CREATE TABLE attractions (
id SERIAL PRIMARY KEY,
name VARCHAR(255),
location VARCHAR(255),
average_rating VARCHAR(10),
photo_url VARCHAR(255)
);
while true; do
PGPASSWORD="qwer1234" psql \
-h {READER_ENDPOINT} \
-U user \
-d trip_advisor \
-c "select * from attractions;";
sleep 10;
done
INSERT INTO attractions
(name,location,average_rating)
VALUES
('Eiffel Tower','Paris',4.7),
('Statue of Liberty','New York',4.6),
('Taj Mahal','India',4.9);
10초 후 Reader에서 데이터 확인 가능하다.

Aurora는 Writer 장애 시 Reader가 자동 승격된다.
nslookup {WRITER_ENDPOINT} \
| grep -E "Address: 10\." \
| awk '{print $2}'
while true; do
nslookup {WRITER_ENDPOINT} \
| grep -E "Address: 10\." \
| awk '{print $2}'
sleep 1
done
AWS 콘솔 이동
RDS → Databases → 이니셜-rds-aurora → Actions → Failover
터미널에서 Writer IP가 변경된다.
즉
기존 Reader → 새로운 Writer
승격된 것이다.
Aurora 특징
| 항목 | 설명 |
|---|---|
| Multi-AZ | 여러 AZ에 DB 배치 |
| Reader Instance | 읽기 확장 |
| Failover | 자동 장애 조치 |
| Endpoint | 고정 IP 대신 DNS 사용 |