aws

[AWS]Compute Service(2)

하리하링웹 2024. 6. 23. 18:47

1편 

https://jjongsk.tistory.com/entry/AWSCompute-Service1

 

EC2 Auto Scaling

EC2 Auto Scaling은 애플리케이션 실패 및 복구 상황을 방지하기 위해 사용자가 미리 지정한 수 만큼의 EC2 인스턴스를 자동으로 프로비저닝하고 시작하는 서비스이다.

환경 설정

Auto Scaling은 인스턴스 설정 내용을 복사하여 사용하며, 필요에 따라 수정할 수 있다. 환경 설정만으로는 직접 인스턴스를 시작할 수 없으며, Auto Scaling에서만 사용할 수 있다. 생성된 환경 설정은 수정이 불가능하며, 새로운 설정을 생성해야 한다.

템플릿

환경 설정과 유사하지만, 템플릿은 더 직관적이고 이해하기 쉽다.

Auto Scaling 그룹

Auto Scaling 그룹은 Auto Scaling이 관리하는 EC2 인스턴스 그룹이다. 먼저 템플릿을 생성한 후 사용할 수 있다.

Load Balancer 설정

Auto Scaling 그룹에서 인스턴스에 유입되는 트래픽을 분산시키기 위해 로드 밸런서를 설정할 수 있다. Auto Scaling 그룹 생성 시 로드 밸런서 타겟 그룹에 연결하면 된다.

Health Check

Auto Scaling 그룹은 미리 정한 최소 인스턴스를 항상 유지하며, Health Check 상태에 따라 인스턴스를 교체한다. Health 상태는 EC2 Health Check를 따른다.

Scaling 정책 설정

  • 최소 용량: 인스턴스 수가 최소 크기 이하로 내려가지 않도록 한다. 이 값을 0으로 설정하면 Auto Scaling은 새 인스턴스를 추가하지 않고 그룹 내 모든 인스턴스를 종료한다.
  • 최대 용량: 인스턴스 수가 최대 크기 이상이 되지 않도록 한다. 예산 제한선을 정하는 느낌이다.
  • 희망 용량: 최소, 최대 범위 내에서 이 값에 맞춰 인스턴스를 추가하거나 종료한다.

스케일링 옵션

  • 수동 스케일링: 최소, 희망, 최대 용량 값이 변경되면 즉시 반영된다.
  • 동적 스케일링: CPU 활성화율, 메모리, 디스크 공간, 리소스 고갈 등 임계치에 도달하면 Auto Scaling을 통해 개선 가능하다.
  • 단순 스케일링: 지표가 한계치에 도달하면 Auto Scaling이 희망 용량대로 인스턴스를 증가시킨다.
    • changeInCapacity: 지정 숫자만큼 희망 용량을 증가시킨다. ex) 희망 용량을 4로 설정 시 지정 숫자가 2면 2씩 증가
    • exactCapacity: 현재 값에 상관 없이 용량을 지정 숫자만큼 증가시킨다. ex) 희망 용량이 4여도 지정 숫자만큼 증가 즉 6까지도 증가 가능
    • percentChangeInCapacity: 현재 용량의 비율을 기준으로 증가 ex) 희망 용량이 4인데 정책이 50%로 설정하면 희망 용량이 6이된다.
  • 단계별 스케일링 정책: 단순 스케일링으로는 대처가 어려운 경우 특정 기준에 따라 스케일링 속도를 조정한다. 이 정책에서는 휴식기를 갖지 않는다.
  • 목표 추적 정책: 특정 지표와 타겟 값을 선택하면 Auto Scaling이 자동으로 정책을 생성하고 처리한다. 이 정책에서는 Scale Out, Scale In 정책도 추가할 수 있으며, 휴식기를 설정할 수 있다.
  • 예약된 작업: 워크로드 패턴이 예측 가능한 경우 최소, 최대, 희망 용량 값과 시작 날짜 및 시간을 설정할 수 있다. 종료 시점도 설정 가능하다.

Auto Scaling 조정 작업 종료 후에는 일정 시간의 휴식 시간을 가진다. 기본 휴식 시간은 300초이다.

 

 

AWS System Manager

AWS System Manager는 EC2 인스턴스 및 온프레미스 서버의 자동 및 수동 작업을 관리하는 도구이다. EC2 System Manager와 Simple System Manager는 다양한 관리 작업을 수행할 수 있도록 지원한다.

 

주요 기능 및 활용 사례

  • EC2 인스턴스의 패키지 업그레이드
  • 설치된 소프트웨어 목록 생성
  • 새로운 애플리케이션 설치
  • EBS 스냅샷을 이용한 AMI 이미지 생성
  • IAM 인스턴스 프로필 부착
  • S3 버킷에 대한 퍼블릭 접근 차단

System Manager의 주요 기능

액션

System Manager는 AWS 리소스에 대해 자동 및 수동으로 작업을 수행할 수 있으며, 개별적 또는 일괄적으로 실행할 수 있다.

  • 자동화 Action: AWS 리소스에 대한 작업을 자동으로 수행
  • 명령 Action: Linux 또는 Windows 인스턴스에 대한 작업을 수행
  • 정책 Action: 관리 중인 인스턴스로부터 목록 데이터를 수집하는 과정을 정의

인사이트

AWS System Manager는 AWS 리소스의 건강 상태, 컴플라이언스 및 운영 세부 사항 정보를 단일 영역에 집약시켜 제공한다.

  • 빌트인 인사이트: System Manager가 기본적으로 제공하는 모니터링 내역을 포함한다.
    • AWS Config Compliance: AWS Config 룰 및 리소스별 컴플라이언스 상태를 모니터링하며, 환경설정 변경 사항 이력을 추적한다.
    • CloudTrail Events: 그룹 내 리소스, 리소스 타입, 마지막으로 기록된 CloudTrail 이벤트 정보를 제공한다.
    • Personal Health Dashboard: 리소스에 영향을 미칠 수 있는 각종 이슈에 대한 경고를 제공한다.
    • Trusted Advisor Recommendations: 비용 최적화, 성능, 보안, 내오류성 측면에서 AWS 환경 요소의 최적화를 돕고 권장안을 제시한다.

AWS System Manager Inventory

System Manager Inventory는 인스턴스의 운영체제, 애플리케이션 버전 등 다양한 데이터를 수집한다.

수집 내역

  • OS 이름 및 버전
  • 애플리케이션, 파일 이름, 버전, 크기
  • IP, MAC 주소, 네트워크 설정
  • Windows 업데이트, 역할, 서비스, 레지스트리 값
  • CPU 모델, 코어 수, 속도

이러한 기능을 통해 AWS System Manager는 AWS 리소스 및 온프레미스 서버를 효율적으로 관리하고 모니터링할 수 있게 한다. 다양한 작업을 자동화하고, 리소스 상태를 중앙에서 파악할 수 있어 운영 효율성을 크게 향상시킬 수 있다.

 

 

컨테이너

컨테이너 기반의 컴퓨트 모델은 호스트 커널을 공유하므로 효율성이 뛰어나다. 컨테이너 이미지를 기반으로 분산된 모듈 아키텍처를 사용해 로딩 시간을 줄일 수 있으며, 기존 인스턴스와 달리 OS와 소프트웨어가 필요하지 않아서 binary image 생성을 위한 텍스트 파일만 관리하면 되어 훨씬 편리하다.

 

AWS에서는 Elastic Container Service(ECS), Amazon Elastic Kubernetes Service(Amazon EKS), Elastic Container Registry(ECR)를 제공합니다.

ECS (Elastic Container Service)

ECS는 컨테이너 오케스트레이션 도구로, 애플리케이션을 정의하고 적절한 컨테이너 이미지를 선택하여 리소스 환경을 구성하고 실행에 필요한 요소들을 관리할 수 있다.

  • 인스턴스
  • 스토리지
  • 네트워크 리소스의 프로비저닝
  • 컨테이너 라이프 사이클
  • 모니터링

ECS Anywhere는 ECS를 온프레미스 인프라로 확장할 수 있도록 도와주는 도구이며 ECS 환경에서 사용하는 것과 동일한 API와 도구를 이용해 온프레미스 서버를 관리할 수 있도록 도와준다.

 

EKS (Amazon Elastic Kubernetes Service)

EKS는 아마존에서 제공하는 Kubernetes 컨테이너 오케스트레이션 서비스이다. 마찬가지로 EKS Anywhere를 사용해 온프레미스 서버를 구축할 수 있다.

ECR (Elastic Container Registry)

ECR은 컨테이너 이미지의 저장, 관리, 배포를 쉽게 만들어주는 관리형 Docker 컨테이너 레지스트리이다.

주요 기능

  • 이미지 저장 및 관리
  • 이미지 배포
  • 보안 및 액세스 제어

AWS의 ECS, EKS, ECR 서비스를 활용하면 컨테이너 기반 애플리케이션을 효율적으로 배포하고 관리할 수 있다. ECS와 EKS는 각각 독립적인 컨테이너 오케스트레이션 도구로, 다양한 배포 환경과 요구 사항에 맞춰 사용할 수 있으며, ECR은 이러한 환경에서 필요한 컨테이너 이미지를 중앙에서 관리하고 배포할 수 있도록 지원한다.

 

 

요약

  • EC2 인스턴스에서 실행되는 소프트웨어 스택은 AMI에 정의되어 있다.
  • 다른 AWS 리소스처럼 EC2 인스턴스 시스템 전반에 의미를 담은 태그를 부여하는 것은 중요하다.
  • 장기간 인스턴스를 실행할 계획이라면 온디멘드 대신 예약 인스턴스를 구매해 비용 절약이 가능하다.
  • Elastic BLock Store는 유형별로 성능이 다르며 높은 IOPS 및 저지연, 성능은 낮지만 높은 비용 효율성 등 예산과 상황에 맞게 선택이 가능하다. 인스턴스에 부착되는 EBS는 네 가지 타입이 있으며 워크로드 유형 및 예산에 맞춰 선택하면 된다.
  • 모든 EC2 인스턴스는 최소 하나 이상의 private IP주소와 인터넷 접근을 위한 비지속형 public IP주소를 지닌다. 지속적으로 사용할 public IP가 필요하다면 Elastic IP를 할당해 사용할 수 있다.
  • EC2 인스턴스에 대한 보안 접근은 security group으로 설정 가능하다.
  • EC2 Auto Scaling은 인스턴스의 과부화 및 application 실패를 막으며 동적 스케일링 정책을 사용 가능하다.
  • 컨테이너는 효율성 높은 compute platform이며 AWS에서는 ECR, ECS, EKS등을 제공해준다.

'aws' 카테고리의 다른 글

AWS 스토리지(1)  (0) 2024.06.28
[AWS]Compute Service(1)  (0) 2024.06.20