[AWS] AWS Cloud Practitioner Essentials 모듈2

JUHYUN SEO·2024년 8월 9일

AWS

목록 보기
4/6

EC2

= 가상 서버

카페를 예로들면 직원의 역활을 담당.
클라이언트가 요청을 서버에 보내면 작업을 수행하고 응답을 보내는 모델.
다른 사업분야에도 동일한 개념이 적용됨. 사업체와 애플리케이션을 운영하려면 서버가 있어야 하는데, 애플리케이션을 호스팅하고 기업에 필요한 컴퓨팅 파워를 제공하려면 원시 컴퓨팅 용량이 필요하다. AWS를 사용하는 경우, 이러한 서버는 곧 가상 서버이다. 그리고 가상 서버에 액세스하는 데 사용하는 서버를 EC2라고 부른다


Amazon EC2 인스턴스를 이용할 경우 AWS 클라우드에서 가상 서버를 사용하여 애플리케이션을 실행할 수 있다. aws에서 관리하는 물리적 호스트 시스템에서 실행되며 내가 전체 호스트를 소유하지 않아도 된다. 대신 호스트를 다른 여러 인스턴스와 공유한다(=가상머신)

이렇게 기본 하드웨어를 공유하는 걸 멀티 테넌시라고 한다.
하이퍼바이저는 이러한 멀티 테넌시 조정을 책임지며 이는 AWS에서 관리한다. 하이퍼바이저는 호스트의 리소스를 공유하는 가상 머신을 서로 분리하는 일을 책임진다.



✔️ 몇 분이면 Amazon EC2 인스턴스를 프로비저닝하고 시작할 수 있다.
✔️ 워크로드 실행을 완료했다면 인스턴스 사용을 중지할 수 있다.
✔️ 인스턴스가 실행 중일 때 사용한 컴퓨팅 시간에 대해서만 비용을 지불하고 인스턴스가 중지 또는 종료된 상태에서는 비용을 지불하지 않는다.
✔️ 필요한 서버 용량에 대해서만 비용을 지불하므로 비용을 절감할 수 있다.



EC2 인스턴스 유형


범용 인스턴스

컴퓨팅, 메모리, 네트워킹 리소스를 균형 있게 제공
애플리케이션 서버, 게임서버, 엔터프라이즈 애플리케이션용 백엔드 서버, 중소 규모 데이터 베이스등의 워크로드에 사용.

컴퓨팅, 메모리, 네트워킹에 필요한 리소스가 거의 동일한 애플리케이션에 실행하는것이 좋음.


컴퓨터 최적화 인스턴스

고성능 프로세스를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합.
범용 인스턴스와 마찬가지로 컴퓨팅 최적화 인스턴스는 웹 서버, 애플리케이션 서버, 게임 서버와 같은 워크로드에 사용할 수 있다.

하지만 좀 더 고성능 웹 서버, 컴퓨팅 집약적 애플리케이션 서버 및 게임 전용 서버에 적합하다는 점이 다르다.
또한 일괄 처리 워크로드에 사용할 수도 있다.


메모리 최적화 인스턴스

메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계.
메모리 최적화 인스턴스를 사용하면 많은 메모리가 필요한 워크로드를 실행하고 뛰어난 성능을 얻을 수 있다.


엑셀러레이티드 컴퓨팅 인스턴스

하드웨어 엑셀러레이터 또는 코프로세서를 사용하여 일부 기능을 CPU에서 실행되는 소프트웨어에서보다 더 효율적으로 수행합니다.
이러한 기능의 예로는 부동 소수점 수 계산, 그래픽 처리, 데이터 패턴 일치 등이 있다.

컴퓨팅에서 하드웨어 액셀러레이터는 데이터 처리를 가속화할 수 있는 구성 요소.
액셀러레이티드 컴퓨팅 인스턴스는 그래픽 애플리케이션, 게임 스트리밍, 애플리케이션 스트리밍과 같은 워크로드에 적합.


스토리지 최적화 인스턴스

로컬 스토리지의 대규모 데이터 세트에 대한 순차적 읽기 및 쓰기 액세스가 많이 필요한 워크로드를 위해 설계. 예를 들어, 분산 파일 시스템, 데이터 웨어하우징 애플리케이션, 고빈도 온라인 트랜잭션 처리 시스템등이 있다.



EC2 요금


온디맨드

중단할 수 없는 불규칙한 단기 워크로드가 있는 애플리케이션에 매우 적합
선결제 비용이나 최소 약정은 적용되지 않습니다. 인스턴스는 중지될 때까지 계속 실행되며, 사용한 컴퓨팅 시간에 대해서만 비용을 지불


Saving Palns

1년 또는 3년 기간 동안 일정한 컴퓨팅 사용량을 약정하여 컴퓨팅 비용을 절감할 수 있다. 이 기간 약정을 통해 온디맨드 요금에 비해 최대 72%까지 비용을 절감.


예약 인스턴스

계정에서 온디맨드 인스턴스를 사용할 때 적용되는 결제 할인 옵션.
표준 예약 및 컨버터블 예약 인스턴스는 1년 또는 3년 약정으로, 정기 예약 인스턴스는 1년 약정으로 구입할 수 있다.


스팟 인스턴스

시작 및 종료 시간이 자유롭거나 중단을 견딜 수 있는 워크로드에 적합.
스팟 인스턴스는 미사용 Amazon EC2 컴퓨팅 용량을 사용하며 온디맨드 요금의 최대 90%까지 비용을 절감할 수 있다.

예를 들어, 필요에 따라 시작 및 중지할 수 있는 백그라운드 처리 작업(예: 고객 설문 조사 데이터 처리 작업)이 있다고 가정해보자.
전반적인 비즈니스 운영에는 영향을 주지 않고 처리 작업을 시작하고 중지하려고 한다면 스팟 요청을 하고 Amazon EC2 용량을 사용할 수 있는 경우 스팟 인스턴스가 시작된다. 하지만 스팟 요청을 했는데 Amazon EC2 용량을 사용할 수 없다면 용량을 사용할 수 있을 때까지 요청이 성공하지 못한다.


전용 인스턴스

사용자 전용의 Amazon EC2 인스턴스 용량을 갖춘 물리적 서버.



EC2 확장

Amazon EC2 Auto Scaling

변화하는 애플리케이션 수요에 따라 Amazon EC2 인스턴스를 자동으로 추가하거나 제거할 수 있다. 필요에 따라 인스턴스를 자동으로 조정하여 애플리케이션 가용성을 효과적으로 유지할 수 있다.

Amazon EC2 Auto Scaling에서는 동적 조정(수요 변화에 대응)과 예측 조정(예측된 수요에 따라 적절한 수의 EC2 인스턴스를 자동으로 예약)이라는 두 가지 접근 방식을 사용할 수 있다.



Elastic Load Balancing

들어오는 애플리케이션 트래픽을 Amazon EC2 인스턴스와 같은 여러 리소스에 자동으로 분산하는 AWS 서비스

Auto Scaling 그룹으로 들어오는 모든 웹 트래픽의 단일 접점 역할을 한다.

밑의 그림과 같이 Auto Scaling 그룹으로 들어오는 수요가 많을 때, 적을때의 트래픽의 양에 맞춰 Amazon EC2 인스턴스를 추가하거나 제거하므로 이러한 요청이 로드 밸런서로 먼저 라우팅된다. 그런 다음 요청을 처리할 여러 리소스로 분산된다.


<수요가 적은 기간>


<수요가 많은 기간>



메시징 및 대기열 (Amazon SNS)

커피숍에서 계산원과 바리스타가 합이 잘 안맞으면 프로세스가 저하된다. 이를 위해 시스템에 일종의 완충 기억장치나 대기열을 도입하면 프로세스가 훨씬 개선될 것이다.

이때 완충 기억장치에 배치한다는 개념이 메시징 또는 대기열이라고 한다.

구성 요소가 밀결합된 애플리케이션이 잇다고 가정하면, 이러한 구성 요소에는 데이터베이스, 서버, 사용자 인터페이스, 비즈니스 로직 등이 포함될 수 있다. 이러한 유형의 아키텍처를 모놀리식 애플리케이션으로 볼 수 있다.

➡️ 애플리케이션 아키텍처에 대한 이 접근 방식에서는 한 구성 요소에서 장애가 발생하면 다른 구성 요소에서 장애가 발생하고, 심지어 전체 애플리케이션에서 장애가 발생할 수도 있다.

단일 구성 요소에 장애가 발생했을 때 애플리케이션 가용성을 유지할 수 있도록 마이크로서비스 접근 방식을 통해 애플리케이션을 설계할 수 있다.

➡️ 마이크로서비스 접근 방식에서는 애플리케이션 구성 요소가 소결합되서 이 경우 단일 구성 요소에 장애가 발생해도 다른 구성 요소들은 서로 통신하기 때문에 계속 작동한다.

AWS에서 애플리케이션을 설계할 때 다양한 기능을 수행하는 서비스 및 구성 요소를 사용하여 마이크로서비스 접근 방식을 취할 수 있다. Amazon Simple Notification Service(Amazon SNS)Amazon Simple Queue Service(Amazon SQS) 서비스는 애플리케이션 통합을 촉진한다.

➕ SQS를 이용하면 볼륨에 상관없이 소프트웨어 구성 요소 간에 메시지를 전송, 저장, 수신할 수 있다. 메시지를 잃어버릴 염려가 없으며 다른 서비스 사용을 요구하지도 않는다. 카페에서 대기판과 같은 기능

➕ Amazon SNS는 메시지를 서비스에 전달하는 데 사용한다는 점에서 이와 비슷하지만 알림을 최종 사용자에게도 전송할 수 있다.
주제에 대한 구독자를 구성하고 이러한 구독자에게 최종적으로 메시지를 게시.
카페에서 커피가 완성 됐을때 알려주는 모바일 푸시와 같은 기능



추가 컴퓨팅 서비스

서버리스 컴퓨팅

Amazon EC2에서 실행하려는 애플리케이션이 있는 경우,

✔️ 인스턴스(가상 서버)를 프로비저닝합니다.
✔️ 사용자 코드를 업로드합니다.
✔️ 애플리케이션이 실행되는 동안 계속해서 인스턴스를 관리합니다.

서버리스’라는 용어는 코드가 서버에서 실행되지만 이러한 서버를 프로비저닝하거나 관리할 필요가 없다는 뜻이다.

서버리스 컴퓨팅의 또 다른 이점은 서버리스 애플리케이션을 자동으로 확장할 수 있는 유연성

서버리스 컴퓨팅용 AWS 서비스는 AWS Lambda이다.



AWS Lambda

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

AWS Lambda를 사용하는 경우, 코드를 실행하는 동안에만 요금이 부과된다.



컨테이너

컨테이너는 애플리케이션의 코드와 종속성을 하나의 객체로 패키징하는 표준 방식을 제공한다. 보안성, 안정성, 확장성 요구 사항이 매우 중요한 프로세스 및 워크플로에도 컨테이너를 사용한다.

Amazon Elastic Container Service(Amazon ECS)

AWS에서 컨테이너식 애플리케이션을 실행하고 확장할 수 있는 확장성이 뛰어난 고성능 컨테이너 관리 시스템.

Amazon ECS는 Docker 컨테이너를 지원한다.


Amazon Elastic Kubernetes Service(Amazon EKS)

Amazon Elastic Kubernetes Service(Amazon EKS)는 AWS에서 Kubernetes를 실행하는 데 사용할 수 있는 완전 관리형 서비스.

컨테이너식 애플리케이션을 대규모로 배포하고 관리하는 데 사용할 수 있는 오픈 소스 소프트웨어이다.


AWS Fargate

AWS Fargate는 컨테이너용 서버리스 컴퓨팅 엔진으로, Amazon ECS와 Amazon EKS에서 작동한다.

AWS Fargate를 사용하는 경우 서버를 프로비저닝하거나 관리할 필요가 없다.
자동으로 서버 인프라를 관리하기 때문.

profile
alice is everywhere

0개의 댓글