Cloud/AWS Certified Solutions Architect - Asso

인프라 자동화, 컴퓨팅 - 컨테이너 서비스 ,Severless , Elastic Beanstalk ,머신러닝 ,재해 복구

Tony Lim 2023. 9. 5. 10:29
728x90

CloudFormation

  • AWS 인프라 세트를 수동으로 프로비저닝하면 많은 노력이 소요됨
  • 수동 작업말고 코드를 작성하여 자동화한다면?
  • 코드를 통해 인프라를 프로비저닝, 관리하는 서비스가 CloudFormation (Infrastructure as Code)
  • 코드를 통해 자동화 하여 AWS 인프라를 생성, 업데이트, 삭제 가능
  • 구성요소
    • Template = 인스턴스 유형, AMI id ,VPC 등의 인프라를 구성하기 위한 설정 값이 있는 JSON 또는 YAML 형식의 텍스트 파일로 이루어진 템플릿
    • Stack = Template을 사용하여 생성된 리소스
    • Change Set = Stack 리소스 변경사항에 대한 세트

 

AWS 컨테이너 서비스

  • Elastic Contaienr Service (ECS)
    • Docker 컨테이너를 배포, 관리하는 컨테이너 오케스트레이션 서비스
  • Amazon Elastic Kubernetes Service (EKS)
    • AWS에서 kubernetes 를 실행하는 서비스
    • Kubernetes = 오픈소스 커네팅너 오케스트레이션 시스템
  • AWS Fargate
    • 서버리스 컨테이너 서비스
    • 서버 프로비저닝, 패치 적용 , 클러스터 용량 관리 또는 인프라 관리를 AWS에서 자동으로 수행
    • ECS , EKS 와 연동되는 서비스 , 모두 Fargate를 통해 프로비저닝된 컨테이너를 사용하여 자동으로 컨테이너 크기를 조정하고 로드 밸런싱 가능
  • Amazon Elastic Container Registry(Amazon ECR)
    • Docker등의 컨테이너 이미지를 공유 , 배포 등의 관리 서비스
    • ECR에서 공유된 이미지를 사용하여 ECS, EKS 에서 컨테이너 구성

Elastic Container Service(ECS)

  • Docker 컨테이너를 지원하는 컨테이너 관리 서비스
  • Amazon EC2 인스턴스의 관리형 클러스터에서 앱을 손쉽게 실행 가능
  • ECS에서 앱 가용성을 유지 관리하고 앱 용량 요구 사항에 따라 컨테이너 규모를 확장하거나 축소
  • CPU 사용량 , 메모리 사용량, 로드발란서 요청 수, Event Bridge 이벤트 , SQS 와 결합하여 AutoScaling이 가능
  • App LB, NLB 를 사용하여 트래픽 분산 가능
  • ECS 시작 유형 (ECS Launch Type)
    • Fargate 시작 유형
      • 서버리스 방식으로 Amazon ECS 워크로드를 호스팅. 사용자가 EC2 인스턴스를 관리할 필요 없음
      • 기본으로 배포가된다
    • EC2 시작 유형
      • Amazon ECS 클러스터를 등록하고 사용자가 직접 관리하는 EC2 인스턴스에서 컨테이너화 된 앱을 실행
      • Auto Scaling Group 이 생성이된다 이 뒤에 ec2 instance가 배포된다.
    • ECS Anywhere
      • Amazon ECS 클러스터에 등록하고 원격으로 관리하는 온프레미스 서버나 가상 머신에서 컨테이너화 된 앱을 실행

  • 기본적으로 시작유형으로 fargate는 생성이 되었고 3번째가 EC2 시작 유형을 추가적으로 선택하여 Auto scaling group에 의해 추가적으로 생성된 것이다.
  • autoscaling gorup에서 원하는 용량을 조절해서 인스턴스가 런칭이되는지 확인을 할 수 있다.
  • 이후 테스크를 정의한다. (예를 들어 nginx 이미지를 실행한다.) 같은 태스크의 수를 늘리는데 그러면 n개의 컨테이너가 배포가 되는것이다.
  • 컴퓨팅 서비스를 선택하는 부분에서 위 사진의 3가지 컴퓨팅 서비스중에 하나 고른다.
  • 즉, ec2 에 docker container 배포를 쉽게 하게 도와준다.

Elastic Kubernetes Service(EKS)

  • AWS에서 Kubernetes 를 실행하는 서비스
  • Kubernetes 는 컨테이너 (docker 등) 앱의 배포, 확장 및 관리를 자동화하기 위한 오픈소스 시스템
  • 배포옵션
    • Amazon EKS = 자체 kubernetes 컨트롤 플레인 또는 노드를 설치, 운영 및 유지 관리할 필요 없이 AWS에서 관리하는 AWS 클라우드에 Kubernetes 클러스터를 배포하는 옵션
    • Amazon EKS Anywhere = 온프레미스에서 Kubernetes 클러스터를 생성하고 운영할 수 있게 해주는 배포 옵션
  • 노드 유형(Node Types)
    • EKS managed node group
      • EKS에서 자동으로 EKS 클러스터의 노드 (EC2) 생성 및 관리
      • 사용자가 보안 및 업데이트 등의 일부분을 설정 및 관리 가능
      • 모든 관리형 노드는 EKS에서 관리하는 EC2 Auto Scaling 그룹의 일부로 프로비저닝됨
      • 관리형 노드 그룹을 생성할 때 온디멘드 또는 스팟 용량 유형을 선택할 수 있음
    • Self managed nodes
      • 사용자가 직접 EKS 클러스터의 노드 생성 및 관리
      • 온디멘드 , 스팟 용량 유형을 선택할 수 있음
    • AWS Fargate
      • 노드 관리를 AWS에서 담당
      • AWS에서 EKS의 모든 환경을 자동으로 관리

  • 우선 IAM에서 EKS 클러스터 역할을 생성한다.
  • 클러스터 구성시 클러스터 서비스 역할에서 방금 만든 IAM 역할을 입력해준다.
  • EKS 클러스터 배포가 되고 활성화되면 여기서 굴러갈 서버(노드)를 배포할 방법을 선택해야한다.
    • self managed 노드 , 노드그룹 , Fargate 프로파일  이 3가지중 하나의 방법으로 노드를 만든다

컴퓨팅 Serverless - Lambda

Serverless

  • 서버를 사용자가 관리할 필요가 없다는 의미
  • 실제로 서버는 존재하며 서버 인프라 운영은 AWS등의 클라우드 회사에서 담당
  • AWS에서 용량조정, 프로미저닝, 패치등의 인프라를 관리
  • 사용자는 필요한 앱을 구축해서 사용하기만 하면됨
  • 대표적인 serverless 서비스
    • Lambda, Fargate
    • S3, Dynamo DB, Amazon Aurora Serverless
    • SNS, SQS , API Gateway

 

Lambda

  • 코드를 실행하여 동작하는 서버리스 컴퓨팅
  • EC2는 서버를 시작하고, 앱을 설치하고 서버가 계속 실행되며 사용자가 직접운영 해야함
  • Lambda는 AWS에서 서버 운영에 필요한 모든 인프라를 관리
  • Lambda 사용자는 코드를 입력하여 실행만 하면 됨
  • Lambda 요청할 때에만 시스템을 사용하는 온디멘드 방식의 이벤트 중심의 실행
  • Lambda는 사용한 만큼만 비용을 지불 (코드를 실행한 횟수와 실행한 시간으로 과금)
  • EC2는 Auto Scaling 기능을 사용해 서버를 확장하지만 Lambda 는 사용량이 늘어나면 자동으로 용량이 확장되므로 용량 계획이 필요 없고 확장성이 뛰어남
  • 다양한 프로그래밍 언어를 지원
  • Lambda 함수는 실행당 최대 15분 동안 하도록 구성( 1초 ~ 15분)
  • 동시에 처리가능한 실행 수는 1000건이며 요청을 통해 한도 증가 가능
  • lambda는 독립적으로 사용하지 않고 다른 서비스와 결합하여 사용됨
    • 결합서비스 = api gateway , kinesis ,dynamodb, sns, sqs, s3 , cloudfront

트리거에 s3 같은 서비스를 추가해서 이벤트를 발생시키게 하고 그 이벤트를 람다가 먹고 자신의 로직을 실행하거나 다른 대상(SNS, SQS , DynamoDB) 에게 어떤일을 수행하게 하게끔 할 수 있음


Elastic Beanstalk

  • 웹 앱 및 서비스를 배포하고 운영하는 서비스
  • 사용자가 직접 인프라 리소스를 구성할 필요 없고 앱 코드에만 집중하면 됨
  • 코드를 업로드하기만 하면 elastic beanstalk 가 용량 프로비저닝, 로드 밸런싱, auto scaling 부터 시작하여 앱 상태 모니터링 등의 배포를 AWS에서 자동으로 처리
  • Elastic Beanstalk work flow

앱을 업데이트 해서 배포만 하면 환경을 알아서 관리해준다


머신러닝

  • Comprehend
    • 텍스트 안에서 특정 항목을 찾아내는 서비스
    • 예) 분석 보고서에서 회사 이름 찾기, 부정적인 후기 또는 고객 서비스 상담사와의 긍정적인 고객상담
  • Rekognition
    • 이미지, 비디오 분석 (이미지에서 얼굴 탐지, 사물 인식)
  • Polly
    • 텍스트를 음성으로 변환하는 서비스
  • Lex
    • 음성인식 서비스, 챗본 구현 가능
  • Textract
    • 스캔문서에서 문자, 테이블, 양식  추출 서비스
  • Translate
    • 변역서비스
  • Transcribe
    • 음성을 텍스트로 변환
  • SageMaker
    • 머신러닝 모델을 구축, 훈련 및 배포하는 서비스
  • Forecast
    • 머신러닝을 기반으로하며, 비즈니스 지표 분석을 위해 구축된 시계열 예측 서비스
  • Kendera
    • 지능형 검색 서비스
    • 간단한 키워드 외에도 자연어 질문을 사용하여 원하는 답을 얻을 수 있으며 텍스트 조각이든, FAQ이든, PDF 문서이든 관계없이 문서 내에서 정확한 답변을 반환
  • Personalize
    • amazon.com 에서 실시간 맞춤화 추천에 사용하는 것과 동일한 기계학습 기술로 앱을 구축 가능한 서비스
    • 특정 제품 추천, 맞춤화된 제품 순위 재지정, 맞춤화된 직접 마케팅 등을 포함하여 다양한 맞춤화 환경을 제공할 수 있는 애플리케이션을 손쉽게 구축 가능
  • Amazon Connect
    • 클라우드 기반 고객 센터 서비스
    • 전화통화, 자동 음성응답, 챗봇등의 기술 통합 가능

Disaster Recovery(DR)

 

 

728x90

'Cloud > AWS Certified Solutions Architect - Asso' 카테고리의 다른 글

네트워크 - VPC  (0) 2023.08.28
네트워크 - Route53  (0) 2023.08.25
관리 및 거버넌스  (0) 2023.08.24
보안 및 자격 증명  (0) 2023.08.24
애플리케이션 통합  (0) 2023.08.23