클라우드 보안 컨설팅 실무 3일차 (22/11/09)
- RDS (Relational Database Service, 관계형 데이터 베이스)
- AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스
- 경제적이고 크기 조절이 가능한 용량을 제공하고 공통 데이터베이스 관리 작업을 관리
- 스토리지 유형
- 범용 (SSD) : 일반적으로 사용하는 SSD (무난, 가격 적당)
- 프로비저닝된 IOPS(PIOPS) : 응답시간이 빠르고 고성능 SSD
ex) 고객이 요구하는 경우, 금융(은행, 증권, 카드 등) 등
- Magnetic : 테이프, 매우매우 느림, 매우 저렴 → 장기보관, 법정에서 의무 보유기간 (병원 진료기록 10년간 보관)
- 배포유형
- 단일 AZ(가용영역)에 배포 : 가격은 저렴하지만, 가용성이 떨어짐
- 다중 AZ(가용영역)에 배포 : 가격은 비싸지만, 가용성이 높아짐
- 리전 및 가용영역에 배포
- Local Zones 통해 사용자에게 가까운 여러 위치에서 컴퓨팅, 스토리지 등 리소스 배치
- 모든 Amazon RDS 활동은 현재 기본 AWS 리전에서만 실행 (멀티 리전 아님)
- DB 인스턴스 생성할 때 가용 영역을 선택하거나 Amazon RDS가 무작위로 가용 영역을 선택하도록 설정
- 다중 AZ DB 배포에서는 기본 및 세컨더리 DB 인스턴스의 가용 영역을 선택할 수 없습니다
- Local Zones
- 로컬 영역은 사용자와 지리적으로 가까운 AWS 리전의 확장
- 현재는 오레곤 리전에서 LA에서만 RDS 로컬 영역이 지원됨
RDS 활용하여 웹서버와 연결하기 실습)
- Web Server 생성
① 이름 : ec2_webserver_amzn
② AMI : Amazon Linux 2
③ 인스턴스 유형 : t2.micro
④ 키 페어 : ksh.pem
⑤ vpc : ksh_vpc
⑥ 서브넷 : public subnet
⑦ 기존 보안 그룹 : webserver
→ 인스턴스 시작

⑧ 가용 영역 (3a)
⑨ IPv4 CIDR 블록 (10.1.3.0/24) 설정


⑩ 보안그룹 > webserver > 인바운드 규칙 편집 > HTTPS (0.0.0.0) 으로 생성 > 규칙 저장
- RDS 설정

① DB 인스턴스 식별자
② 자격 증명 설정

③ EC2 컴퓨팅 리소스에 연결 클릭
④ EC2 인스턴스 클릭

⑤ VPC 보안그룹(방화벽) 새로 생성(rds_db_server)

Server | Server port | Client | |
Web Service | Apache2, Nginx, IIS 등 | 80 443 |
크롬, Edge, IE (Web Browser) |
SSH | SSH 서버 | 22 | SSH 클라이언트 Putty |
SQL | Mysql-server MariaDB-server |
3306 | Mysql-client MariaDB-client |
- Web Server 접속

$ sudo yum update
$ sudo amazon-linux-extras install php8.0 mariadb10.5

$ sudo yum install -y httpd

$ sudo systemctl start httpd
$ sudo systemctl enable httpd

$ sudo usermod -a -G apache ec2-user
$ exit
(SSH로 다시 접속)
$ groups // 그룹 목록 확인
$ sudo chown -R ec2-user:apache /var/www // 소유권 변경
$ sudo chmod 2775 /var/www // 권한 변경
$ find /var/www -type d -exec sudo chmod 2775 {} \; // 디렉토리 권한 찾아서 변경
$ find /var/www -type f -exec sudo chmod 0664 {} \; // 파일 권한 찾아서 변경
참고) 우분투에서 mysql-client 연결
$ sudo apt install mysql-client
- DB 인스턴스에 Apache 웹 서버 연결

$ cd /var/www
$ mkdir inc
$ cd inc

$ vi dbinfo.inc
<?php
define('DB_SERVER', '엔드포인트:3306');
define('DB_USERNAME', 'admin');
define('DB_PASSWORD', '패스워드');
define('DB_DATABASE', 'sample');
?>
:wq

$ cd /var/www/html
$ >SamplePage.php
$ vi SamplePage.php

- 코드 복사 붙여넣기

- sample 데이터베이스 만들기

$ sudo mysql -h 엔드포인트 -u admin -p // rds로 접속
MySQL > create database sample; // database 생성
MySQL > exit
