3/14 데브옵스 AWS (EC2)

Amazon EC2(Elastic Compute Cloud)

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

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

EC2란 아마존 웹 서비스에서 제공하는 클라우드 컴퓨팅 서비스입니다.

클라우드 컴퓨팅은 인터넷(클라우드)을 통해 서버, 스토리지, 데이터베이스 등의 컴퓨팅 서비스를 제공하는 서비스입니다. 정리하면 아마존에서 가상의 컴퓨터를 한 대 빌리는 것과 같습니다.


Elastic = 탄력(신축성)있는, 유연한

AWS에서 제공하는 Elastic Compute Cloud 서비스 앞에 붙은 Elastic이라는 단어는 어떤 의미일까요?

해당 단어는 고사양 게임을 플레이하는 것에 비유하여 설명하면 이해하기 편합니다. 집에서 고사양 게임을 하기 위해서는 게임을 1시간을 하든지 10시간을 하든지 간에 기본적으로 지출해야 하는 돈이 있습니다.

그런데 후불제 PC방에 간다면 집에서 게임을 하기 위해서 기본적으로 지출해야 하는 비용 대신, PC방을 사용한 시간에 대해서만 비용을 지불하면 됩니다.

EC2 서비스도 이런 후불제 PC방과 같이 사용한 만큼비용을 지불하기 때문에 '탄력적인'이라는 의미의 Elastic이라는 단어가 붙어있습니다.

Elastic은 비용적인 부분뿐만이 아니라 필요에 따라 성능, 용량을 자유롭게 조절할 수 있다는 의미도 가지고 있습니다.

정리하자면 EC2 서비스는 AWS에서 비용, 성능, 용량 면에서 탄력적인 클라우드 컴퓨터를 제공하는 서비스라고 할 수 있습니다.


EC2 사용의 이점 - 구성하는데 필요한 시간이 짧다.

EC2 서비스의 장점 중 첫 번째는 구성하는 데 필요한 시간이 짧다는 것입니다.

만약 PC를 구매한다면 구매해서 배송받기까지의 시간이 필요하지만 EC2 서비스는 몇 번의 클릭만으로 PC를 구성할 수 있습니다.


EC2 사용의 이점 - 다양한 운영체제에 대한 선택이 가능하다

이후에 설명할 AMI를 통해서 필요한 용도에 따라 다양한 운영체제에 대한 선택이 가능하다는 것입니다.

EC2에서는 AMI라는 다양한 템플릿을 제공하고 있어서 필요에 따라 손쉽게 운영체제를 선택하고 구성할 수 있습니다.

운영체제뿐만이 아니라 CPU와 RAM, 용량까지도 손쉽게 구성할 수 있습니다.


AWS에서 빌리는 컴퓨터를 Instance라 한다

EC2는 컴퓨터를 한 대 빌리는 것이므로 컴퓨터로 할 수 있는 모든 일을 할 수 있습니다.

빌린 컴퓨터는 직접 사용하는 컴퓨터와 다르게 아마존이 전 세계에 만들어 놓은 데이터 센터(인프라)에 만들어져 있기 때문에 컴퓨터를 조작하기 위해 네트워크(인터넷)를 통해서 컴퓨터를 제어해야 한다는 차이점이 있을 뿐반적인 컴퓨터와 다른 점은 없습니다.

아마존 EC2를 통해서 할 수 있는 가장 기본적인 일은 웹서버를 설치하고 웹 서버를 통해서 사용자가 웹 브라우저를 통해 요청하는 서비스를 제공하는 것입니다.

인스턴스는 1대의 컴퓨터를 의미하는 단위이고 AWS에서 컴퓨터를 빌리는 것을 인스턴스를 생성한다고 합니다.


AMI (Amazon Machine Image)

AMI는 소프트웨어 구성이 기재된 템플릿입니다.

이미지 종류로는 단순히 운영체제(윈도우, 우분투 리눅스 등)만 깔려있는 템플릿을 선택할 수도 있고, 아예 특정 런타임이 설치되어 있는 템플릿이 제공되는 경우도 있습니다. (우분투 + node.js, 윈도우 + JVM 등)

AWS에서 빌릴 PC는 사용용도에 맞게 운영체제, 런타임 등이 구성된 Setting을 선택할 수 있습니다.

*런타임 https://asfirstalways.tistory.com/99 

상당히 많은 양의 Image가 AWS에 미리 준비되어 있으며, 선택된 Image를 바탕으로 Instance의 운영체제가 결정 됩니다.

Instance는 선택한 AMI를 토대로 구성됩니다. AWS에는 상당히 많은 양의 AMI 세팅이 준비되어 있기 때문에 손쉽게 인스턴스의 운영체제를 구성할 수 있습니다. 세팅되어 있는 AMI 이외에도 필요에 따라 직접 AMI를 구성할 수도 있습니다.


EC2 인스턴스 생성의 의미

AMI를 토대로 Setting된 PC를 빌린다

AWS EC2 인스턴스를 생성한다는 것AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것입니다.


Elastic Compute Cloud, EC2

Elastic Compute Cloud, EC2는 클라우드에서 거의 무한대에 가까운 확장 가능 컴퓨팅 용량을 제공합니다.

EC2를 사용하면 하드웨어에 투자할 필요 없이 빠르게 애플리케이션을 개발하고 배포할 수 있으며, 원하는 만큼 가상 서버를 구축하고 보안 네트워킹을 구성하며, 스토리지를 관리할 수 있습니다.


인스턴스(Instances)

인스턴스

가상 컴퓨팅 환경으로, 하나의 가상 컴퓨터(서버)라고 생각하면 됩니다. 인스턴스에서 실행하려는 애플리케이션 또는 소프트웨어에 필요한 메모리 양과 컴퓨팅 파워를 기준으로 인스턴스 유형을 선택합니다.

Amazon Machine Image(AMI)

클라우드에서 실행되는 서버에 대한 모든 소프트웨어 환경 설정 정보를 포함한 기본 설계도 또는 청사진과 같습니다.

AMI에는 운영체제, 애플리케이션 서버 그리고 그 위에서 실행되는 애플리케이션 등에 대한 세부 내용을 모두 담고 있습니다. AMI로 서버 또는 인스턴스를 론칭하면 모든 요소가 상속되어 만들어 집니다.

사용자는 AMI를 통해 자신이 원하는 수만큼 인스턴스를 생성할 수 있습니다.

인스턴스 유형

인스턴스를 시작할 때 지정하는 인스턴스 유형에 따라 인스턴스에 사용되는 호스트 컴퓨터의 하드웨어가 결정됩니다.

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

아래 레퍼런스를 통해 인스턴스 유형에 대해서 공부하시기 바랍니다.

해당 인스턴스 유형을 모두 외워야 하는 것이 아니라, 어떤 것을 기준으로 인스턴스의 유형이 나누어지는지를 중점으로 학습하는 것을 추천합니다.

인스턴스 유형 관련 레퍼런스

https://aws.amazon.com/ko/ec2/instance-types/

 

Amazon EC2 인스턴스 유형 – Amazon Web Services

 

aws.amazon.com

 

인스턴스의 라이프 사이클

EC2 인스턴스는 시작한 순간부터 종료될 때까지 다양한 상태로 전환됩니다.

https://docs.aws.amazon.com/ko_kr/ko_kr/AWSEC2/latest/UserGuide/ec2-instance-lifecycle.html

 

인스턴스 수명 주기 - Amazon Elastic Compute Cloud

인스턴스를 재부팅해도 running 상태로 남아있기 때문에 새 인스턴스 청구 기간이 시작되지 않습니다.

docs.aws.amazon.com


인스턴스 구입 옵션

On-Demand

온디맨드 인스턴스를 사용하면 장기 약정 없이 초 단위로 컴퓨팅 용량을 구입할 수 있습니다. 온디맨드 인스턴스를 구매할 때 장기 약정은 필요 없습니다. 온디맨드 인스턴스가 running 상태인 시간(초)에 대해서만 지불하면 됩니다. 실행 중인 온디맨드 인스턴스에 대한 초당 요금은 고정 요금입니다. 중단할 수 없는 불규칙한 단기 워크로드가 있는 애플리케이션의 경우 온디맨드 인스턴스를 사용하는 것이 좋습니다.

Reserved

예약 인스턴스는 온디맨드 인스턴스 요금과 비교하여 EC2 비용을 대폭(최대 75%) 절감하는 효과를 제공합니다. 예약 인스턴스는 사용량이 거의 확정된 프로덕션 워크로드용 인스턴스 실행에 적합합니다. 기업 애플리케이션에 대한 트래픽이 안정적이거나 성능에 대한 요구 수준이 예측 가능한 경우 예약 인스턴스를 사용하는 것이 좋습니다. 이때 예약 기간은 1년 또는 3년 약정이 적용되므로 계약 실행 전 워크로드를 파악하는 것이 좋습니다. 리전 또는 특정 AZ의 인스턴스를 예약할 수도 있습니다. 또 예약 인스턴스는 모두 선불, 일부 선불, 선결제 없음의 결제 옵션도 제공합니다.

Spot

스팟 인스턴스는 온디맨드 가격보다 저렴한 비용으로 제공되는 예비 EC2 용량을 사용하는 인스턴스입니다. 스팟 인스턴스는 큰 할인율로 미사용 EC2 인스턴스를 요청할 수 있게 해주므로 사용자는 Amazon EC2 비용을 대폭 낮출 수 있습니다. 스팟 인스턴스는의 시간당 가격을 스팟 가격이라고 합니다. 각 가용 영역 내 인스턴스 유형별 스팟 가격은 Amazon EC2에서 설정하며, 스팟 인스턴스의 장기적 공급 및 수요에 따라 점진적으로 조정됩니다. 스팟 인스턴스는 용량이 가용 상태이고 요청에 대한 시간당 최고가가 스팟 가격보다 더 높을 때마다 실행됩니다.

스팟 인스턴스는 애플리케이션이 실행되는 시간을 유연하게 조정할 수 있고 애플리케이션을 중단할 수 있는 경우에 선택하는 비용 효율적인 방법입니다. 예를 들어 스팟 인스턴스는 데이터 분석, 배치 작업, 백그라운드 프로세싱 및 선택적 작업에 적합합니다.

스팟 인스턴스 사용 전략

애플리케이션에 대해 보장된 컴퓨팅 리소스를 최소 수준으로 유지하기 위한 한 가지 전략은 온디맨드 인스턴스의 코어 그룹을 시작하고 기회가 생기면 스팟 인스턴스로 이를 보완하는 것입니다.

스팟 인스턴스에 대해서 궁금하다면

https://wooono.tistory.com/86

 

[AWS EC2] Spot Instance(스팟 인스턴스)란?

정의 스팟 인스턴스는 사전 약정 없이 사용할 수 있는 EC2 Instance 입니다. 원리 스팟 인스턴스는 사용자 제시 가격(입찰가격)을 정해놓고 저렴할 때 이용할 수 있습니다. 사용자가 제시한 가격보

wooono.tistory.com

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

인스턴스 루트 디바이스에는 인스턴스 부팅을 위한 이미지가 포함되어 있습니다. 이 루트 디바이스는 Elastic Block Store 혹은 인스턴스 스토어 볼륨 중 하나입니다.

처음 EC2 인스턴스가 론칭되면 모든 루트 디바이스는 S3로부터 론칭에 필요한 정보를 가져옵니다.

이와 같이 S3를 통해 백업되는 인스턴스 루트 디바이스를 인스턴스 스토어 기반 라고 부릅니다.

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

 

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

인스턴스는 하나 이상의 인스턴스 스토어 볼륨을 자동으로 사용할 수 있으며, 이러한 볼륨 중 하나가 루트 디바이스 볼륨 역할을 합니다.

인스턴스가 시작되면 인스턴스를 부팅하는 데 사용된 이미지가 루트 볼륨으로 복사됩니다. 인스턴스 유형에 따라 다른 인스턴스 스토어 볼륨을 사용할 수도 있습니다.

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

인스턴스 스토어가 지원하는 인스턴스는 종료되거나 장애가 발생할 경우 복원이 불가능합니다.

Amazon EC2 인스턴스 스토어가 지원하는 인스턴스를 사용하려는 경우 여러 가용 영역의 인스턴스 스토어로 데이터를 분산하는 것이 좋습니다. 또한 인스턴스 스토어 볼륨의 중요한 데이터를 정기적으로 영구 스토리지로 백업해야 합니다.

 

EBS 기반 인스턴스

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

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

인스턴스 유형에 따라 다른 EBS 볼륨이나 인스턴스 스토어 볼륨을 사용할 수도 있습니다.

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

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


보안

키 페어

EC2는 퍼블릭-프라이빗 키 방식을 사용하며, 이는 로그인 정보의 암호화-복호화 모델을 따른 것입니다.

암호화 기법 측면에서 퍼블릭 키는 데이터 암호화에, 프라이빗 키는 데이터 복호화에 사용됩니다.

사용자는 EC2 인스턴스 연결을 위해 프라이빗 키를 사용해야 합니다.

퍼블릭 키프라이빗 키 조합인 키 페어를 생성하는 방법에는 AWS 콘솔, CLI, API 호출 방식으로 생성할 수 있으며, AWS 고객은 자신의 키를 가져와서 시스템에 업로드 해놓고 사용할 수도 있습니다.

EC2는 SSH-2 RSA 키를 사용하며, 리전당 최대 5,000개의 키 페어를 사용할 수 있습니다.


보안 그룹(Security Group)

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

인스턴스를 론칭한 뒤 해당 인스턴스에 하나 혹은 다수의 보안 그룹을 연결할 수 있고, 이를 통해 해당 인스턴스로 유입되거나 해당 인스턴스에서 유출되는 트래픽에 대한 처리 규칙을 설정할 수 있습니다.

보안 그룹의 내용은 언제든 수정 할 수 있으며, 새로운 규칙이 추가되면 해당 보안 그룹에 포함된 모든 인스턴스에 자동으로 적용됩니다. 각 인스턴스에 특정 트래픽이 도달할지 여부는 해당 인스턴스에 연결된 모든 보안 그룹 규칙에 따라 정해집니다.


보안 그룹의 규칙이 지닌 특징은 다음과 같습니다.

기본적으로 보안 그룹은 모든 아웃바운드 트래픽을 허용합니다.

보안 그룹 규칙은 언제나 허용 여부만 정할 수 있고 거부 여부는 정할 수 없습니다.

보안 그룹은 스테이트풀(Stateful) 속성을 지닙니다.

인스턴스에서 요청을 보내면, 해당 요청에 대한 응답 트래픽은 보안 그룹의 인바운드 규칙과 무관하게 전달이 허용됩니다.

보안 그룹 규칙은 언제든 추가 또는 삭제 할 수 있습니다.

변경 사항은 짧은 시간 내에 해당 시큐리티 그룹에 연결된 모든 인스턴스에 적용됩니다.

하나의 인스턴스에 여러 개의 시큐리티 그룹을 연결할 경우 각 시큐리티 그룹의 규칙은 단일 규칙 세트로서 인스턴스에 적용되고 사용자는 이 규칙 세트를 통해 트래픽의 허용 여부를 결정할 수 있습니다.


네트워킹 - Instance IP 주소 지정

프라이빗 IPv4

프라이빗 IPv4 주소는 인터넷을 통해 연결할 수 없는 IP 주소입니다.

프라이빗 IPv4 주소는 동일 VPC에서 인스턴스 간의 통신을 위해 사용합니다.

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


퍼블릭 IPv4

퍼블릭 IP 주소는 인터넷을 통해 연결할 수 있는 IPv4 주소입니다.

퍼블릭 주소는 인스턴스와 인터넷의 상호 통신을 위해 사용될 수 있습니다.

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

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

따라서 필요에 따라 인스턴스 간에 연결할 수 있는 영구 퍼블릭 IP 주소가 필요한 경우 탄력적 IP(Elastic IP) 주소를 대신하여 사용니다.


Elastic IP

탄력적 IP 주소는 동적 클라우드 컴퓨팅을 위해 고안된 정적 IPv4 주소입니다.

탄력적 IP 주소는 AWS 계정에 할당되며 해제할 때까지 할당된 상태로 유지됩니다.

탄력적 IP 주소를 사용하면 주소를 계정의 다른 인스턴스에 신속하게 다시 매핑하여 인스턴스나 소프트웨어의 오류를 마스킹할 수 있습니다.

또는 도메인이 인스턴스를 가리키도록 도메인에 대한 DNS 레코드에 탄력적 IP 주소를 지정할 수 있습니다.

주의해야 할 점은 연결 해제한 탄력적 IP 주소는 명시적으로 릴리스할 때까지 계정에 할당되어 있습니다.

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

JUNE .

20'S LIFE IN SYDNEY and BUSAN

    이미지 맵

    DevOps Bootcamp/Daily Review 다른 글

    이전 글

    다음 글