본문 바로가기

개발자정보

1.4 AWS Compute

반응형

AWS 컴퓨팅 살펴보기

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • AWS 컴퓨팅 서비스를 설명합니다.
  • 서버의 필요성을 설명합니다.

메모

이 모듈은 여기에 설명된 AWS 제품, 서비스 및 기능을 소유, 지원 및 유지 관리하는 Amazon Web Services(AWS)와 협력하여 제작되었습니다. 

AWS 제품, 서비스 및 기능의 사용에는 AWS에서 유지 관리하는 개인 정보 보호 정책 및 서비스 계약이 적용됩니다.

이 모듈을 완료하기 전에 AWS Identity and Access Management 를 완료했는지 확인하십시오 . 

여기에서 수행하는 작업은 그곳에서 배운 개념을 기반으로 합니다. 

이제 AWS 리소스에 액세스할 수 있는 권한이 있으므로 고양이 사진 애플리케이션 구축을 시작할 수 있습니다.

서버 이해

필요한 첫 번째 빌딩 블록은 다른 사람들이 액세스할 수 있도록 웹사이트를 호스팅하고 저장하는 장소입니다. 

종종 그 장소는 HTTP(Hypertext Transfer Protocol) 서버입니다. 

인터넷 사용자에게 웹사이트를 제공하는 인터넷에 연결된 컴퓨터 또는 컴퓨터 모음입니다.

이러한 서버는 CPU, 메모리 및 네트워킹 용량을 제공하여 사용자의 요청을 처리하고 응답으로 변환함으로써 애플리케이션을 강화합니다. 일반적인 HTTP 서버에는 다음이 포함됩니다.

  • IIS(인터넷 정보 서비스)와 같은 Windows 옵션.
  • Apache HTTP 웹 서버, Nginx 및 Apache Tomcat과 같은 Linux 옵션.

AWS에서 HTTP 서버를 실행하려면 AWS Management 콘솔에서 컴퓨팅 성능을 제공하는 서비스를 찾아야 합니다. 

 

콘솔에 로그인하여 AWS 컴퓨팅 서비스의 전체 목록을 볼 수 있습니다.

이 목록을 볼 때 모든 옵션에 겁을 먹을 수 있습니다. 고양이 사진 응용 프로그램을 가장 좋은 방법으로 실행하기 위해 HTTP 서버를 설치할 수 있는 것은 무엇입니까?

올바른 컴퓨팅 옵션 선택

인프라를 실행하기 위해 AWS에서 서버를 설정하는 책임이 있는 경우 많은 컴퓨팅 옵션이 있습니다. 

어떤 사용 사례에 어떤 서비스를 사용해야 하는지 알아야 합니다. 

기본 수준에서 가상 머신, 컨테이너 서비스 및 서버리스의 세 가지 유형의 컴퓨팅 옵션이 있습니다. 

이 모듈에서는 이러한 모든 옵션과 몇 가지 주요 사용 사례 및 알아야 할 절충안을 설명합니다.

사전 인프라 지식을 가지고 AWS를 방문하는 경우 가상 머신은 AWS에서 이해하기 가장 쉬운 컴퓨팅 옵션이 될 수 있습니다. 

가상 머신이 물리적 서버를 에뮬레이트하고 HTTP 서버를 설치하여 애플리케이션을 실행할 수 있기 때문입니다. 

이러한 가상 머신을 실행하려면 호스트 머신에 하이퍼바이저를 설치합니다. 

이 하이퍼바이저는 가상 머신을 생성하고 실행하기 위한 리소스를 프로비저닝합니다.

AWS에서는 이러한 가상 머신을 Amazon Elastic Compute Cloud 또는 Amazon EC2라고 합니다. 

배후에서 AWS는 호스트 시스템과 하이퍼바이저 계층을 운영하고 관리합니다. 

AWS는 게스트 운영 체제라는 가상 머신 운영 체제도 설치합니다.

마무리

다른 AWS 컴퓨팅 서비스는 Amazon EC2를 사용하므로 컨테이너 및 서버리스로 이동하기 전에 먼저 이 서비스를 이해하는 것이 가장 좋습니다. 다음 단원에서는 Amazon EC2를 고양이 사진 애플리케이션의 컴퓨팅 계층으로 사용하는 방법에 대해 자세히 알아봅니다.

 

 

Quiz

1. Which of the following compute options can you use in the AWS Cloud?

A.Virtual machines

B.Containers

C.Operating systems

D.A and B

E.B and C

 

2. True or false: a virtual machine emulates a physical server and allows you to install an HTTP server to run your applications.

A.True

B.False

Check the Quiz to Earn 100 Points

 

Amazon Elastic Compute Cloud 알아보기

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • Amazon EC2가 작동하는 방식을 설명합니다.
  • Amazon 머신 이미지(AMI) 사용에 대해 설명합니다.
  • Amazon EC2와 AMI의 관계를 설명합니다.

고양이 사진 애플리케이션을 강화하려면 Amazon EC2를 컴퓨팅 계층으로 사용하는 것이 좋습니다.

Amazon EC2란 무엇입니까?

Amazon EC2는 클라우드에서 안전하고 크기 조정 가능한 컴퓨팅 용량을 제공하는 웹 서비스입니다. 

EC2 인스턴스라는 가상 서버를 프로비저닝할 수 있습니다. 

AWS는 "웹 서비스"라는 문구를 사용하여 설명하지만 이것이 EC2 인스턴스에서 웹 서버만 실행하도록 제한된다는 의미는 아닙니다. 

AWS Management 콘솔, AWS 명령줄 인터페이스(CLI), AWS 소프트웨어 개발 키트(SDK) 또는 자동화 도구 및 인프라 오케스트레이션 서비스를 통해 이러한 인스턴스를 생성하고 관리할 수 있습니다.

EC2 인스턴스를 생성하려면 다음을 정의해야 합니다.

  • CPU, 메모리, 네트워크 및 스토리지와 같은 하드웨어 사양.
  • 네트워킹 위치, 방화벽 규칙, 인증 및 선택한 운영 체제와 같은 논리적 구성.

EC2 인스턴스를 시작할 때 구성하는 첫 번째 설정은 Amazon 머신 이미지(AMI)를 선택하여 원하는 운영 체제를 구성하는 것입니다.

AMI란 무엇입니까?

기존 인프라 환경에서 서버 회전 프로세스는 네트워크를 통해 설치 디스크, 설치 드라이브 또는 설치 마법사에서 운영 체제를 설치하는 것으로 구성됩니다. 

AWS 클라우드에서 이 운영 체제 설치는 더 이상 귀하의 책임이 아니며 대신 귀하가 선택한 AMI에 구축됩니다.

AMI를 사용하면 원하는 운영 체제를 구성할 수 있을 뿐만 아니라 스토리지 매핑, 아키텍처 유형(예: 32비트, 64비트 또는 64비트 ARM) 및 설치된 추가 소프트웨어를 선택할 수도 있습니다.

AMI와 EC2 인스턴스의 관계는 무엇입니까?

EC2 인스턴스는 케이크가 케이크 레시피의 라이브 인스턴스화인 것처럼 AMI에 정의된 것의 라이브 인스턴스화입니다. 

소프트웨어 개발에 익숙하다면 클래스와 객체 사이의 이러한 종류의 관계도 볼 수 있습니다.

클래스는 모델링하고 정의하는 것이고 객체는 상호 작용하는 것입니다. 

이 경우 AMI는 인스턴스를 모델링하고 정의하는 방식인 반면 EC2 인스턴스는 상호 작용하는 엔터티로 웹 서버를 설치하고 사용자에게 콘텐츠를 제공할 수 있습니다.

새 인스턴스를 시작하면 AWS는 하이퍼바이저에서 실행되는 가상 머신을 할당합니다. 

그런 다음 선택한 AMI가 볼륨을 부팅하는 데 사용되는 이미지가 포함된 루트 디바이스 볼륨에 복사됩니다. 

결국, 패키지와 추가 소프트웨어에 연결하고 설치할 수 있는 서버를 얻게 됩니다. 

이 경우 고양이 사진 앱의 적절하게 구성된 소스 코드와 함께 웹 서버를 설치합니다.

AMI 사용의 한 가지 이점은 재사용이 가능하다는 것입니다. 

고양이 사진 애플리케이션을 위한 EC2 인스턴스를 시작하는 시나리오를 고려하십시오. 

Linux 기반 AMI를 선택하고 HTTP 서버, 애플리케이션 패키지 및 애플리케이션을 실행하는 데 필요한 추가 소프트웨어를 구성할 수 있습니다. 

동일한 구성으로 두 번째 EC2 인스턴스를 생성하려는 경우 어떻게 쉽게 생성할 수 있습니까? 한 가지 옵션은 전체 인스턴스 생성 및 구성 프로세스를 진행하고 설정을 첫 번째 인스턴스와 일치시키는 것입니다. 

그러나 이것은 시간이 많이 걸리고 인적 오류의 여지를 남깁니다. 

두 번째 더 나은 옵션은 실행 중인 인스턴스에서 AMI를 생성하고 이 AMI를 사용하여 새 인스턴스를 시작하는 것입니다. 

이렇게 하면 AMI에 설정된 구성이 동일하기 때문에 새 인스턴스는 현재 인스턴스와 모두 동일한 구성을 갖게 됩니다.

AMI는 어디에서 찾을 수 있습니까?

다음 범주에서 AMI를 선택할 수 있습니다.

  • AWS에서 미리 만든 Quick Start AMI로 빠르게 시작할 수 있습니다.
  • 타사 공급업체의 인기 있는 오픈 소스 및 상용 소프트웨어를 제공하는 AWS Marketplace AMI.
  • EC2 인스턴스에서 생성된 내 AMI.
  • AWS 사용자 커뮤니티에서 제공하는 커뮤니티 AMI.
  • EC2 Image Builder로 사용자 지정 이미지를 구축하십시오.

AWS Management 콘솔의 각 AMI에는 접두사 "ami-"가 붙은 AMI ID와 숫자 및 문자의 임의 해시가 있습니다. 이러한 ID는 각 AWS 리전마다 고유합니다.

마무리

방금 AMI와 EC2 인스턴스의 차이점과 이들 간의 관계를 배웠습니다. 다음 단원에서는 Amazon EC2에 대해 자세히 알아보고 고양이 사진 애플리케이션에 사용할 수 있는 다양한 유형의 EC2 인스턴스에 대해 알아봅니다.

 

Quiz

1. What are Quick Start AMIs?

A.Premade AMIs delivered by partners.

B.Premade AMIs delivered by AWS.

C.AMIs created quickly from your EC2 instances.

D.AMIs provided by the AWS community.

 

2.True or false: AMI IDs are globally unique, meaning an AMI has the same ID in the us-east-1 region and the ap-northeast-1 region.

A.True

B.False

 

Amazon EC2 인스턴스 구성 선택

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • AWS 인스턴스 유형을 구분합니다.
  • EC2 인스턴스의 구성 요소를 이해합니다.
  • Amazon EC2 인스턴스 스토어와 Amazon Elastic Block Storage(EBS) 볼륨을 구별하십시오.
  • 네트워킹 및 근접성 고려 사항에 따라 EC2 인스턴스 배치를 선택합니다.

이제 EC2 인스턴스에 대한 운영 체제를 선택하는 방법을 알았으므로 EC2 인스턴스를 생성하기 위해 인스턴스 유형, 네트워크 및 스토리지와 같은 다른 구성을 선택할 차례입니다.

 

고양이 사진 앱과 같은 프론트엔드 애플리케이션의 경우 웹 서버를 실행하고 들어오는 고객 요청을 처리하기에 충분한 용량의 인스턴스가 필요합니다. 

인스턴스 크기는 애플리케이션 요구 사항과 예상되는 사용자 기반 크기에 따라 달라집니다.

온프레미스 애플리케이션의 서버 용량을 예측하려면 상당한 선행 자본 지출과 관련된 어려운 결정이 필요하며, 간단한 API 호출로 클라우드 기반 서비스 할당을 변경할 수 있습니다. 

AWS의 종량 과금제 모델 덕분에 인프라 용량을 애플리케이션 수요에 맞출 수 있습니다.

 

EC2 인스턴스는 무엇으로 구성됩니까?

EC2 인스턴스는 가상 프로세서(vCPU), 메모리, 네트워크, 경우에 따라 인스턴스 스토리지 및 그래픽 처리 장치(GPU)의 조합입니다. 고양이 사진 응용 프로그램에 대한 인스턴스를 만들 때 이러한 각 구성 요소에 필요한 양을 선택해야 합니다.

AWS는 성능에 따라 다른 다양한 인스턴스를 제공합니다. 

일부 인스턴스는 더 많은 용량을 제공하고 다른 인스턴스는 더 적은 용량을 제공합니다. 특정 인스턴스의 용량 세부 정보에 대한 개요를 보려면 인스턴스 유형을 확인해야 합니다.  

인스턴스 유형은 최적화된 워크로드 유형을 식별하는 접두어와 크기로 구성됩니다. 예를 들어, 인스턴스 유형 c5.large는 다음 요소로 나눌 수 있습니다.

  • c5 는 인스턴스 패밀리와 세대 번호를 결정합니다. 여기서 인스턴스는 일반 계산에 최적화된 인스턴스 패밀리의 5세대 인스턴스에 속합니다.
  •  , 인스턴스 용량의 양을 결정합니다.

인스턴스 패밀리란 무엇입니까?

예제 c5.large에서 첫 번째 문자 c는 컴퓨팅 최적화를 나타냅니다. 컴퓨팅 최적화 인스턴스는 AWS가 제공하는 많은 인스턴스 제품군 중 하나일 뿐입니다. 

각 인스턴스 패밀리는 다양한 사용 사례에 맞게 최적화되어 있습니다. 다음 표를 사용하여 워크로드에 가장 적합한 인스턴스 패밀리를 선택하십시오. 

 

인스턴스 패밀리설명사용 사례

범용 컴퓨팅, 메모리 및 네트워킹 리소스의 균형을 제공하고 다양한 워크로드에 사용할 수 있습니다. 웹 서버, 컨테이너화된 마이크로서비스, 캐싱 플릿, 분산 데이터 저장소 및 개발 환경과 같은 확장 워크로드.
컴퓨팅 최적화 고성능 프로세서의 이점을 활용하는 컴퓨팅 바운드 애플리케이션에 이상적입니다.

고성능 웹 서버, 과학 모델링, 일괄 처리, 분산 분석, 고성능 컴퓨팅(HPC), 기계/딥 러닝, 광고 게재, 확장성이 뛰어난 멀티플레이어 게임.
메모리 최적화 메모리에서 대용량 데이터 세트를 처리하는 워크로드에 대해 빠른 성능을 제공하도록 설계되었습니다. 고성능 데이터베이스, 분산 웹 규모 인메모리 캐시, 중간 규모 인메모리 데이터베이스, 실시간 빅데이터 분석 및 기타 엔터프라이즈 애플리케이션과 같은 메모리 집약적 애플리케이션.

가속 컴퓨팅 하드웨어 가속기 또는 보조 프로세서를 사용하여 부동 소수점 수 계산, 그래픽 처리 또는 데이터 패턴 일치와 같은 기능을 기존 CPU에서 가능한 것보다 더 효율적으로 수행합니다. 3D 시각화, 그래픽 집약적인 원격 워크스테이션, 3D 렌더링, 애플리케이션 스트리밍, 비디오 인코딩 및 기타 서버 측 그래픽 워크로드.
스토리지 최적화 로컬 스토리지의 대용량 데이터 세트에 대한 높은 순차 읽기 및 쓰기 액세스가 필요한 워크로드용으로 설계되었습니다. 다른 인스턴스 간에 데이터를 복제하는 애플리케이션에 대기 시간이 짧은 수만 개의 IOPS(임의 I/O 작업)를 제공하도록 최적화되어 있습니다. Cassandra, MongoDB 및 Redis와 같은 NoSQL 데이터베이스, 인메모리 데이터베이스, 스케일 아웃 트랜잭션 데이터베이스, 데이터 웨어하우징, Elasticsearch 및 분석.

EC2 인스턴스는 어디에 있습니까?

기본적으로 EC2 인스턴스는 기본 Amazon Virtual Private Cloud(VPC)라는 네트워크에 배치됩니다. 이 네트워크는 VPC 생성 및 구성 방법을 배우지 않고도 Amazon EC2를 쉽게 시작할 수 있도록 생성되었습니다. 기본 VPC에 넣은 모든 리소스는 공개되고 인터넷에서 액세스할 수 있으므로 고객 데이터나 비밀 고양이 사진을 그 안에 넣으면 안 됩니다. 

AWS에서의 네트워킹에 익숙해지면 이 기본 설정을 변경하여 고유한 사용자 지정 VPC를 선택하고 추가 라우팅 및 연결 메커니즘으로 액세스를 제한할 수 있습니다.

고가용성을 위한 설계자

이 네트워크 내에서 인스턴스는 선택한 가용 영역에 있습니다. AWS Cloud 에서 배웠듯이 가용 영역 수준에서 범위가 지정된 AWS 서비스는 고가용성을 염두에 두고 설계해야 합니다. 

EC2 인스턴스는 일반적으로 안정적이지만 2개는 1개보다 낫고 3개는 2개보다 낫습니다. 인스턴스 크기를 지정하면 몇 개의 큰 인스턴스 대신 더 작은 인스턴스를 사용할 수 있으므로 아키텍처를 설계할 때 이점이 있습니다.

프런트엔드에 단일 인스턴스만 있고 해당 인스턴스가 실패하면 애플리케이션이 다운됩니다. 반면에 워크로드가 10개의 인스턴스에 분산되어 있고 하나가 실패하면 플릿의 10%만 손실되고 애플리케이션 가용성은 거의 영향을 받지 않습니다.

고가용성을 위해 고양이 사진 애플리케이션을 설계할 때 2개의 개별 가용 영역에서 최소 2개의 EC2 인스턴스를 사용하는 것을 고려하십시오.

파일을 어디에 저장합니까?

AMI를 선택할 때 인스턴스의 루트 디바이스에 사용할 스토리지 종류를 선택합니다. 이전 단원에서 배웠듯이 루트 장치에는 인스턴스를 부팅하는 데 사용되는 이미지가 포함되어 있습니다. 모든 AMI는 Amazon Elastic Block Store(EBS) 지원 또는 인스턴스 스토어 지원으로 분류됩니다.

Amazon EBS 볼륨으로 스토리지 유지

EBS 지원 AMI를 선택하면 AWS에서 새 인스턴스를 시작할 때 루트 디바이스로 사용할 EBS 볼륨을 제공합니다. 

EBS는 Amazon EC2와 함께 사용하도록 설계된 블록 스토리지를 제공하는 AWS 서비스입니다. 즉, 원하는 EC2 인스턴스에 연결할 수 있는 원하는 크기와 사양으로 할당되는 스토리지 계층입니다.

EBS 볼륨의 청구 및 수명 주기는 연결된 EC2 인스턴스와 무관합니다. 이렇게 하면 데이터 손실 없이 인스턴스를 종료할 수 있습니다. 이는 특정 컴퓨팅 인스턴스가 사용되지 않을 때 비용을 줄이는 데 특히 유용할 수 있습니다.

EBS 볼륨은 선택한 가용 영역 내에서 생성됩니다. 지연 시간 때문에 동일한 AZ의 인스턴스에만 EBS 볼륨을 연결할 수 있습니다. 노드가 메모리나 스토리지를 공유하지 않기 때문에 이것을 일반적으로 비공유 아키텍처라고 합니다. 이것은 단일 실패 지점을 제거합니다. 비공유 아키텍처는 고양이 사진 애플리케이션과 같은 웹 애플리케이션에 널리 사용됩니다.

임시 스토리지에 Amazon EC2 인스턴스 스토어 사용

인스턴스 스토어에서 지원하는 AMI를 선택하면 기본 물리적 서버에 하나 이상의 스토리지 유닛이 직접 연결되어 있다는 의미입니다. 인스턴스 스토어의 주요 장점은 물리적 서버에 직접 연결되어 EBS 볼륨보다 더 빠른 속도와 처리량을 제공한다는 것입니다. 

인스턴스 스토어는 두 가지 면에서 EBS 볼륨과 다릅니다.

  • 인스턴스 스토어는 EC2 인스턴스의 시간당 가격에 포함됩니다.
  • 인스턴스 스토어는 일시적입니다. 인스턴스를 중지하거나 종료하면 인스턴스 스토어의 모든 데이터를 더 이상 사용하거나 액세스할 수 없습니다.

인스턴스 스토어는 Elasticsearch 도메인, Hadoop 클러스터 및 데이터 복제를 수행하는 데이터 아키텍처와 같은 다른 EC2 인스턴스에 데이터를 복제하는 애플리케이션을 호스팅하는 경우에 이상적입니다. 이러한 클러스터 기반 워크로드의 경우 로컬로 연결된 볼륨의 속도와 복제된 데이터의 복원력이 있으면 고성능으로 데이터를 배포하는 데 도움이 됩니다.

아래 다이어그램은 인스턴스(1)를 제공하는 동일한 호스트 컴퓨터가 여기에서 임시(2)로 표시된 것처럼 인스턴스 스토어와 동일한 물리적 위치에 있음을 보여줍니다.

마무리

이 단원에서는 워크로드에 대한 인스턴스 유형, 네트워크 및 스토리지 유형 선택과 같이 EC2 인스턴스를 생성하는 데 필요한 구성을 배웠습니다. 다음 단원에서는 고양이 사진 애플리케이션을 호스팅하는 EC2 인스턴스를 켜고 끄는 방법, 가격에 미치는 영향, EC2 비용을 낮추는 방법에 대해 알아봅니다. 

 

Quiz

1. What does instance type indicate?

A.Instance family and instance size

B.Instance placement and instance size

C.Instance tenancy and instance billing

D.Instance AMI and networking speed

 

2. True or false: EC2 instances reside at the Availability Zone level, so it’s best practice to architect for high availability.

A.True

B.False

 

 

Amazon EC2 인스턴스 수명 주기 및 요금 검토

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • EC2 인스턴스 수명 주기를 설명합니다.
  • EC2 인스턴스의 구매 옵션과 사용 방법을 설명합니다.

EC2 인스턴스 수명 주기 살펴보기

EC2 인스턴스는 생성하는 순간부터 종료될 때까지 다양한 상태 간에 전환됩니다.

인스턴스를 시작하면 보류 상태(1)가 됩니다. 

인스턴스가 보류 중일 때 청구가 시작되지 않았습니다. 

이 단계에서 인스턴스는 실행 상태로 들어갈 준비를 하고 있습니다. 

보류는 AWS가 AMI 콘텐츠를 루트 디바이스에 복사하고 필요한 네트워킹 구성 요소를 할당하는 등 인스턴스를 설정하는 데 필요한 모든 작업을 수행하는 곳입니다.

인스턴스가 실행 중이면 (2) 사용할 준비가 된 것입니다. 

결제가 시작되는 단계이기도 합니다. 

스턴스가 실행되는 즉시 reboot , terminate , stop  stop-hibernate  같은 인스턴스에서 다른 작업을 수행할 수 있습니다 .

인스턴스(3)를 재부팅하면 중지 작업을 수행한 다음 시작 작업을 수행하는 것과 다릅니다. 

인스턴스를 재부팅하는 것은 운영 체제를 재부팅하는 것과 같습니다. 

인스턴스는 동일한 호스트 컴퓨터에 남아 있으며 공개 및 비공개 IP 주소와 인스턴스 스토어의 모든 데이터를 유지 관리합니다.

일반적으로 재부팅이 완료되는 데 몇 분 정도 걸립니다. 

인스턴스(4)를 중지하고 시작하면 인스턴스가 새로운 기본 물리적 서버에 배치될 수 있습니다. 

따라서 이전 호스트 컴퓨터에 있던 인스턴스 스토어의 모든 데이터가 손실됩니다. 

인스턴스를 중지하면 인스턴스는 새 퍼블릭 IP 주소를 가져오지만 동일한 프라이빗 IP 주소를 유지합니다.

인스턴스(5)  종료 하면 인스턴스 스토어가 지워지고 머신의 공인 IP 주소와 사설 IP 주소를 모두 잃게 됩니다. 인스턴스가 종료되면 더 이상 시스템에 액세스할 수 없습니다.

 

Stop과 Stop-Hibernate의 차이점은 무엇입니까?

인스턴스를 중지하면 중지 상태 가 된 다음 중지 상태가 됩니다. AWS는 인스턴스를 중지한 후 인스턴스에 대한 사용 또는 데이터 전송 요금을 청구하지 않지만 Amazon EBS 볼륨에 대한 스토리지는 계속 청구됩니다. 인스턴스가 중지된 상태인 동안 인스턴스 유형과 같은 일부 속성을 수정할 수 있습니다. 인스턴스를 중지하면 메모리(RAM)에 저장된 데이터가 손실됩니다.

인스턴스  중지-최대 절전 모드로 전환 하면 AWS는 최대 절전 모드(디스크 일시 중단)를 수행하도록 운영 체제에 신호를 보내 인스턴스 메모리(RAM)의 콘텐츠를 Amazon EBS 루트 볼륨에 저장합니다.

고양이 사진 응용 프로그램이 매우 인기를 얻는 시나리오를 고려하십시오. 애플리케이션을 지원하는 데이터베이스에 대한 스트레스를 완화하기 위해 메모리(RAM)에 데이터베이스 정보를 캐시하는 사용자 정의 백엔드 계층을 구현하려고 합니다. Amazon EC2에서 이 사용자 지정 백엔드 캐싱 솔루션을 실행하기로 결정했습니다.

이 시나리오에서 최대 절전 모드 중지 기능은 스토리지를 유지하는 데 유용합니다. 서버를 종료하기 전에 이 RAM 데이터를 저장하기 위해 스크립트를 수동으로 생성하지 않아도 됩니다.

가격을 구성하는 요소는 무엇입니까?

EC2 가격을 이해하기 위해 스토리지 및 네트워킹 비용과 같이 연결된 다른 서비스와 인스턴스 가격을 분리해 보겠습니다. 

이 단원에서는 인스턴스 비용을 인스턴스 실행의 총 혼합 비용이 아니라 사양 측면에서 인스턴스와 관련된 비용이라고 합니다.

AWS 계정에서 인스턴스가 시작되면 요금은 일반적으로 초 단위로 발생합니다. 

계산의 편의를 위해 시간당 가격이 표시됩니다. 

예를 들어 특정 월에 5분 38초 동안 인스턴스를 실행한 경우 월말에 338초의 사용률에 대해서만 비용을 지불하면 됩니다.

이 요금 규칙의 한 가지 예외는 AWS Marketplace에서 구입한 타사 AMI일 수 있으며 최소 1시간 동안 청구될 수 있습니다. 자세한 내용은 이 단원의 리소스 섹션을 확인하세요.

EC2 요금 옵션은 무엇입니까?

Amazon EC2로 비용을 줄이는 방법 중 하나는 애플리케이션 실행 방식에 적합한 요금 옵션을 선택하는 것입니다. 

EC2 인스턴스에는 온디맨드, 예약 및 스팟 인스턴스의 세 가지 주요 구매 옵션이 있습니다. 

온디맨드 인스턴스로 사용한 만큼 지불

함께 온 디맨드 인스턴스, 당신은 어떤 장기 공약 컴퓨팅 용량을 지불합니다. 

인스턴스가 실행 중일 때마다 청구가 시작되고 인스턴스가 중지되거나 종료된 상태가 되면 청구가 중지됩니다. 

실행 중인 온디맨드 인스턴스의 초당 가격은 고정되어 있습니다.

서버를 항상 실행해야 하는 애플리케이션의 경우 서버를 꺼야 하는 상황이 없기 때문에 온디맨드 가격 모델의 이점을 누릴 가능성이 적습니다. 예를 들어 고양이 사진 응용 프로그램의 프런트엔드를 호스팅하는 웹 서버가 연중무휴로 실행되어 사용자가 언제든지 웹사이트에 액세스할 수 있기를 원할 수 있습니다. 웹사이트에 연결된 사용자가 없더라도 잠재적인 사용자 활동이 발생할 경우 사이트를 지원하는 서버를 종료하고 싶지 않습니다.

서버를 중지할 수 없는 경우에는 예약 인스턴스를 사용하여 비용을 절약하는 것이 좋습니다.

예약 인스턴스(RI)로 용량 예약

RI는 온디맨드 인스턴스 가격에 비해 상당한 할인을 제공합니다. RI는 할인된 시간당 요금과 EC2 인스턴스에 대한 선택적 용량 예약을 제공합니다. 전체 선결제 , 부분 선결제 또는 선결제 없음의 세 가지 결제 옵션 중에서 선택할 수 있습니다 . 각 옵션에 대해 1년 또는 3년 기간을 선택할 수 있습니다. 

어떤 옵션을 선택하느냐에 따라 할인이 다르게 적용됩니다.

  • 전체 선결제는 부분 선결제 인스턴스보다 더 높은 할인을 제공합니다.
  • 부분 선결제 인스턴스는 선결제 없음보다 더 높은 할인을 제공합니다.
  • 선결제 없음은 온디맨드보다 더 높은 할인을 제공합니다.

온 디맨드  없음 선취 모두 어떤 선금을 필요로하지 않기 때문에 유사하다. 그러나 중요한 차이점이 있습니다. 온디맨드 인스턴스를 선택하면 인스턴스를 중지하거나 종료할 때 인스턴스에 대한 비용 지불이 중지됩니다. RI를 중지해도 1년 또는 3년 약정을 했기 때문에 비용을 계속 지불하게 됩니다. 

예약 인스턴스는 예약 방법에 따라 인스턴스 유형 및 가용 영역과 연결됩니다. 예약 인스턴스 구매 시 적용되는 할인은 특정 인스턴스 ID와 직접 연결되지 않고 인스턴스 유형과 연결됩니다.

스팟 인스턴스로 비용 절감

EC2 인스턴스 비용을 지불하는 또 다른 방법은 스팟 인스턴스 를 사용하는 것 입니다. Amazon EC2 스팟 인스턴스를 사용하면 AWS 클라우드에서 미사용 EC2 용량을 활용할 수 있습니다. 온디맨드 가격에 비해 최대 90% 할인된 가격으로 제공됩니다. 

스팟 인스턴스를 사용하면 인스턴스 시간에 대해 지불할 금액에 대한 한도를 설정합니다. 이는 AWS가 결정하는 현재 스팟 가격과 비교됩니다. 지불하는 금액이 현재 스팟 가격보다 많고 용량이 있는 경우 인스턴스를 받게 됩니다. 청구 관점에서 매우 유망하지만 효과적으로 사용하기 위해 고려해야 할 몇 가지 아키텍처 고려 사항이 있습니다.

한 가지 고려 사항은 스팟 인스턴스가 중단될 수 있다는 것입니다. 예를 들어 AWS에서 특정 스팟 인스턴스에 대해 더 이상 용량을 사용할 수 없다고 판단하거나 스팟 가격이 지불할 의사가 있는 금액을 초과하는 경우 AWS는 인스턴스를 중단하기 전에 2분 경고를 제공합니다. 즉, 스팟 인스턴스에서 실행되는 모든 애플리케이션 또는 워크로드는 중단될 수 있어야 합니다.

이러한 고유한 고려 사항 때문에 본질적으로 내결함성이 있는 워크로드는 일반적으로 스팟 인스턴스와 함께 사용하기에 좋은 후보입니다. 여기에는 빅 데이터, 컨테이너화된 워크로드, CI/CD(지속적 통합/지속적 전달), 웹 서버, HPC(고성능 컴퓨팅), 이미지 및 미디어 렌더링 또는 기타 테스트 및 개발 워크로드가 포함됩니다.

마무리

Amazon EC2를 사용할 때 이 세 가지 요금 옵션을 모두 사용하여 워크로드 비용과 성능을 최적화할 수 있습니다. 이 접근 방식을 혼합 접근 방식이라고 하며 작업에 적합한 도구를 선택할 수 있습니다. 다음 단원에서는 AWS 플랫폼의 컨테이너 컴퓨팅 옵션에 대해 알아봅니다.

 

Quiz

1. When you stop an instance, which attribute does the instance retain by default?

A.Public IP address

B.Private IP address

C.The underlying host computer

D.Instance store volumes

 

2. True or false: You have to choose one instance pricing option for all your EC2 instances.

A.True

B.False

 

 

AWS 컨테이너 서비스 알아보기

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • 컨테이너의 장점과 작동 방식을 이해합니다.
  • 컨테이너와 가상 머신을 구분합니다.
  • 컨테이너를 사용할 시기를 결정합니다.
  • AWS 컨테이너 서비스의 기능과 이점을 알아보십시오.

AWS는 적합한 작업에 적합한 도구를 선택할 수 있는 유연성을 제공하는 광범위한 컴퓨팅 오퍼링을 제공합니다. 

컴퓨팅의 세 가지 주요 범주는 가상 머신 , 컨테이너  서버리스 입니다. 귀하의 필요에 따라 다르기 때문에 획일적인 서비스는 없습니다. 

핵심은 사용 사례에 더 적합한 클라우드 아키텍처를 구축하기 위해 각 옵션이 제공해야 하는 사항을 이해하는 것입니다. 이 단원에서는 컨테이너와 AWS에서 컨테이너를 실행하는 방법에 대해 알아봅니다.

컨테이너는 웹 애플리케이션, 리프트 앤 시프트 마이그레이션, 분산 애플리케이션, 개발, 테스트 및 프로덕션 환경의 간소화를 비롯한 다양한 워크로드를 호스팅할 수 있습니다. 

컨테이너 란 무엇입니까?

컨테이너는 종종 새로운 기술로 언급되지만, 아이디어는 1970년대에 특정 Unix 커널이 격리를 통해 프로세스를 분리할 수 있는 능력을 갖추면서 시작되었습니다. 당시에는 수동으로 구성했기 때문에 작업이 복잡했습니다.

오픈 소스 소프트웨어 커뮤니티의 발전과 함께 컨테이너도 진화했습니다. 오늘날 컨테이너는 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 이동할 때 소프트웨어를 안정적으로 실행하는 문제를 포함하여 기존 컴퓨팅 문제에 대한 솔루션으로 사용됩니다.

컨테이너는 코드와 모든 종속성을 패키징하는 표준화된 단위입니다. 이 패키지는 컨테이너가 자체 독립 환경을 생성하기 때문에 모든 플랫폼에서 안정적으로 실행되도록 설계되었습니다. 따라서 개발에서 프로덕션으로 또는 온프레미스에서 클라우드로 작업 부하를 한 곳에서 다른 곳으로 쉽게 이동할 수 있습니다.

도커란?

container 라는 단어를 들으면 Docker와 연결할 수 있습니다. Docker는 네트워킹 및 스토리지를 포함하여 컨테이너 격리에 필요한 전체 운영 체제 스택의 관리를 단순화하는 널리 사용되는 컨테이너 런타임입니다. Docker를 사용하면 컨테이너를 쉽게 생성, 패키징, 배포 및 실행할 수 있습니다.

컨테이너와 VM의 차이점은 무엇입니까?

컨테이너는 존재하는 호스트와 동일한 운영 체제 및 커널을 공유하는 반면 가상 머신에는 운영 체제가 포함됩니다. 각 가상 머신은 운영 체제의 복사본을 유지 관리해야 하기 때문에 어느 정도 공간이 낭비됩니다. 

컨테이너가 더 가볍습니다. 그들은 거의 즉시 더 빠르게 회전합니다. 시작 시간의 이러한 차이는 입출력(I/O) 버스트 동안 빠르게 확장해야 하는 애플리케이션을 설계할 때 중요합니다.

컨테이너가 속도를 제공할 수 있지만 가상 머신은 운영 체제의 모든 장점을 제공하고 패키지 설치, 전용 커널 등과 같은 더 많은 리소스를 제공합니다.

컨테이너 오케스트레이션

AWS에서 컨테이너는 EC2 인스턴스에서 실행됩니다. 예를 들어 대규모 인스턴스가 있고 해당 인스턴스에서 몇 개의 컨테이너를 실행할 수 있습니다.

하나의 인스턴스를 실행하는 것은 관리하기 쉽지만 고가용성과 확장성이 부족합니다. 대부분의 회사와 조직은 여러 가용 영역에 걸쳐 많은 EC2 인스턴스에서 많은 컨테이너를 실행합니다.

대규모로 컴퓨팅을 관리하려는 경우 다음 사항을 알아야 합니다.

  • 인스턴스에 컨테이너를 배치하는 방법입니다.
  • 컨테이너가 실패하면 어떻게 됩니까?
  • 인스턴스가 실패하면 어떻게 됩니까?
  • 컨테이너 배포를 모니터링하는 방법.

이 조정은 컨테이너 오케스트레이션 서비스에서 처리합니다. AWS는 Amazon Elastic Container Service(ECS)와 Amazon Elastic Kubernetes Service(EKS)의 두 가지 컨테이너 오케스트레이션 서비스를 제공합니다.

Amazon Elastic Container Service(Amazon ECS)로 컨테이너 관리

Amazon ECS는 새로운 컨테이너를 신속하게 가동하고 EC2 인스턴스 클러스터에서 관리할 수 있는 엔드 투 엔드 컨테이너 오케스트레이션 서비스입니다.

컨테이너를 실행하고 관리하려면 EC2 인스턴스에 Amazon ECS 컨테이너 에이전트를 설치해야 합니다. 

이 에이전트는 오픈 소스이며 클러스터 관리 세부 정보에 대해 Amazon ECS 서비스와 다시 통신하는 역할을 합니다. 

Linux 및 Windows AMI 모두에서 이 에이전트를 실행할 수 있습니다. 

컨테이너 에이전트가 설치된 인스턴스를 컨테이너 인스턴스 라고 합니다 .

Amazon ECS 컨테이너 인스턴스가 시작되어 실행되면 컨테이너 시작 및 중지, 클러스터 상태 가져오기, 확장 및 축소, 클러스터 전체에 컨테이너 배치 예약, 권한 할당, 가용성 요구 사항 충족.

Amazon ECS에서 실행할 애플리케이션을 준비하려면 작업 정의를 생성합니다. 작업 정의는 하나 이상의 컨테이너를 설명하는 JSON 형식의 텍스트 파일입니다. 작업 정의는 CPU, 메모리, 포트, 이미지, 스토리지 및 네트워킹 정보와 같이 해당 컨테이너를 실행하는 데 필요한 리소스를 설명하는 청사진과 유사합니다.

다음은 고양이 사진 응용 프로그램에 사용할 수 있는 간단한 작업 정의입니다. 이 예에서 고양이 사진 애플리케이션은 Nginx 웹 서버에서 실행됩니다.


  "family": "webserver", 
  "containerDefinitions": [ { 
     "name": "web", 
     "image": "nginx", 
     "memory": "100", 
     "cpu": "99" 
   }, ], 
  "requiresCompatibilities": [ "FARGATE" ], 
  "networkMode": "awsvpc", 
  "memory": "512", 
  "cpu": "256", 
}

Amazon Elastic Kubernetes Service(Amazon EKS)와 함께 Kubernetes 사용

Kubernetes는 컨테이너화된 워크로드 및 서비스를 관리하기 위한 이식 가능하고 확장 가능한 오픈 소스 플랫폼입니다. 

Kubernetes는 설계에 따라 소프트웨어 개발과 운영을 통합함으로써 시장에서 매우 인기 있고 잘 정립된 빠르게 성장하는 생태계를 만들었습니다. 

이미 Kubernetes를 사용하고 있다면 Amazon EKS를 사용하여 AWS 클라우드에서 이러한 워크로드를 오케스트레이션할 수 있습니다.

Amazon EKS는 개념적으로 Amazon ECS와 유사하지만 몇 가지 차이점이 있습니다.

  • ECS 에이전트가 설치 및 구성된 EC2 인스턴스를 컨테이너 인스턴스라고 합니다. Amazon EKS에서는 작업자 노드라고 합니다.
  • ECS 컨테이너를 작업이라고 합니다. Amazon EKS 생태계에서는 이를 포드라고 합니다.
  • Amazon ECS는 AWS 기본 기술에서 실행되지만 Amazon EKS는 Kubernetes에서 실행됩니다.

Kubernetes에서 실행 중인 컨테이너가 있고 인프라에 대한 단순성, 고가용성 및 세분화된 제어를 제공할 수 있는 고급 오케스트레이션 솔루션을 원하는 경우 Amazon EKS가 적합한 도구입니다.

마무리

Amazon ECS 및 Amazon EKS를 사용하여 컨테이너를 실행하고 관리할 수 있습니다. Amazon ECS와 Amazon EKS는 모두 두 가지 컴퓨팅 모드에서 실행할 수 있습니다. 이 단원에서는 EC2에서 ECS 및 EKS를 실행하는 방법을 배웠습니다. 다음 단원에서는 serverless를 통해 두 번째 모드에서 컨테이너를 실행하는 방법을 배웁니다 .

 

Quiz

1. What is a difference between Amazon ECS and Amazon EKS?

A.They use different terminology.

B.Amazon ECS is an orchestration service and Amazon EKS is a migration service.

C.Amazon EKS is built off an open source platform.

D.A and B

E.A and C

 

2. True or false: Containers can only be used for web applications, such as the cat photo application.

A.True

B.False

 

AWS 기반 서버리스에 대해 알아보기

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • 서버리스 기술 사용의 기능과 이점을 알아보세요.
  • AWS 서버리스 서비스에 대해 설명합니다.
  • 일반적인 서버리스 애플리케이션 아키텍처를 설명합니다.

미분화된 중량물 제거

Amazon EC2에서 고양이 사진 애플리케이션을 실행하는 경우 AWS는 물리적 하드웨어를 책임지고 사용자는 게스트 운영 체제, 보안 및 패치, 네트워킹, 보안, 확장과 같은 논리적 제어를 책임집니다.

Amazon ECS 및 Amazon EKS의 컨테이너에서 고양이 사진 애플리케이션을 실행하는 경우 AWS는 EC2 인스턴스 전체에 컨테이너 배포 및 컨테이너 클러스터 관리와 같은 더 많은 컨테이너 관리를 담당합니다. 그러나 EC2에서 ECS 및 EKS를 실행할 때 기본 EC2 인스턴스를 유지 관리해야 합니다.

EC2 인스턴스를 관리할 필요 없이 워크로드와 애플리케이션을 배포하려면 AWS에서 서버리스 컴퓨팅을 사용하면 됩니다.

서버리스로 이동

서버리스의 모든 정의는 네 가지 측면을 언급합니다.

  • 프로비저닝하거나 관리할 서버가 없습니다.
  • 사용량에 따라 확장됩니다.
  • 유휴 리소스에 대해 비용을 지불하지 않습니다.
  • 가용성 및 내결함성이 내장되어 있습니다.

서버리스를 사용하면 서버의 가용성 보장, 확장 및 관리에 시간을 소비하는 대신 애플리케이션을 차별화하는 데 시간을 할애하십시오.

AWS에는 AWS Fargate 및 AWS Lambda를 비롯한 여러 서버리스 컴퓨팅 옵션이 있습니다.

AWS Fargate로 서버리스 컨테이너 살펴보기

Amazon ECS 및 Amazon EKS를 사용하면 두 가지 모드에서 컨테이너를 실행할 수 있습니다.

  • 아마존 EC2 모드
  • AWS Fargate 모드

AWS Fargate는 컨테이너용으로 특별히 제작된 서버리스 컴퓨팅 엔진입니다. Fargate는 인프라를 확장 및 관리하여 개발자가 가장 잘하는 일인 애플리케이션 개발을 수행할 수 있도록 합니다.

적절한 양의 컴퓨팅을 할당하여 이를 달성하고 EC2 인스턴스와 클러스터 용량 및 확장을 선택하고 처리할 필요가 없습니다. Fargate는 Amazon ECS 및 Amazon EKS 아키텍처를 모두 지원하며 설계에 따라 워크로드 격리 및 향상된 보안을 제공합니다.

AWS Fargate는 EC2 인스턴스를 추상화하므로 관리할 필요가 없습니다. 그러나 AWS Fargate를 사용하면 동일한 ECS 프리미티브, API 및 AWS 통합을 모두 사용할 수 있습니다. 기본적으로 AWS Identity and Access Management(IAM) 및 Amazon Virtual Private Cloud(VPC)와 통합됩니다. Amazon VPC와의 기본 통합을 통해 네트워크 내에서 Fargate 컨테이너를 시작하고 애플리케이션에 대한 연결을 제어할 수 있습니다.

AWS Lambda에서 코드 실행

EC2 인스턴스나 컨테이너를 관리할 필요 없이 워크로드와 애플리케이션을 배포하려는 경우 AWS Lambda를 사용할 수 있습니다.

AWS Lambda를 사용하면 서버 또는 컨테이너를 프로비저닝하거나 관리하지 않고도 코드를 실행할 수 있습니다. 데이터 처리, 실시간 스트림 처리, 기계 학습, WebSocket, IoT 백엔드, 모바일 백엔드, 웹 앱(예: 고양이 사진 공유 앱)을 포함하여 거의 모든 유형의 애플리케이션 또는 백엔드 서비스에 대한 코드를 실행할 수 있습니다!

AWS Lambda는 사용자의 관리가 필요하지 않습니다. 소스 코드를 업로드하면 Lambda가 고가용성으로 코드를 실행하고 확장하는 데 필요한 모든 것을 처리합니다. 관리할 서버가 없으므로 1초 미만의 측정 및 일관된 성능으로 지속적인 확장이 가능합니다.

Lambda 작동 방식

Lambda 함수에는 트리거, 코드 및 구성의 세 가지 기본 구성 요소가 있습니다.

코드는 Lambda 함수가 실행해야 하는 내용을 설명하는 소스 코드입니다. 이 코드는 세 가지 방법으로 작성할 수 있습니다.

  • 코드를 처음부터 생성합니다.
  • AWS에서 제공하는 Blueprint를 사용합니다.
  • "hello world" 코드, Amazon Alexa Skill 샘플 코드, 이미지 크기 조정 코드, 비디오 인코딩 등과 같은 샘플 애플리케이션이 포함된 리소스인 AWS Serverless Application Repository에서 동일한 코드를 사용합니다.

Lambda 함수를 생성할 때 코드를 실행할 런타임을 지정합니다. Python, Node.js, Ruby, Go, Java, .NET Core와 같은 내장 런타임이 있거나 Lambda 함수를 구현할 수 있습니다. 사용자 지정 런타임에서 실행합니다.

Lambda 함수의 구성은 함수 실행 방법을 설명하는 정보로 구성됩니다. 구성에서 네트워크 배치, 환경 변수, 메모리, 호출 유형, 권한 집합 및 기타 구성을 지정합니다. 이러한 구성에 대해 더 자세히 알아보려면 이 단원의 리소스 섹션을 확인하십시오.

트리거는 Lambda 함수를 실행해야 하는 시기를 설명합니다. 트리거는 Lambda 함수를 다른 AWS 서비스와 통합하여 AWS 계정에서 발생하는 특정 API 호출에 대한 응답으로 Lambda 함수를 실행할 수 있도록 합니다. 이렇게 하면 수동 작업을 수행할 필요 없이 콘솔의 이벤트에 더 빠르게 응답할 수 있습니다.

필요할 때만 실행되는 기능적 컴퓨팅 용량을 갖기 위해서는 Lambda 함수가 무엇을, 어떻게, 언제만 있으면 됩니다.

마무리

Amazon의 CTO인 Werner Vogels는 "서버가 없는 것보다 관리하기 쉬운 서버는 없습니다."라고 말합니다. 이 인용문은 AWS Fargate 및 AWS Lambda와 같은 서버리스 솔루션을 실행할 때 얻을 수 있는 편리함을 요약한 것입니다. 다음 단원에서는 Amazon EC2, Amazon ECS 및 Amazon EKS, AWS Fargate에 대해 배운 모든 정보를 적용하고 각 서비스의 사용 사례를 학습합니다.

 

 

Quiz

1. Which of the following is true about serverless?

A.You must provision and manage servers.

B.You must manually scale serverless resources.

C.You never pay for idle resources.

D.You must manage availability and fault tolerance.

 

2. What is the difference between AWS Fargate and Amazon ECS on EC2?

A.With AWS Fargate, AWS manages and provisions the underlying EC2 instance for your containers.

B.With Amazon ECS on EC2, AWS manages and provisions the underlying EC2 instance for your containers.

C.With AWS Fargate, you have to manage cluster capacity and scaling.

D.With Amazon ECS on EC2, you only have to upload your source code and ECS takes care of the rest.

E.You need to install and configure ECS Agents in EC2 instances to work with Fargate.

 

 

적합한 컴퓨팅 서비스 선택

학습 목표

이 단원을 완료하면 다음을 수행할 수 있습니다.

  • 컴퓨팅 서비스 오퍼링을 차별화하십시오.
  • 워크로드에 대해 가상 머신, 컨테이너 및 서버리스 중에서 결정할 때 모범 사례를 사용하십시오.

가상 머신, 컨테이너 및 서버리스 옵션을 사용할지 여부를 평가할 때 워크로드 특성 및 제약 조건과 쌍을 이루어야 합니다. 이 단원에서는 일련의 시나리오를 통해 워크로드에 대한 올바른 컴퓨팅 옵션을 선택하는 방법을 배웁니다. 이러한 선택은 사람마다 다를 수 있으므로 다음 시나리오를 제안 사항으로 고려하십시오.

시나리오 1: 가장 귀여운 새끼 고양이 결정

고양이 사진 앱에서 가장 귀여운 새끼 고양이를 결정하기 위한 토너먼트를 개발한다고 가정해 보겠습니다. 사진 양이 너무 많아서 고양이가 포함되지 않은 제출물을 필터링하여 자료를 평가하려면 기계 학습의 도움이 필요할 수 있습니다. 

고양이 사진 애플리케이션과 동일한 컴퓨팅 플랫폼에서 이 워크로드를 실행할 수 있지만 다른 애플리케이션에 더 적합할 수 있습니다. 

워크로드에는 다음과 같은 특성이 있습니다.

  • 처음부터 구축하는 작은 기능입니다.
  • 인프라 유지 관리가 아닌 코드에 집중하고 싶습니다.
  • 이 기능은 운영 체제에 대한 제어가 거의 필요하지 않습니다.
  • 사진 볼륨이 너무 높기 때문에 원활하게 확장할 수 있는 기능이 필요합니다.
  • 이러한 종류의 워크로드에 대해 웹 서버, 애플리케이션 서버 및 데이터베이스를 구성하는 방법을 모릅니다.
  • 지연 시간 및 고가용성을 위해 여러 AWS 리전에서 즉시 작동하는 확장 및 복원력을 상속하는 클라우드 네이티브 솔루션이 필요합니다.

이 토너먼트 기능의 경우 AWS Lambda와 같은 서버리스를 사용하는 것이 최상의 선택입니다. AWS Lambda를 사용하면 들어오는 많은 고양이 사진을 원활하게 확장할 수 있기 때문입니다. 또한 인프라가 아닌 코드에 집중할 수 있습니다. 이 기능을 빌드하려면 관리형 기계 학습 서비스와 함께 서버리스 컴퓨팅을 사용합니다.

시나리오 2: 온프레미스에서 마이그레이션

다른 시나리오를 살펴보겠습니다. 애완 동물 소유자가 보안 포털에 로그인하여 애완 동물 건강 기록 및 정보를 볼 수 있도록 하는 지역 수의사용 애플리케이션을 마이그레이션하고 있습니다. 이 애플리케이션은 이미 존재하며 온프레미스 가상 머신에서 실행됩니다. 기존 기술에는 맞춤형 솔루션이 필요하며 운영 체제의 리소스와 기능에 따라 다릅니다.

워크로드에는 다음과 같은 특성이 있습니다.

  • 백엔드의 일부 프로세스는 특정 OS 사용자로 실행해야 하므로 선택한 운영 체제를 완전히 제어해야 합니다.
  • 민감한 애완동물 건강 기록을 보호하려면 규제 요구 사항으로 인해 워크로드를 격리해야 합니다.
  • 컨테이너를 사용하지 않고 있으며 직원이 컨테이너를 사용하도록 교육할 예산이 없습니다.
  • 온프레미스 코로케이션 연간 계약이 곧 만료되므로 최소한의 변경으로 신속하게 애플리케이션을 마이그레이션해야 합니다.

이 워크로드는 이미 온프레미스에서 가상 머신을 사용하고 있으며 변경 사항이 거의 없이 애플리케이션을 빠르게 마이그레이션해야 하므로 Amazon EC2와 같은 가상 머신 접근 방식을 사용하는 것이 AWS에서 이상적입니다. Amazon EC2는 선택한 운영 체제에 대한 완전한 제어를 제공하고 애플리케이션을 위한 격리된 환경을 생성합니다. 

이를 통해 EC2 인스턴스에 대한 규제 요구 사항으로 인해 격리해야 하는 민감한 워크로드를 실행하거나 기본 하드웨어가 다른 AWS 고객과 공유되지 않는 전용 EC2 인스턴스를 할당할 수 있습니다. 이를 위해 AWS는 정확히 동일한 인프라 공간을 유지하면서 서버를 마이그레이션할 수 있는 서버 마이그레이션 서비스를 제공합니다.

시나리오 3: 변경 사항을 프로덕션에 신속하게 푸시

Docker 컨테이너를 사용하여 노트북에서 고양이 사진 앱 개발 환경을 실행한다고 가정해 보겠습니다. AWS에서 이 개발 환경을 실행하려고 합니다. AWS에서 컨테이너를 유지 관리하는 부담을 덜어주는 서비스를 선택해야 합니다.

워크로드에는 다음과 같은 특성이 있습니다.

  • 환경은 종종 확장 버스트를 처리합니다.
  • 귀하와 앱에서 작업하는 다른 개발자는 Docker를 잘 이해합니다.
  • 추가 디버깅이 필요한 복잡하고 지루한 배포 프로세스가 있습니다.

개발 환경은 컨테이너에서 실행되도록 설계되었으므로 Amazon EKS, Amazon ECS 또는 AWS Fargate와 같은 AWS Container 서비스를 탐색하는 것이 좋습니다. AWS에서 컨테이너를 실행하면 스핀업에 걸리는 시간이 줄어들기 때문에 환경을 더 빠르게 확장할 수 있습니다. 이 시간은 기본 하드웨어 용량을 관리하는 Fargate 모드에서 실행할 때 더욱 단축됩니다. 

이 컴퓨팅 플랫폼은 도구를 이해하는 개발자 팀이 있는 경우에도 유용합니다. Docker는 개발자를 위해 개발자가 만들었습니다. Docker는 환경 간의 격차를 줄이는 데 도움이 되지만 시스템 관리자 또는 보안 분석가는 보안 가드레일을 유지하면서 애플리케이션 프로비저닝 도구를 사용하여 서버 플릿을 운영하고 유지 관리하는 데 이미 익숙할 수 있습니다. 고양이 사진 앱을 담당하는 개발 팀이 Docker에 대해 잘 알고 있다면 컨테이너 기술을 사용하여 애플리케이션을 실행하는 것이 유리할 수 있습니다.

컨테이너 디버깅에는 추가 구성이 필요할 수도 있습니다. 복잡하고 지루한 배포 프로세스가 있는 경우 Docker가 도움이 될 수 있습니다. 그러나 간단한 앱이 있으면 불필요한 복잡성이 추가됩니다.

편의성 또는 제어 선택

더 좋거나 더 나쁜 컴퓨팅 서비스는 없으며 필요한 제어의 양과 대조되는 원하는 편의성에 관한 것입니다. 최대한의 편리함을 누리는 것이 좋지만 항상 가능한 것은 아닙니다. 경우에 따라 사용자 지정 솔루션을 만들기 위해 제어가 필요할 수 있습니다.

요약:

  • Amazon EC2를 사용하려는 경우 선택한 운영 체제를 완전히 제어할 수 있습니다. 그러나 이것은 서버리스 옵션과 비교할 때 덜 편리한 플랫폼입니다. 소프트웨어 패치, 업데이트, OS 패치 및 구성, 네트워킹, 확장 등을 관리하는 운영 체제가 아직 남아 있기 때문입니다.
  • 애플리케이션이 컨테이너에서 실행되도록 설계된 경우 Amazon EKS, Amazon ECS 또는 AWS Fargate를 사용하십시오. 이러한 서비스는 AWS에서 컨테이너를 유지 관리하는 부담을 없애도록 설계되었습니다.
  • 애플리케이션에서 운영 체제에 대한 제어가 거의 필요하지 않고 즉시 확장 및 복원력을 상속하려는 경우 AWS Lambda를 사용하십시오.

이러한 사항은 지침임을 기억하십시오. 워크로드는 빌드 중인 앱에 고유합니다. 따라서 귀하의 요구 사항을 가장 잘 충족시키는 솔루션은 여기에 설명된 것과 다르게 보일 것입니다.

마무리

워크로드를 설계할 때 고려해야 할 중요한 측면은 각 컴퓨팅 옵션이 제공해야 하는 것입니다. 그들의 장단점을 고려하고 미리 계획하십시오. 편안하다고 느끼는 도구와 리소스만 사용하도록 제한해서는 안 됩니다. AWS Lambda, ECS 클러스터 및 EC2 인스턴스의 세 가지 컴퓨팅 유형 모두에서 실행되는 애플리케이션을 보는 것은 일반적입니다.

사용할 기술을 결정하기 전에 프로젝트 요구 사항을 조사하고 출시 시간을 평가하고 해당 기술을 사용하기 위해 프로젝트에 관련된 모든 사람을 교육하는 데 필요한 노력을 평가하십시오. 결국 최고의 도구는 팀이 마스터한 도구입니다! 

 

 

Quiz

1True or false: AWS Lambda is always the best solution when running code.

A.True

B.False

 

2True or false: Amazon EC2 is best suited for applications where you need more convenience and less control.

A.True

B.False

 

반응형

'개발자정보' 카테고리의 다른 글

1.6 AWS Storage  (0) 2021.09.12
1.5 AWS Networking  (0) 2021.09.12
1.3 AWS Identity and Access Management  (0) 2021.09.12
1.1 AWS Cloud  (0) 2021.09.11
Salesforce 개발자 교육 Trails 순서  (0) 2021.09.11