갬미의 성장일기

Day20 - AWS 스토리지, 데이터베이스 본문

Cloud/Cloud 공부일기

Day20 - AWS 스토리지, 데이터베이스

갬미 2022. 1. 28. 23:59

오늘 배운 내용

- 스토리지, 데이터베이스 기초

- AWS 스토리지, 데이터베이스 생성하기

스토리지 (Storage)

스토리지란 데이터를 저장하는 저장소를 의미한다 

디스크같은 하드웨어를 의미하기도 하고 (C,D 드라이브 등)

웹에서 제공하는 저장소를 의미하기도 한다 (구글 드라이브, 원드라이브 등)

모든 클라우드 서비스 업체들은 스토리지 서비스를 제공하며 '저장소'라고 하지않고 '스토리지'라고 부른다

AWS 스토리지 종류

Amazon S3 가장 대표적인 스토리지

가장 대표적인 스토리지 클라우드 상에서 확장이 가능하고 내구성이 뛰어난 객체 스토리지이다 

* 객체 스토리지 - 문서, 음악, 사진 등 모든 data 저장하는 스토리지

99.999999999% 내구성을 제공한다 (고가용성)

이벤트 트리거 기능 제공 (lambda)

 

 

Amazon S3 Gracier

S3보다 저렴하게 데이터를 저장할 수 있는 스토리지 

가능하고 내구성이 뛰어난 아카이브 스토리지이다 

* 아카이브 스토리지 - 자주 사용하는 data말고 가끔 꺼내어 볼, 검색할 데이터를 저장하는 스토리지

수신한지 오래된 메일이 아카이브 메일함으로 저장되는 것과 같음

-> 삭제되지는 않지만 언제든지 꺼내어 검색, 확인이 가능하다 

 

Amazon EFS

EC2 인스턴스용 확장 가능 네트워크 파일 스토리지

AWS와 온프레미스 리소스에서 사용할 수 있는 간단하고 확장가능하며 탄력적인 NFS 파일 시스템

최대 수천개의 EC2 인스턴스를 위한 스토리지이며 동시에 액세스 가능하다

다중 가용 영역에 걸쳐 데이터와 메타데이터를 저장한다 

 

 

Amazon EBS

EC2 인스턴스를 위한 내구성이 있는 블록수준 스토리지를 제공

데이터를 빠르게 액세스하고, 장기적으로 지속해야하는 경우 적합하다

스냅샷 기능을 제공한다 

프로비저닝을 통해 몇분만에 확장, 축소가 가능하다 

 

 

Amazon EFS는 EC2의 외장하드(USB)이고 Amazon EBS는 EC2의 하드디스크 역할을 한다 

데이터베이스 (Database)

데이터는 변수에 저장되며 여러개의 복잡한 데이터를 PC에 저장할떄는 정렬하여 저장한다

정렬 - 행,열,면으로 정렬 (ex. Excel)

 

네트워크로 연결된 사회 -> 데이터를 중앙에서 관리하고 저장, 사용한다 

(ex. 신세계 백화점 회원정보는 모든 신세계 백화점 지점에서 조회가 가능하다)

이를 Database 시스템이라고 한다

DataBase 시스템 - 중앙에서 Data를 모아 정렬, 사용 / 중복 Data는 저장하지 않는다 

 

관계형 Database:  현재 가장 많이 사용되고 있는 데이터베이스의 한 종류 

DB안의 여러개의 table이 서로 관계를 가지고 모여있는 Database이다

관계형 DB는 SQL이라는 질의어를 가진다 

(ex. Oracle, MySQL, MariaDB 등)

https://noahlogs.tistory.com/37

문서형 Database: 비관계형 DB종류중 하나, NoSQL이라고 칭한다

데이터를 테이블이 아닌 문서처럼 저장하는 데이터베이스를 의미하며 대표적인 DB로는 MongoDB가 있다

모바일 기기 통신이 많아진 요즘에는 빠른 통신을 위해 문서형식(json)으로 데이터를 처리하는 문서형DB가 많이 사용된다

분산 Database: 논리적으로는 하나의 시스템에 속하지만 물리적으로는 네트워크를 통해 연결된 여러 개의 컴퓨터 사이트에 분산되어 있는 데이터베이스

데이터의 처리나 이용이 많은 지역에 데이터베이스를 위치시킴으로써 데이터의 처리가 가능한 해당 지역에서 해결될 수 있도록 한다 (빠른 송수신!)

👇 DB 더 알아보기

 

[데이터베이스] SQL(구조화 쿼리 언어) vs NoSQL(비구조화 쿼리 언어) - 하나몬

[데이터베이스] SQL(구조화 쿼리 언어) vs NoSQL(비구조화 쿼리 언어) 데이터베이스의 개념부터 유형부터 SQL과 NoSQL 비교 그리고 NoSQL의 주요 유형까지 정리하였다. ❗️데이터베이스 👉 데이터베이

hanamon.kr

AWS 데이터베이스 종류

Amazon RDS

AWS의 분산 관계형 데이터베이스 서비스

복잡한 데이터관리 프로세스는 AWS가 알아서 처리해준다 

그냥 어플리케이션 내에서 데이터베이스를 사용하면 된다

 

 

https://aws.amazon.com/ko/relational-database/

Amazon Aurora 클릭

클라우드용으로 구축된 MySQL 및 PostgreSQL 호환 관계형 데이터베이스

DB 서비스에 보안까지 제공한다 

 

 

 

 

Amazon EC2의 베이터베이스와 Amazon RDS 차이점?

Amazon EC2 베이터베이스를 사용하는 경우 데이터엔지니어가 OS위에 사용하려는 DB설치, 설정, 관리를 직접 하는것이고

Amazon RDS는 아마존에서 DB의 설정, 운영, 백업 등의 기능을 편하게 이용할 수 있게 해주는 EC2와 분리된 DB전용서버이다

데이터 엔지니어가 회사에 있다면 Amazon EC2를 그렇지 않다면 Amazon RDS를 사용하도록 한다 

 

오늘의 실습

실습 1

VPC -> subnet 4개 만들기 (www, api, rds1 ,rds2 - rds 는 가용영역 겹치면 안됨)

nacl, 보안그룹 - 각 서브넷별로 1개씩 추가, 서브넷 연결 (RDS는 하나로)

  • RDS는 가용영역이 다른 두개 이상의 서브넷이 필요하다
  • 이러한 서브넷은 동일한 AWS 리전의 다른 가용 영역에 있어야함 / 데이터를 안전하게 관리하기 위해 두개의 rds를 운영하기 때문

 

실습2 

인터넷 게이트웨이 , 라우트 테이블 연결 (web 서브넷에 연결)

EC2 1개를 프리티어로 생성

OS : 프리티어 우분투 20.04 x64(x86) - 서브넷 확인

SG를 www와 연결 (EC2 만들때 기본 보안그룹 선택) 

할당된 ip주소 확인

  • 연결된 서브넷의 ip범위내에서 랜덤으로 배정된다 
  • 10.0.0.1~3은 할당되지 않음 <- 1개는 gateway용, 2개는 클라우드 서브넷끼리 연결하기 위한 예비 주소

 

실습3

EIP - 탄력적 ip 주소 연결 (공인 ip할당)

EC2인스턴스 연걸 (EC2 키페어 꼭 챙기기, 없으면 다시 생성 해야함 / 있으면 있는거 쓰고, 없으면 다운받기)

NACL - www - ssh 포트를 in/out 추가

보안그룹 - www - ssh 포트를 in에 추가 

  • NACL과 보안그룹에 IP 허용이 되어야 진짜 인터넷 연결이 가능하다
    • NACL은 in/out 바운드 규칙을 모두 생성해야하고 보안그룹은 out에 모든ip가 허용되어 있으므로 하지 않아도 됨

 

실습4

NACL - API : In/Out 추가 5000 포트 (소스 : www 서브넷 영역만 통과)

NACL - DB : In/Out 추가 MySQL 포트 (소스 : api 서브넷 영역만 통과)

보안영역 - API : In 추가 5000 포트 (소스 : www 서브넷 영역만 통과)

보안영역 - DB: In 추가 MySQL 포트 (소스 : api 영역만 통과)

  • Flask와 AWS 연결을 위해 5000포트 열기
  • DB 사용위해 MySQL 포트 열기

 

실습5

RDS  - MySQL : 프리티어 생성 

서브넷 그룹 생성 - 생성하지 않으면 MySQL 생성 못함

DB에서 RDS 서비스 생성함 SG - 이미 만들어지 ㄴ부분 선택 

생성하는데 최소 5분~10분

  • DB 만들기 - 서브넷 그룹이 생성되어야 RDS 생성이 가능하다
  • 서브넷 그룹을 만들때는 가용영역을 잘 보고 서브넷을 묶는다 

오늘의 회고

  • 오늘 이론은 그나마 알아들을만 했다 근데 실습하려니까 이것저것 꼬여서 조금 헷갈렸다  
    • 연휴동안 오늘 실습한 것까지 시뮬레이션 하면서 익숙해지도록 해야겠다
  • 다음주는 연휴 + 깃 특강이 있어서 진도가 나가지 않는다 1주일 동안 네트워크 공부랑 AWS 서비스 공부좀 해야겠다 하하
Comments