SK shieldus Rookies 9기/클라우드 보안 컨설팅 실무

클라우드 보안 컨설팅 실무 3일차 (22/11/09)

ksh_5 2022. 11. 9. 14:42
  • 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) 설정

 

 

private subnet 생성

 

 

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

 

 

- RDS 설정

 

더보기

① DB 인스턴스 식별자

② 자격 증명 설정

 

 

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

④ EC2 인스턴스 클릭

 

 

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

 

 

생성된 RDS

 

 

  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

 

 

- 코드 복사 붙여넣기

 

 

퍼블릭 IP/SamplePage.php로 접속

 

 

- sample 데이터베이스 만들기

 

더보기

$ sudo mysql -h 엔드포인트 -u admin -p     // rds로 접속

MySQL > create database sample;      // database 생성

MySQL > exit

 

 

퍼블릭 IP/SamplePage.php로 접속