2-1. AWS Cloud Practitioner Essentials 공부하기 (Module 1~2)

minjeong·2024년 12월 16일
0

AWS Certification

목록 보기
3/3

24년 12월 10일부터 공부 시작하며 정리해보는 글.

AWS Cloud Practitioner Essentials은 무료로 볼 수 있는 7시간 분량의 기본 강의이다.


Module 1

Client-Server Model

  • client는 웹 브라우저, 데스크탑 애플리케이션 등이 될 수 있고, 사용자와 상호 작용을 하며 server로 요청을 보낸다.
  • server는 요청한 리소스를 응답으로 제공하게 되고, AWS에서는 virtual server인 Amazon Elastic Compute Cloud (Amazon EC2)가 해당 역할을 수행할 수 있다.

Cloud Computing

  • Cloud Computing Deployment Model
    • Cloud-Based Deployment
      • app의 모든 파트가 cloud에서 동작
      • app을 cloud로 마이그레이션
      • 새로운 app의 설계 및 구축을 cloud 환경에서
    • On-Premises Deployment
      • (a.k.a.) private cloud delpoyment
      • 레거시 IT Infra가 전부 On-Premises로 이루어진 편이다.
    • Hybrid Deployment
      • On-Premises 인프라를 Cloud-Based로 연결하게 구성
      • 레거시 IT app들을 Cloud-Based 리소스와 상호작용 시키기 등
  • Benefits
    • (fixed) upfront expense → variable expense
    • data center 구축, 운영 비용의 절감
    • infra의 capacity를 사전 계산 및 제한하며 운영할 필요가 없음
    • scale이 커질 수록 경제적 이득을 볼 수 있음
    • 시스템/서비스의 flexibility(유연성) 커지고 agility(속도)도 좋아짐
    • 글로벌 서비스에 최적화한 환경을 가질 수 있음 (low latency)

Module 2

Amazon EC2
the servers you use to gain access to virtual servers

  • 특징
    1. highly-flexible
    2. cost-effective
    3. quick

Amazon EC2 Instance Types

General Purpose

  • 균형 있는 컴퓨팅, 메모리, 네트워크 리소스 등...
  • application/gaming/backend server, small ~ medium database server...

Compute Optimized

  • high-performance processor
  • workloads that require processing many transactions

Memory Optimized

  • high-performance database
  • workloads that process large datasets in memory

Accelerated Computing

  • graphic processing, data pattern matching, streaming...
  • acceleraters or coprocessors, CPU 가속화

Stroage Optimized

  • file system, data warehousing, OLTP system...

Amazon EC2 Pricing Options

On-Demand Instances

  • for short-term, irregular workloads
  • no upfront costs or minimum contract

Reserved Instances

  • Standard Reserved Instances
    • 구체적으로 결정해야 하는 spec
      - Instance (family) type and size
      • Platform description (operating system)
      • Tenancy (default or dedicated)
      • Region
  • Convertible Reserved Instances
  • contract 1 year or 3 years

EC2 Instance Savings Plan

reduce EC2 instance costs when you make an hourly spend commitment to an instance family and Region for 1 or 3 year term.
Instance 타입과 지역에 대한 1/3년 시간당 지출 약정할 때 할인 제공해주는 옵션.

Spot Instances

  • Amazon EC2 computing capacity가 있을 때 요청 및 작업이 이루어지는 Instance.
  • 시작 및 종료 시점이 유연하거나 중단 및 지연이 발생해도 괜찮은 경우 적합.

Dedicated Hosts

  • virtual private cloud (VPC)에서 동작되는 인스턴스로, 한 고객에게만 제한되어 제공된다.
  • 실제 하드웨어를 공유하여 쓰는 다른 옵션들과 달리, 가장 비싼 옵션...

Amazon EC2 Auto Scaling

AWS 서비스는 Amazon EC2 인스턴스가 자동적으로 요청에 따라 scale in/out하도록 하고 그에 대한 사용량만 부과하도록 제공하고 있다.

Availablity는 유지하되 Unused capacity가 생기지 않게 하고 Demand에 맞게 인스턴스 수를 조절하며 리소스를 낭비하지 않고, 비용도 절감할 수 있게 된다.

Auto Scaling에는 두 가지의 접근 방식이 있고, 두 방법을 모두 사용할 수도 있다고 한다.

  • Dynamic scailing - 실시간 사용량에 따른 스케일링

  • Predictive scailing - 예측된 스케쥴에 따라 스케일링

  • Configuring Auto Scaling

    1. Auto Scaling Group을 만든다.
    2. Minimum Capacity 값을 설정한다. 필요로 하는 최소한의 인스턴스 개수, 최소 1개가 될 것이다.
    3. Desired Capacity 값을 설정한다. default 값으로는 minimum capacity로 설정한 값을 갖게 된다. 주로 애플리케이션이 필요로 하는 최소의 인스턴스 갯수가 된다.
    4. Maximum Capacity 값을 설정한다. 요청량의 증대로 scale out하게 될 때, 최대 몇 개까지 사용될 수 있도록 할 것인지 제한하는 값이다.

Amazon ELB

Amazon ELB = Elastic Load Balancing

애플리케이션의 요청을 다중 리소스(Amazon EC2 인스턴스)에 자동으로 분배하여 전달하는 것을 말한다.

Load Balancer가 Auto Scaling Group에게 들어오는 웹 트래픽을 single point로써 받는다. 요청을 분배하여 핸들링하는 역할을 수행한다.

Auto Scaling과 Elastic Load Balancing은 분리된 다른 서비스이지만 같이 동작시켰을 때 성능이나 가용성을 굉장히 높일 수 있다.

Elastic Load Balancing은 어떤 과정으로 이루어질까?

  • Low-demand period: 들어오는 요청들을 Auto Scaling Group 내 인스턴스에 분배한다.
  • High-deman period: 그러다가 client 수 및 리소스 요청의 수가 늘어날 경우 Auto Scaling Group의 인스턴스도 증가할 수 있다. Load Balancer가 새로 연결된 인스턴스에게도 요청을 분배하는 것이다. End-to-End에선 Load Balancer를 통해 요청과 응답을 주고 받기 때문에 그대로다.

Messaging and Queuing

  • Monolithic application. tightly coupled component architecture. DB, 서버, 유저 인터페이스 등 구성 요소가 강하게 결합되어 있다. 특정 컴포넌트의 오류로 전체 시스템의 동작 및 운영에 오류가 생길 수 있다.
  • Microservices. loosely coupled component architecture. 시스템이 일부 애플리케이션, 인스턴스의 오류가 생겨도 정상적으로 운영될 수 있다.

Amazon SQS

  • SQS = Simple Queue Service
  • send/store/receive messages by buffer.

Amazon SNS

  • SNS = Simple Notification Service
  • publish-subscribe model.
  • Amazon SNS topic을 사용해 메시지를 퍼블리싱, 구독한다.
  • 구독자의 역할은 web server, AWS Lambda function 등이 될 수 있다.

Serverless computing

EC2는 가상의 서버를 cloud에서 구동시켜 사용하는 서비스. 만약 EC2를 이용해 애플리케이션을 운영한다면,

  • EC2 인스턴스를 세팅한다.
  • 애플리케이션 코드를 업로드한다.
  • 애플리케이션을 동작시킨 후 관리한다.

여기서 serverless란 코드를 서버에 올려 동작을 시키되, 직접 가상 서버에 대한 프로비저닝 등의 작업을 하지 않아도 되는 것을 말한다.

서버에 대한 유지, 관리 뿐 아니라 capacity에 따른 유동적인 조치도 알아서 한다.

serveless computing으로써 제공되는 AWS Service가 AWS Lambda이다.

AWS Lambda

  • without needing to provision or manage servers.
  • 비용은 실제 코드가 동작한 compute time에 대해서만 부과된다.
  • 15분 이하가 소요되는 짧은 프로세싱에 적합하다.
  • How AWS Lambda works
    1. Upload code to Lambda.
    2. Set code to trigger from an event source, such as AWS service, mobile applications, or HTTP endpoints.
    3. Code runs only when triggered.
    4. Pay only for the compute time you use.

Containerized application

Container: A package for your code.
특정 애플리케이션 코드, dependencies 등을 하나의 분리된 object로 패키징한 개념이다. 하나의 host(server)에 애플리케이션들이 독립되고 구분된 환경으로 동작하게 된다.

Amazon ECS = Elastic Container Service

  • a highly scalable, high-performance container management system.
  • surpports Docker containers.

Docker
애플리케이션의 build, 테스트, 배포하는 소프트웨어 플랫폼.

Amazon EKS = Elastic Kubernetes Service

  • AWS 상에서 쿠버네티스를 사용할 수 있게 전체적으로 관리 가능한 서비스.

Kubernetes
containerized application deployment/management software.

AWS Fargate

  • serverless compute engine for containers.
  • Amazon ECS/EKS와 함께 동작된다.
  • AWS Fargate를 쓰면 서버의 프로비저닝, 관리를 하지 않아도 된다. 서버 인프라를 관리해준다.

Module 2 Summary: Keywords

  • Cloud Computing
  • Amazon EC2
  • Amazon EC2 Instance Family
    • General purpose
    • Compute optimized
    • Memory optimized
    • Accelerated computing
    • Storage optimized
  • Amazion EC2 Auto Scaling
  • ELB = Elastic Load Balancing
  • Amazon EC2 Billing Options
    • On-Demand
    • Spot instance
    • Reserved instances
    • saving plans
  • Amazon SQS = Simple Queue Sercice
  • Amazon SNS = Simple Notification Service
  • Amazon ECS = Elastic Container Service
  • Amazon EKS = Elastic Kubernetis Service
  • AWS Fargate
  • AWS Lambda
profile
프론트엔드 개발자 👩‍💻

0개의 댓글