Database Service (RDS) (Linux)

kauze98·2025년 5월 19일

AWS 실습

목록 보기
11/16

1. 개요

Amazon Relational Database Service(Amazon RDS)는 AWS 클라우드에서 관계형 데이터베이스를 쉽고 빠르게 설치, 운영, 확장할 수 있도록 지원하는 완전관리형(Managed) 데이터베이스 서비스입니다. 즉, 사용자는 데이터베이스 인프라 관리의 복잡함 없이, 몇 번의 클릭만으로 다양한 데이터베이스 엔진(MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Amazon Aurora 등)을 선택해 인스턴스를 생성하고, 애플리케이션에 연결하여 사용할 수 있습니다.

Amazon RDS의 주요 특징 및 장점

완전관리형 서비스

  • 백업, 소프트웨어 패치, 장애 감지 및 복구, 모니터링 등 반복적이고 복잡한 데이터베이스 관리 작업을 AWS가 자동으로 처리합니다. 사용자는 데이터베이스 운영 부담을 크게 줄이고, 애플리케이션 개발과 비즈니스 로직에 집중할 수 있습니다.

다양한 데이터베이스 엔진 지원

  • MySQL, PostgreSQL, MariaDB, Oracle, SQL Server, Amazon Aurora 등 주요 상용 및 오픈소스 데이터베이스 엔진을 지원합니다.

고가용성 및 내결함성

  • Multi-AZ(가용 영역) 배포와 자동 장애 조치, 읽기 전용 복제본(Read Replica) 기능을 통해 고가용성과 데이터 내구성을 제공합니다.

자동 백업 및 복구

  • 자동 백업, 스냅샷, 포인트 인 타임 복구(Point-in-time recovery) 기능을 통해 데이터 손실 위험을 최소화합니다.

보안

  • AWS IAM(Identity and Access Management)과 연동하여 접근 제어가 가능하며, VPC 내 프라이빗 서브넷에 인스턴스를 배치해 외부 노출을 차단할 수 있습니다. 데이터 암호화(저장 및 전송 중)도 지원합니다.

확장성 및 성능 최적화

  • 필요에 따라 스토리지와 컴퓨팅 리소스를 손쉽게 확장할 수 있으며, 다양한 인스턴스 타입과 스토리지 옵션(SSD 등)을 통해 성능을 최적화할 수 있습니다.

비용 효율성

  • 사용한 만큼만 비용을 지불하는 Pay-as-you-go 방식과 예약 인스턴스, 전용 인스턴스 등 다양한 과금 옵션을 제공합니다.

 

Amazon RDS를 사용하여 MySQL 데이터베이스를 생성하고 관리하는 과정은 관리형 서비스의 편의성과 보안 최적화를 중심으로 진행됩니다. 이 실습에서는 애플리케이션 백엔드용 데이터베이스 구축을 위해 RDS 인스턴스 생성, 세션 관리자 연결, SQL 작업 수행의 세 단계로 구성됩니다.

 


2. RDS 인스턴스 생성

  • 실습 환경 최적화: 개발/테스트용 템플릿 선택으로 비용 절감

  • 보안 강화: VPC 보안 그룹 적용을 통한 네트워크 트래픽 제어

  • 유지관리 간소화: 자동 백업/업그레이드 비활성화로 실습 환경 관리 부담 감소

 

단계별 구성 및 목적

1. 엔진 및 템플릿 선택

목적: 실습 환경에 적합한 리소스 할당

  • Engine type: MySQL 선택 (애플리케이션 요구사항 충족)

  • Templates: Dev/Test (프로덕션 환경과 다른 성능/비용 프로필 적용)

2. 배포 구성

목적: 단순 아키텍처 유지

  • Deployment options: Single DB Instance (Multi-AZ 구성 없이 기본 가용성 유지)

  • DB instance class: db.t3.micro (프리 티어 호환 인스턴스 타입)

3. 접근 제어 설정

목적: 안전한 네트워크 통신 보장

  • VPC: Lab VPC 선택 (실습용 격리 네트워크)

  • Security group: RDS Security Group 적용 (미리 정의된 방화벽 규칙 사용)

# 보안 그룹 규칙 예시 (인바운드 3306 포트 허용)
Type: MYSQL/Aurora | Protocol: TCP | Port: 3306 | Source: [EC2 보안 그룹]

4. 데이터베이스 옵션

목적: 초기 스키마 준비

  • Initial database name: lab (애플리케이션 연결용 기본 데이터베이스 생성)

  • Master username/password: student/DBPassword (실습용 간소화된 자격증명)

5. 추가 구성

목적: 실습 환경 간소화

  • 백업 비활성화: Enable automated backups 해제 (실습 데이터 보존 불필요)

  • 자동 업그레이드 중지: Enable auto minor version upgrade 해제 (버전 변경 방지)

 


3. AWS Systems Manager Session을 사용하여 데이터베이스에 연결

1. Session Manager 세션 시작

목적: 공개 IP 노출 없이 EC2 인스턴스 접근

  • CommandHostSessionUrl 활용: 브라우저 기반 터미널 접속

  • IAM 역할 검증: EC2 인스턴스에 AmazonSSMManagedInstanceCore 정책 부착 확인

# 세션 시작 예시 (AWS CLI)
aws ssm start-session --target [EC2_인스턴스_ID]

 

2. MySQL 클라이언트 설치

목적: 데이터베이스 연결 도구 준비

# Ubuntu/Debian
sudo apt-get update && sudo apt-get install mysql-client -y

# Amazon Linux
sudo yum install mysql -y

3. RDS 엔드포인트 확인

  • RDS 콘솔 → Databases → my-rds → Connectivity & security → Endpoint 복사

  • 포트 기본값: 3306 (MySQL/MariaDB)

4. 데이터베이스 연결 실행

mysql --user student --password --host [RDS_엔드포인트]
  • 패스워드 입력: 실습 왼쪽 패널의 DBPassword 값 사용

  • 연결 성공 시 MySQL [(none)]> 프롬프트 표시

profile

0개의 댓글