Skip to main content

CLF-C02 DevOps, Storage, database

· 18 min read
유기한
Principal Engineer @ Samsung

AWS CodePipeline

  • 기본적으로 빠르고 안정적인 애플리케이션 및 인프라 업데이트를 위해 릴리스 파이프라인을 자동화 도구

AWS CodeStar (like vscode + jenkins)

  • 애플리케이션 코드 코딩, 구축, 테스트 및 배포를 위한 전체 개발 및 지속적인 전달 도구 체인(CI/CD) 을 제공
  • Atlassian JIRA Software에서 제공하는 통합 문제 추적 기능을 포함한 프로젝트 관리 대시보드가 함께 제공

AWS CodeCommit (like github)

  • 기업이 안전하고 확장성이 뛰어난 프라이빗 Git 리포지토리

AWS CodeBuild (like jenkins)

  • 소스 코드를 컴파일하고, 테스트를 실행하고, 배포할 준비가 된 소프트웨어 패키지를 생성하는 완전 관리형 빌드 서비스

스토리지 및 데이터베이스

Instance Store and Amazon Elastic Block Store (Amazon EBS)

Instance Store

  • 블록 수준 스토리지 볼륨은 물리적 하드 드라이브처럼 동작

  • 인스턴스 스토어는 EC2 인스턴스에 "임시" 블록 수준 스토리지를 제공

  • 인스턴스가 종료되면 인스턴스 스토어의 데이터가 손실됨

Amazon Elastic Block Store (Amazon EBS)

  • Amazon EC2는 인스턴스에서 사용할 수 있는 블록 수준 스토리지 볼륨을 제공하는 서비스

  • 최대 16TiB 크기, 기본 SSD 제공, HDD 옵션으로 제공

  • EC2 인스턴스를 중지 또는 종료하더라도 연결된 EBS 볼륨의 모든 데이터를 사용 가능

  • EBS Volume은 보존해야 하는 데이터를 위한 것이므로 데이터 백업이 중요

    • Amazon EBS Snapshot을 생성하여 EBS 볼륨을 증분 백업 가능

EBS Shopshot

  • EBS 스냅샷은 증분 백업이다.
  • 처음 볼륨을 백업하면 모든 데이터가 복사됨
  • 이후의 백업에서는 가장 최근의 스냅샷 이후 변경된 데이터 블록만 저장
  • 증분 백업은 백업이 실행될 때마다 스토리지 볼륨의 모든 데이터가 복사되는 전체 백업과는 다름

Amazon Simple Storage Service (Amazon S3)

객체 스토리지 (Object Storage)

  • 객체 스토리지에서 각 객체는 데이터, 메타데이터, 키로 구성
  • 블록 스토리지에서 파일을 수정하면 변경된 부분만 업데이트 되지만, 객체 스토리지에서 파일을 수정하면 전체 객체가 업데이트됨

Amazon Simple Storage Service (Amazon S3)

  • Amazon Simple Storage Service는 객체 수준 스토리지를 제공하는 서비스
  • 데이터를 버킷에 객체로 저장
  • 이미지, 동영상, 테스트 파일등 모든 유형의 파일을 업로드 가능
  • S3의 저장공간을 무제한으로 제공
  • 단, 저장할 수 있는 객체의 최대 파일 크기는 5TB 임
  • S3에 파일을 업로드할 때 권한을 설정하여 파일에 대한 표시 여부 및 액세스를 제어할 수 있음.
  • S3 버전 관리 기능을 사용하여, 시간 경과에 따른 객체 변경 사항을 추적 가능

Amazon S3 Storage Class

  • S3는 사용한 만큼 비용 지불

  • S3 스토리지 클래스를 선택할 때 다음 두가지 요소를 고려

    • 데이터를 검색할 빈도
    • 필요한 데이터 가용성

S3 Standard

  • 자주 액세스 하는 데이터용으로 설계
  • 최소 3개의 가용 영역에 데이터를 저장
  • 고가용성을 제공

S3 Standard-Infrequent Access (S3 Standard-IA)

  • 자주 액세스하지 않는 데이터에 이상적
  • S3와 비슷하지만 스토리지 가격은 더 저럼, 검색 가격은 더 높음
  • 최소 3개의 가용 영역에 데이터를 저장

S3 One Zone-Infrequnt Access (S3 One Zone-IA)

  • 단일 가용성에 데이터를 저장
  • S3 Standard-IA보다 낮은 스토리지 가격
  • 스토리지 비용 절감 또는 장애가 발생해도 손쉽게 재현 가능한 경우 사용

S3 Intelligent-Tiering

  • 액세스 패턴을 알 수 없거나 자주 변화하는 데이터에 이상적
  • 객체당 소량의 월별 모니터링 및 자동화 요금을 부과
  • 사용자가 30일 연속 객체에 액세스 하지 않으면 자동으로 S3 Standard-IA로 이동
  • S3 Standard-IA 에 저장된 객체 액세스시 S3 Standard로 이동

S3 Glacier Instant Retrieval

  • 즉각적인 액세스가 필요한 아키이브 데이터에 적합
  • 몇 밀리초 만에 객체 검색 가능
  • S3와 동일한 성능으로 검색 가능

S3 Glacier Flexible Retrieval

  • 데이터 보관용으로 설계된 저비용 스토리지
  • 객체를 몇 분에서 몇 시간 이내에 검색
  • 검색 보장 시간 : 1분 - 12시간

S3 Glacier Deep Archive

  • 가장 저렴한 객체 스토리지 클래스로 보관에 적합
  • 12시간 이내에 객체를 검색
  • 일년에 한두번 액세스 되는 데이터의 장기 보존 및 디지털 보존을 지원
  • 검색시간 : 12 - 48시간
  • 모든 객체가 최소한 3개의 지리적으로 분산된 가용영역에 복제되고 저장됨

S3 Outposts

  • Amazon S3 Outposts에 S3 버킷을 생성
  • AWS Outposts에 더 쉽게 데이터를 검색, 저장 및 액세스
  • 온프레미스 AWS Outposts 환경에 객체 스토리지를 제공

Amazon Elastic File System (Amazon EFS)

File Storage

  • 파일 스토리지에서는 여러 클라이언트가 공유 파일 폴더에 저장된 데이터에 엑세스할 수 있다.
  • 이 접근 방식에서는 스토리지 서버가 블록 스토리지를 로컬 파일 시스템과 함께 사용하여 파일을 구성
  • 클라이언트는 파일 경로를 통해 데이터에 액세스
  • 파일 스토리지는 많은 수의 서비스 및 리소스가 동시에 동일한 데이터에 액세스해야 하는 사용 사례에 이상적
  • Amazon Elastic File System (Amazon EFS) 은 AWS 클라우드 서비스 및 온프레미스 리소스와 함께 사용되는 확장 가능한 파일 시스템

Amazon EBS 와 Amazon EFS 비교

Amazon EBS

  • Amazon EBS 볼륨은 단일 가용 영역에 데이터를 저장
  • 한개의 EC2인스턴스의 접근 허용
  • Amazon EC2 인스턴스를 EBS 볼륨에 연결하려면 Amazon EC2 인스턴스와 EBS 볼륨 모두 동일한 가용 영역에 상주

Amazon EFS

  • Amazon EFS는 리전별 서비스, 여러 가용 영역에 걸쳐 데이터를 저장
  • Amazon EFS는 최대 수천 개의 Amazon EC2 인스턴스 접근 허용
  • 중복 스토리지를 사용하면 파일 시스템이 위치한 리전의 모든 가용 영역에서 동시에 데이터에 액세스 가능
  • 온프레미스 서버는 AWS Direct Connect를 사용하여 Amazon EFS에 액세스 가능

Amazon Relational Database Service (Amazon RDS)

관계형 데이터 베이스

  • 관계형 데이터베이스에서는 데이터가 다른 데이터 부분과 관련된 방식으로 저장
  • **정형 쿼리 언어(SQL)**를 사용하여 데이터를 저장하고 쿼리

Amazon Relational Database Service

  • Amazon RDS는 AWS 클라우드에서 관계형 데이터베이스를 실행할 수 있는 서비스

  • Amazon RDS는 하드웨어 프로비저닝, 데이터베이스 설정, 패치 적용 백업과 같은 작업을 자동화하는 관리형 서비스

  • Amazon RDS를 다른 서비스와 통합하면 AWS Lambda를 사용하여 서버리스 애플리케이션에서 데이터베이스를 쿼리하는 등 비즈니스 및 운영 요구 사항을 충족 가능

  • 다양한 보안 옵션 제공

    • Amazon RDS 데이터베이스 엔진이 저장 시 암호화(데이터가 저장되는 동안 데이터를 보호)
    • 전송 중 암호화(데이터를 전송 및 수신하는 동안 데이터를 보호)를 제공

Amazon RDS 데이터 엔진

  • 지원되는 데이터베이스 엔진

    • Amazon Aurora
    • PostgreSQL
    • MySQL
    • MariaDB
    • Oracle Database
    • Microsoft SQL Server

Amazon Aurora

  • Amazon Aurora는 엔터프라이즈급 관계형 데이터베이스
  • 이 데이터베이스는 MySQL 및 PostgreSQL 관계형 데이터베이스와 호환
  • 워크로드에 고가용성이 필요한 경우 Amazon Aurora를 고려, 장애를 자동 복구
  • 이 데이터베이스는 6개의 데이터 복사본을 3개의 가용 영역에 복제하고 지속적으로 Amazon S3에 데이터를 백업

Amazon DynamoDB

비관계형 데이터베이스

  • 비관계형 데이터베이스에서는 테이블

  • 비관계형 데이터베이스의 구조적 접근 방식 중 한 유형은 키-값 페어

    • 키-값 페어에서는 데이터가 항목(키)으로 구성되고 항목은 속성(값)
    • 속성을 데이터의 여러 기능으로 생각하면 됨
  • 키-값 데이터베이스에서는 언제든지 테이블의 항목에서 속성을 추가하거나 제거할 수 있습니다.

  • 테이블의 모든 항목에 동일한 속성이 있어야 하는 것은 아닙니다. 

  • 자체 복구 DB 아님

Amazon DynamoDB

  • Amazon DynamoDB는 키-값 데이터베이스 서비스

  • 모든 규모에서 한 자릿수 밀리초의 성능을 제공

  • DynamoDB 기능

    • DynamoDB는 서버리스이므로 서버를 프로비저닝, 패치 적용 또는 관리할 필요가 없음
    • 소프트웨어를 설치, 유지 관리, 운영할 필요도 없음
  • 자동 크기 조정

    • 데이터베이스 크기가 축소 또는 확장되면 DynamoDB는 용량 변화에 맞춰 자동으로 크기를 조정하면서도 일관된 성능을 유지
    • 크기를 조정하는 동안에도 고성능이 필요한 사용 사례에 적합한 선택
    • 하루 최대 100조개의 요청으로 확장 가능
  • 자체 복구 DB 아님

Amazon Redshift (DB)

  • Amazon Redshift는 빅 데이터 분석에 사용할 수 있는 데이터 웨어하우징 서비스
  • 이 서비스는 여러 원본에서 데이터를 수집하여 데이터 간의 관계 및 추세를 파악하는 데 도움이 되는 기능을 제공
  • 자체 복구 DB 아님

AWS Database Migration Service (AWS DMS)

  • AWS Database Migration Service (AWS DMS)는 관계형 데이터 베이스, 비관계형 데이터 베이스 및 기타 유형의 데이터 저장소를 마이그레이션할 수 있는 서비스

  • AWS DMS를 사용하면 원본 데이터베이스와 대상 데이터베이스 간에 데이터를 이동

  • 원본 데이터베이스와 대상 데이터 베이스는 유형이 동일할 필요가 없음.

    • MS SQS - Amazon Aurora PostgreSQL 등
  • 마이그레이션하는 동안 원본 데이터베이스가 계속 작동하므로 데이터베이스를 사용하는 애플리케이션의 가동 중지 시간을 줄일 수 있음.

AWS DMS의 사용 사례

  1. 개발 및 테스트 데이터베이스 마이그레이션

    • 프로덕션 사용자에게 영향을 주지 않고 개발자가 프로덕션 데이터에서 애플리케이션을 테스트할 수 있도록 지원
  2. 데이터베이스 통합

    • 여러 데이터베이스를 단일 데이터베이스로 결합
  3. 연속 복제

    • 일회성 마이그레이션을 수행하는 것이 아니라 데이터의 진행 중 복제본을 다른 대상 원본으로 전송

추가 데이터 베이스 서비스

Amazon DocumentDB

  • MongoDB 워크로드를 지원하는 문서 데이터베이스 서비스

Amazon Neptune

  • 그래프 데이터베이스 서비스
  • Amazon Neptune을 사용하여 추천 엔진, 사기 행위 탐지, 지식 그래프와 같이 고도로 연결된 데이터 세트로 작동하는 애플리케이션을 빌드하고 실행 가능

Amazon Quantum Ledger Database (Amazon QLDB)

  • 원장 데이터베이스 서비스
  • Amazon QLDB를 사용하여 애플리케이션 데이터에 발생한 모든 변경 사항의 전체 기록을 검토
  • 감사용 데이터 변경 불가능한 데이터 베이스

Amazon Managed Blockchain

  • 오픈 소스 프레임워크를 사용하여 블록체인 네트워크를 생성하고 관리하는 데 사용할 수 있는 서비스
  • Blockchain은 여러 당사자가 중앙 기관 없이 거래를 실행하고 데이터를 공유할 수 있는 분산형 원장 시스템

Amazon ElastiCache

  • 자주 사용되는 요청의 읽기 시간을 향상시키기 위해 데이터베이스 위에 캐싱 계층을 추가하는 서비스

  • 지원 서비스 유형

    • Redis
    • Memcached

Amazon DynamoDB Accelerator

  • DynamoDB용 인 메모리 캐시
  • 응답 시간을 한 자릿수 밀리초에서 마이크로초까지 향상 가능

Amazon EMR (분석 서비스)

  • 기업, 연구원, 데이터 분석가 및 개발자가 방대한 양의 데이터를 쉽고 비용 효과적으로 처리할 수 있도록 지원하는 웹 서비스

  • 기계 학습, 데이터 변환(ETL), 금융 및 과학 시뮬레이션, 생물정보학, 로그 분석, 딥 러닝을 포함한 광범위한 빅 데이터 문제를 안전하고 안정적으로 처리

  • 종류

    • Hadoop 기반의 EMR
    • Apache Spark 기반의 EMR