클라우드 보안 3일차

Jh Park·2022년 9월 29일
post-thumbnail

클라우드 서비스 모델

1) IaaS (Infrastructure as a Service)
클라우드에서 인프라를 제공해주는 서비스

  • 인프라는 가상머신(Ubuntu, Amazon Linux, Windows Server 등), 네트워크(VPC, Subnet), 스토리지(S3)
  • AWS에서는 HW, Network, Security 등만 책임지고, 나머지는 사용자의 책임 (OS, Application, Data, Platform 등등)
  • 장점 : 대부분의 통제가 가능하고 가격이 저렴함
  • 단점 : 사용자가 확장, 관리(백업, 용량, 보안, 장애 등)해야 함

2) PaaS (Platform as a Service)
클라우드에서 플랫폼을 제공해주는 서비스

  • 플랫폼은 개발자가 개발할 수 있는 환경까지 제공해줌 (RDS)
  • AWS에서는 HW, Network, Security + OS + Application설치 및 관리,
  • 사용자는 Application을 사용하기만 하면됨, Data에 대한 책임
  • 단점 : OS 및 Application에 대한 완전한 통제권을 갖기 어려움 (root권한이 없음, admin/girlsday 등을 만들어서 사용)
  • 장점 : 관리를 해주는 부분은 신경을 안써도 됨 (백업, 용량, 보안, 장애 관리 등을 AWS에서 해줌)
Paas-ta : 정부에서 개발자들이 창업을 할 수 있는 환경을 만들어줌

3) SaaS (Software as a Service)
클라우드에서 소프트웨어를 제공해주는 서비스

  • 사용자는 ID/PW등 인증만 하면 모든 서비스를 이용할 수 있음, Client용 SW만 있으면 됨.
  • 단점 : 의존성 문제로 마이그레이션하기 어려움, 서비스가 많기에 가격이 비쌈, Customizing 하기 어려움.
  • 장점 : IT인력이 많이 필요하지 않음
  • 주로 커피/치킨/피자 프랜차이즈, 무역(의류, 수입차 등), 고객관련 Biz등이 이용

RDS

  • RDS(Relational Database Service) 관계형 데이터베이스 서비스
  • AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스
  • Database 서버를 클라우드에서 동작, 이용자는 Database를 사용(PaaS)

장점 :

DB서버 관리필요하지 않음
DB는 Master DB에서 쓰기를 수행하여 데이터 일관성 때문 로드밸런서를 사용의 어려움, 그렇기에 Master & Slave 구조를 사용하지만 한계가 있기에 대용량을 사용한다. RDS를 사용하면 증축이 용이 하다는 장점이 있다. ★★★

Master & Slave 구조: Master는 등록/수정/삭제 쿼리 요청이 있을시 Binarylog를 생성하여 Slave로 전달, Slave DB는 Master DB에서 정보를 받고 사용자들이 읽기 쿼리를 처리해주며 Master의 정보를 복제해놓는 역할을 담당. 쿼리 요청을 분담함으로써 DB 부하를 분산

단점 :

  • Database에 대한 root권한이 없고 권한이 높은 사용자 권한만 주어짐
  • Database가 설치된 서버와 OS에 대한 권한 없음★★

사전 조건

  • RDS는 가용영역이 2개 이상이 필요함
  • VPC에서 DNS 호스트 이름 편집을 활성화해야 접속할 수 있는 URL을 생성이 가능하다. (VPC > DNS 호스트 이름 편집> 활성화)

RDS에 연결 방법

  • Public IP 부여 : EC2와 연결 안됨
  • EC2와 연결 : 지정한 EC2가 필요하므로 EC2를 미리 생성하고 연결해야 한다. 이 경우 Public IP를 Workbench 사용 불가하며 RDS를 접속하기 위해서는 EC2로 먼저 접근해야하며 접근방법으로는 SSH로 접속하고 VPN을 사용하는 방법이 있다.

만드는법

RDS > 데이터베이스 생성

  • 표준생성

  • 엔진 유형

  • 설정

    • 식별자는 DB인스턴스 전역에서 고유한 식별자 설정
    • 마스터 사용자 이름과 암호 설정
  • 연결

    • 컴퓨터 리소스 > 지금은 EC2와 연결을 안함
    • VPC설정
    • 퍼블릭 엑세스 IPv4의 퍼블릭 주소를 할당의 여부
      • EC2와 연결하게 되면 퍼블릭 엑세스를 하지못한다.
  • 생성

3-tier 실습

Client
Server - EC2
Datavase - RDS

  1. EC2 생성
  2. RDS 생성
  • 엔진 유형
    • mysql 선택
  • 설정
    • 마스터 사용자와 암호를 꼭 기억해둘것
  • 연결
    • EC2 연결 후 만든 인스턴스 선택
  • 생성 후 database 선택 후 endpoint 확인
  1. EC2에서의 작업
    EC2 > 연결에서 ssh 클라이언트에서 퍼블릭 주소 확인
$ sudo apt update
$ sudo apt install vim
$ sudo apt install apache2
$ sudo apt install php php-mysql php-common php-gd php-fpm php-xml php-json php-curl git
$ cd /var/www/html
$ sudo git clone https://github.com/gnuboard/gnuboard5
$ cd gnuboard5/
$ sudo mkdir data
$ sudo chmod 707 data
$ sudo service apache2 restart
$ sudo apt install mysql-client
$ sudo mysql -h [엔드포인트] -u  [RDS계정]  -p
   (gnuboard, board, 권한부여)
  • vim php gnuboard 등만 설치 후 EC2 접속 상태에서 RDS 엔트포인트 접속 RDS계정은 RDS 만들 때 사용한 마스터 사용자
  1. RDS에서의 작업
    $ sudo mysql -h [엔드포인트] -u [계정명] -p
mysql>  create  database  gnuboard;  
mysql>  create  user  board@localhost  identified by 'cyber12#$';              
mysql>  grant  all  privileges  on  gnuboard.*  to  board@localhost;
  • 데이터베이스 gnuboard 생성 후 user 생성하여 권한 설정
  1. Gnuboard에서의 작업
  • host는 [RDS의 endpoint]:[포트번호]

0개의 댓글