DevOps BootCamp/AWS

EC2 관련 개념

cloudmaster 2023. 4. 14. 13:36

Amazon EC2(Elastic<신축성 있는>  Compute Cloud)

 > AWS에서 제공하는 클라우드 컴퓨팅 서비스

 > AWS에서 원격으로 제어할 수 있는 가상의 컴퓨터를 한 대 빌리는 것

 

클라우드 컴퓨팅

 > 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스

 

 

EC2 서비스의 장점

 > 구성하는 데 필요한 시간이 짧다는 것

 > AMI를 통해서 필요한 용도에 따라 다양한 운영체제에 대한 선택이 가능하다는 것

 > 운영체제뿐만이 아니라 CPU와 RAM, 용량까지도 손쉽게 구성

 

아마존 EC2를 통해서 할 수 있는 가장 기본적인 일

 > 웹서버를 설치하고 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 서비스를 제공

 

AMI(Amazon Machine Image)

 > 소프트웨어 구성이 기재된 템플릿

 > 이미지 종류로는 단순히 운영체제(윈도우, 우분투 리눅스 등)만 깔려있는 템플릿

 > 특정 런타임이 설치되어 있는 템플릿이 제공되는 경우도 있음 (우분투 + node.js, 윈도우 + JVM 등)

 

Instance

 > 선택한 AMI를 토대로 구성

 > 세팅되어 있는 AMI 이외에도 필요에 따라 직접 AMI를 구성할 수도 있음

 

인스턴스

Elastic Compute Cloud, EC2

 > 클라우드에서 거의 무한대에 가까운 확장 가능 컴퓨팅 용량을 제공

 > EC2를 사용하면 하드웨어에 투자할 필요 없이 빠르게 애플리케이션을 개발 및 배포

 > 원하는 만큼 가상 서버를 구축하고 보안 네트워킹을 구성하며, 스토리지를 관리

 

인스턴스(Instances)

 > 가상 컴퓨팅 환경으로, 하나의 가상 컴퓨터(서버)

 > 애플리케이션 또는 소프트웨어에 필요한 메모리 양과 컴퓨팅 파워를 기준으로 인스턴스 유형을 선택

 

Amazon Machine Image(AMI)

 > 서버에 대한 모든 소프트웨어 환경 설정 정보를 포함한 기본 설계도 또는 청사진

 > AMI에는 운영체제, 애플리케이션 서버 그리고 그 위에서 실행되는 애플리케이션 등에 대한 세부 내용을 모두 담고 있음

 > 서버 또는 인스턴스를 론칭하면 모든 요소가 상속

 > AMI를 통해 자신이 원하는 수만큼 인스턴스를 생성

 

인스턴스 유형

 > 인스턴스 유형에 따라 인스턴스에 사용되는 호스트 컴퓨터의 하드웨어가 결정

 > 인스턴스 유형은 서로 다른 컴퓨팅, 메모리, 스토리지 용량을 제공, 이 용량에 따라 한 인스턴스 패밀리로 분류

 

범용

 > 균형 있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공하며, 다양한 여러 워크로드에 사용

 

컴퓨팅 최적화

 > 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합

 > 예)  배치 처리 워크로드, 미디어 트랜스코딩, 고성능 웹 서버, HPC(고성능 컴퓨팅), 과학적 모델링, 전용 게임 서버 및 광고 서버 엔진, 기계 학습 추론 및 기타 컴퓨팅 집약적인 애플리케이션

 

메모리 최적화

 > 메모리에서 대규모 데이터 세트를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계

 

가속화된 컴퓨팅

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

 

스토리지 최적화

 > 로컬 스토리지에서 매우 큰 데이터 세트에 대해 많은 순차적 읽기 및 쓰기 액세스를 요구하는 워크로드를 위해 설계

 

HPC 최적화

 >  HPC 워크로드를 대규모로 실행할 때 최고의 가격 대비 성능을 제공하도록 특별히 제작

 > 대규모의 복잡한 시뮬레이션 및 딥 러닝 워크로드와 같이 고성능 프로세서가 유용한 애플리케이션에 적합

 

 

인스턴스의 라이프 사이클

인스턴스 상태 설명 인스턴스 사용 요금
pending 인스턴스는 running 상태로 될 준비를 하고 있습니다. 인스턴스를 처음 시작하거나 pending 상태의 인스턴스를 다시 시작하면 stopped 상태가 됩니다. 미청구
running 인스턴스를 실행하고 사용할 준비가 되었습니다. 청구
terminated 인스턴스가 영구적으로 삭제되었으며 시작할 수 없습니다. 미청구
shutting-down 인스턴스가 종료할 준비를 하고 있습니다. 미청구
stopped 인스턴스가 종료되고 사용이 불가합니다. 언제든지 인스턴스를 다시 시작할 수 있습니다. 미청구
stopping 인스턴스가 중지 또는 중지-최대 절전 모드로 전환할 준비를 하고 있습니다. 중지 준비 중인 경우 미청구최대 절전 모드로 전환 준비 중인 경우 청구

 

인스턴스 구입 옵션

On-Demand

 > 장기 약정 없이 초 단위로 컴퓨팅 용량을 구입

 >  running 상태인 시간(초)에 대해서만 지불

 > 실행 중인 온디맨드 인스턴스에 대한 초당 요금은 고정 요금

 

Reserved

 > 온디맨드 인스턴스 요금과 비교하여 EC2 비용을 대폭(최대 75%) 절감하는 효과를 제공

 > 사용량이 거의 확정된 프로덕션 워크로드용 인스턴스 실행에 적합

 > 트래픽이 안정적이거나 성능에 대한 요구 수준이 예측 가능한 경우 예약 인스턴스를 사용

 > 예약 기간은 1년 또는 3년 약정이 적용

 > 리전 또는 특정 AZ의 인스턴스를 예약할 수도 있음

 

Spot

 > 온디맨드 가격보다 저렴한 비용으로 제공되는 예비 EC2 용량을 사용하는 인스턴스

 > 큰 할인율로 미사용 EC2 인스턴스를 요청할 수 있게 해주므로 사용자는 Amazon EC2 비용을 대폭 낮출 수 있움

 > 시간당 가격을 스팟 가격

 > 용량이 가용 상태이고 요청에 대한 시간당 최고가가 스팟 가격보다 더 높을 때마다 실행

 > 애플리케이션이 실행되는 시간을 유연하게 조정할 수 있고 애플리케이션을 중단할 수 있는 경우에 선택하는 비용 효율적인 방법

 > 데이터 분석, 배치 작업, 백그라운드 프로세싱 및 선택적 작업에 적합

 

스토리지 - 인스턴스 루트 볼륨(Instance Root Volume)

 > 인스턴스 루트 디바이스에는 인스턴스 부팅을 위한 이미지가 포함

 > Elastic Block Store 혹은 인스턴스 스토어 볼륨 중 하나

 > EC2 인스턴스가 론칭되면 모든 루트 디바이스는 S3로부터 론칭에 필요한 정보를 가져옴

 > S3를 통해 백업되는 인스턴스 루트 디바이스를 스토어 기반 인스턴스라고 부름

 > EBS를 제공한 이후 이미지를 EBS 볼륨 기반으로 제공하는데 인스턴스를 론칭할 때마다 루트 디바이스가 EBS 볼륨에서 론칭되고 EBS 스냅샷을 통해 생성 -> EBS 기반 인스턴스

 

인스턴스 스토어 기반 인스턴스

 : 인스턴스는 하나 이상의 인스턴스 스토어 볼륨을 자동으로 사용 -> 하나가 루트 디바이스 볼륨 역할

   > 인스턴스가 시작되면 인스턴스를 부팅하는 데 사용된 이미지가 루트 볼륨으로 복사 

 > 인스턴스 유형에 따라 다른 인스턴스 스토어 볼륨을 사용할 수도 있음

 > 인스턴스 스토어 볼륨의 모든 데이터는 인스턴스가 실행되는 동안 유지, 인스턴스가 종료되거나 장애가 발생하면 데이터가 삭제

 > Amazon EC2 인스턴스 스토어가 지원하는 인스턴스를 사용하려는 경우 여러 가용 영역의 인스턴스 스토어로 데이터를 분산하는 것이 좋음

 > 또한 인스턴스 스토어 볼륨의 중요한 데이터를 정기적으로 영구 스토리지로 백업

 

EBS 기반 인스턴스

 > EBS를 루트 디바이스로 사용하는 인스턴스에는 자동으로 EBS 볼륨이 연결

 > EBS 지원 인스턴스를 시작하면 사용하는 AMI가 참조하는 각 EBS 스냅샷에 대한 EBS 볼륨이 생성

 > 인스턴스 유형에 따라 다른 EBS 볼륨이나 인스턴스 스토어 볼륨을 사용

 > EBS 지원 인스턴스는 중지한 후 다시 시작해도 연결된 볼륨에 저장된 데이터에 아무런 영향이 없음

 > EBS 지원 인스턴스가 중지 상태일 때 다양한 인스턴스 및 볼륨 관련 태스크를 수행

 

보안

키 페어

 > EC2는 퍼블릭-프라이빗 키 방식을 사용

 > 퍼블릭 키는 데이터 암호화에, 프라이빗 키는 데이터 복호화에 사용

 > 사용자는 EC2 인스턴스 연결을 위해 프라이빗 키를 사용

 > 퍼블릭 키와 프라이빗 키 조합인 키 페어를 생성하는 방법

   : AWS 콘솔, CLI, API 호출 방식으로 생성

> AWS 고객은 자신의 키를 가져와서 시스템에 업로드 해놓고 사용할 수도 있음

 > SSH-2 RSA 키를 사용하며, 리전당 최대 5,000개의 키 페어를 사용할 수 있음

 

보안 그룹(Security Group)

 > 하나 혹은 다수의 인스턴스에 대한 트래픽을 통제하는 가상의 방화벽

 > 인스턴스를 론칭한 뒤, 해당 인스턴스에 하나 혹은 다수의 보안 그룹을 연결

 > 해당 인스턴스로 유입되거나 해당 인스턴스에서 유출되는 트래픽에 대한 처리 규칙을 설정

 > 언제든 수정 할 수 있으며, 새로운 규칙이 추가되면 해당 보안 그룹에 포함된 모든 인스턴스에 자동으로 적용

 > 인스턴스에 특정 트래픽이 도달할지 여부는 해당 인스턴스에 연결된 모든 보안 그룹 규칙에 따라 정해짐

 

★ 보안 그룹의 규칙의 특징

 

  • 기본적으로 보안 그룹은 모든 아웃바운드 트래픽을 허용
  • 보안 그룹 규칙은 언제나 허용 여부만 정할 수 있고 거부 여부는 정할 수 없음
  • 보안 그룹은 스테이트풀(Stateful) 속성을 지님. 인스턴스에서 요청을 보내면, 해당 요청에 대한 응답 트래픽은 보안 그룹의 인바운드 규칙과 무관하게 전달이 허용
  • 보안 그룹 규칙은 언제든 추가 또는 삭제 할 수 있음. 변경 사항은 짧은 시간 내에 해당 시큐리티 그룹에 연결된 모든 인스턴스에 적용.
  • 하나의 인스턴스에 여러 개의 시큐리티 그룹을 연결할 경우 각 시큐리티 그룹의 규칙은 단일 규칙 세트로서 인스턴스에 적용되고 사용자는 이 규칙 세트를 통해 트래픽의 허용 여부를 결정할 수 있음.

※ 아웃바운드 트래픽 : 내부 네트워크에서 외부 네트워크로 나가는 데이터의 흐름

 

네트워킹 - Instance IP 주소 지정

프라이빗 IPv4

 > 인터넷을 통해 연결할 수 없는 IP 주소

 > 동일 VPC에서 인스턴스 간의 통신을 위해 사용

 > 인스턴스를 시작할 때 인스턴스에 기본 프라이빗 IPv4 주소와 내부 DNS 호스트 이름이 할당

 

퍼블릭 IPv4

 > 인터넷을 통해 연결할 수 있는 IPv4 주소

 > 인스턴스와 인터넷의 상호 통신을 위해 사용

 > 인스턴스가 중지되거나 최대 절전 모드로 전환되거나 종료되면 인스턴스의 퍼블릭 IP 주소는 해제

 > 중지되거나 최대 절전 모드로 전환된 인스턴스가 시작되면 새 퍼블릭 IP 주소가 할당

 > 영구 퍼블릭 IP 주소가 필요한 경우 탄력적 IP(Elastic IP) 주소를 대신하여 사용

 

Elastic IP

 > 동적 클라우드 컴퓨팅을 위해 고안된 정적 IPv4 주소

 > AWS 계정에 할당되며 해제할 때까지 할당된 상태로 유지

 > 주소를 계정의 다른 인스턴스에 신속하게 다시 매핑하여 인스턴스나 소프트웨어의 오류를 마스킹할 수 있음

 > 도메인이 인스턴스를 가리키도록 도메인에 대한 DNS 레코드에 탄력적 IP 주소를 지정

 > 연결 해제한 탄력적 IP 주소는 명시적으로 릴리스할 때까지 계정에 할당

 > 실행 중인 인스턴스와 연결되지 않은 탄력적 IP 주소에 대해서는 소액의 시간당 요금이 부과

 

 

'DevOps BootCamp > AWS' 카테고리의 다른 글

Storage - EBS  (0) 2023.04.14
Storage - S3  (0) 2023.04.14
스토리지  (0) 2023.04.14
AWS 서비스 로드맵  (0) 2023.04.14
Cloud Computing - AWS  (0) 2023.04.14