[AWS] Cloud Practitioner 요약 정리 (ing)


  • 전체적으로 읽어보면서 이해하고, 무조건 외우고 갈 것
  • 이론 + 실무에서 얻은 지식을 짬뽕해서 작성함




1. AWS에 access하는 방법


  • AWS Management Console: 관리 콘솔에 직접 접근
  • Command Line Interface (AWS CLI): command line으로 접근
  • SDK (Software Development Kit): 개발자가 애플리케이션 코드에서 AWS 서비스에 액세스할 수 있는 메커니즘

2. 컴퓨팅


(1) AWS EC2(Elastic Computing Cloud)

  • elastic(탄력적인): 애플리케이션의 수요에 따라 서버를 유연하게 늘리거나 줄이기 가능
  • compute: 컴퓨팅. 서버를 의미함
  • cloud: 구름
    => 서버들을 탄력적으로 관리가 가능함 = EC2 인스턴스들

(2) AWS EC2 Container Service (ECS)

  • 도커 컨테이너를 지원하는 컨테이너 관리 서비스
  • 클러스터 관리 인프라를 설치, 운영 및 확장

(3) AWS EC2 Container Registry (ECR)

  • 도커 컨테이너 이미지를 저장, 관리 및 배포할 수 있게 해주는 완전관리형 도커 컨테이너 레지스트리
  • AWS Identity and Access Management(IAM)과 통합 -> 각 repository를 리소스 수준에서 제어할 수 있음
  • 선수금이나 약정이 없음 -> repository에 저장한 데이터와 인터넷으로 전송한 데이터 양에 대해서만 비용을 지불하면 됨

(4) AWS Lightsail

  • AWS에서 가상 프라이빗 서버를 시작하고 관리할 때 사용
  • 프로젝트 착수에 필요한 모든 것(SSD 기반 스토리지, 데이터 전송, DNS 관리, 고정 IP 주소, 가상 머신 등)이 포함되어 있음 -> 서비스를 저렴하고 예측 가능한 비용으로 사용 가능

(5) AWS Batch

  • 수많은 배치 컴퓨팅 작업을 효율적으로 실행 및 관리할 수 있음: 주로 데이터 사이언티스트 (인공지능)에서 많이 사용함
  • core가 많이 필요한 실험에 좋음 (컴퓨터에서 core란 사람으로 따지면 사람 수라고 생각하면 됨)
    • 암 연구에 대해 천 만개의 화합물 스크리닝 실행을 위해 최대 9만 코어를 동시에 이용하여 39년 -> 9시간으로 시간 절약

(6) AWS Elastic Beanstalk

  • Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker를 사용해서 Apache, Nginx, Passanger, IIS 같은 서버에서 개발된 웹 애플리케이션 및 서비스를 배포 및 확장하는 서비스
  • 그대로 업로드하면 되는 것이기 때문에 사용이 간편함

(7) AWS Lambda

  • Serverless: 서버를 프로비저닝하거나 관리할 필요 없이 코드를 실행할 수 있음

    • (보충 설명): 서버를 계속 틀어놨다가는 요금 폭탄을 맡기 쉬운데, 사용자가 서비스에 접속했을 때만 서버를 실행하는 방식을 채택하면 저렴한 비용으로 운영할 수 있음
  • 비용 청구 기준: 실행 시간 기준, 요청 수 기준

  • 코드 업로드 -> (trigger: s3에 이미지 업로드 하는 등 다른 AWS에 접근 해서 동작 실행) -> Lambda 실행 -> ms 시간 단위 / 요청 수 기준으로 사용 요금 지불

(8) Auto Scaling

  • 애플리케이션 가용성을 유지하는데 도움이 됨
  • 정의한 조건에 따라 Amazon EC2 용량을 자동으로 확장하거나 축소할 수 있음 -> 싼 비용으로 이용 가능

3. 스토리지

일반적으로 3가지 타입으로 나뉨

  • Object storage: S3
  • Block storage: EBS
  • File storage: EFS

(1) AWS S3(Simple Storage Service)

  • Object 객체 기반 스토리지: 파일, 이미지, 비디오, 스냅샷 등
  • 데이터를 S3에 저장한 후에는 아래의 스토리지 클래스로 자동 티어링(tiering) 가능

S3 Standard

  • 가장 많이 쓰이며, 주로 핫데이터(콘텐츠)에 사용
  • 사용한 만큼 지불 (GB당 과금)
  • 99.9%의 내구성 / 가용성
  • 대량의 데이터를 쉽게 송신 또는 수신 가능
  • 무제한 저장소 (단, 최대 저장 가능 객체 크기는 5TB)

정적 웹 사이트 호스팅 용도: (보충설명) 실무에서 frontend production 모드 파일을 S3에다가 올렸음

S3 Infrequent Access
자주 엑세스 하지 않는 것들로 구성: 조회 비용이 비싸기 때문

Glacier

  • 데이터 백업(아카이브)용: 장기간 백업 및 오래된 로그 데이터, 아카이빙
  • S3와 같은 내구성, 성능 및 가용성: 99.9%
  • 3가지 데이터 검색 옵션: 로드할 때 비용 발생

(2) AWS Elastic Block Store (EBS)

  • Block 스토리지
  • 영구적인 스토리지를 위함
  • 하드처럼 ec2에 붙여서 사용함(ev2 vm에 붙임)
    • 한 개의 EC2 + 여러 개의 EBS (O)
    • 한 개의 EBS + 여러 개의 EC2 (X) -> 같은 regoin + AZ에 있을 경우 가능 (AWS EBS Muiti Attach)
  • AWS KMS로 암호화 사용: (보충설명) 실무에서 데이터 보안을 위해 KMS로 랜덤 값 세팅해서 했었음

(3) AWS Elastic File System (EFS)

  • 네트워크 파일 시스템, 한 지역에서 수백 개의 인스턴스에 연결 가능
  • Linux 기반 AWS 및 온프레미스 서버와 함께 사용 가능
  • 간단하고 확장 가능한 공유 파일 스토리지 솔루션
  • 인스턴스에서 용량 부족하면 바로 확장!

(4) AWS Storage Gateway

  • 온프레미스 데이터 스토리지를 AWS 클라우드에 연결하는 용도
    • (보충설명) Lamba로 API를 만들고 -> API Gateway가 연결하는 역할을 하는 것처럼
  • 원격으로 지사, 본사 데이터 접근 가능: 데이터 센터에서 이용하는 방법

4. 데이터베이스

일반적으로 3가지 타입으로 나뉨

  • Relational Database Service (RDS): 관계령 DB 서비스 - mysql, nosql, mariaDB 등
  • DynamoDB: NoSQL DB 서비스 - AWS만의 서비스
  • ElastiCache: 인메모리 캐싱 서비스 - Mamcached, Redis

(1) AWS RDS (Relational Database Service)

  • RDS 소프트웨어 패치는 AWS에서 설정 (사용자가 하는 것이 x)
  • DB 이중화: Muitl - AZ
  • 설정, 운영, 확장이 쉬움
  • Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle, Microsoft SQL Server 등에서 선택

    AWS Aurora

    • MySQL 및 PostgreSQL과 호환되는 RDS 엔진
    • 고사양 상업용 데이터베이스의 속도/가용성 + 오픈소스 데이터베이스의 단순성/비용 효율성
    • 필요에 따라 스토리지를 자동으로 늘리는 MySQL 호환 데이터베이스
      • MySQL보다 5배 뛰어난 성능
      • 1/10 비용으로 제공
      • 가용성 및 안정성
      • 상용 데이터베이스의 보안성

(2) AWS DynamoDB

  • NoSQL DB 서비스
  • 어떤 상황에서든 지연 시간이 일관적으로 한 자릿수 m/s 단위여야 하는 애플리케이션을 위한, 빠르고 유연한 NoSQL 데이터베이스 서비스

(3) AWS ElastiCache

  • 데이터베이스 액세스 부하를 줄이는데 도움이 되는 공통 데이터베이스 쿼리 결과를 저장하는데 가장 적합한 서비스
  • NoSQL 데이터베이스 및 애플리케이션의 부하를 줄이는데 탁월한 선택
    • 인메모리 캐시 구현 -> 액세스 지연 시간을 줄임

5. 마이그레이션

(1) AWS Application Discovery Service

(2) AWS Database Migration Service

(3) AWS Server Migration Service

  • 에이전트가 없는 서비스
  • 수천 개의 온프레미스 워크로드를 AWS로 쉽고 빠르게 마이그레이션할 수 있음

(4) AWS Snowball

  • 페타바이트 규모, 대용량을 안전하게 전송
  • Giga > Tera > Peta > Exa
  • 보통 온프레미스 데이터센ㄴ터 -> AWS로 데이터 이동
  • 같은 역할을 하는 서비스로, AWS Database Migration Service (AWS DMS)
  • 물리적 스토리지 디바이스 사용 -> 인터넷보다 빠른 속도, AWS S3 <-> site data storage간 대량 데이터 전송
  • 비용 또한 고속 인터넷 비용의 1/5 정도로 저렴
  • 대규모 데이터 전송 시 흔히 겪는 어려움(높은 네트워크 비용, 긴 전송 시간, 보안 문제 등)을 한 번에 해결 가능

(5) AWS Snowball Edge

  • 온보드 스토리지 및 컴퓨팅 기능을 포함한, 100TB 데이터 전송 디바이스

(6) AWS Snowmobile

  • Exa byte규모의 데이터 세트를 AWS에서 또는 AWS로 마이그레이션하거나 전송
  • Giga > Tera > Peta > Exa

추후 작성 예정 (최신 업데이트: 2022년 11월 22일)


Author: Ruby Kim
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source Ruby Kim !
Comments
  TOC