본문 바로가기

Cloud/AWS

[AWS] EC2에 대하여...


안녕하세요!

 

두루뭉실 블로그의 주인장 두루뭉실 엔지니어입니다!

 

오늘은 Amazon Web Service의 EC2 서비스에 대해 알아보겠습니다!

 

EC2 서비스에 대한 공식 문서 링크를 남기겠습니다!

 

 

What is Amazon EC2? - Amazon Elastic Compute Cloud

What is Amazon EC2? Amazon Elastic Compute Cloud (Amazon EC2) provides scalable computing capacity in the Amazon Web Services (AWS) Cloud. Using Amazon EC2 eliminates your need to invest in hardware up front, so you can develop and deploy applications fast

docs.aws.amazon.com


1. AWS EC2란 무엇인가?

 

S3보단 로고가 덜 귀엽네,,

 

AWS EC2는 AWS Computer Cloud를 줄여서 부르는 말입니다!

 

C가 2번 반복되어 EC2라고 불리게 되었습니다.

 

Computer Cloud면,,,

가상 환경의 컴퓨터를 임대받는 서비스임을 짐작할 수 있을 겁니다!

 

그렇다면,, AWS의 공홈에 어떻게 안내되어있는지 볼까요?

 

 

EC2는 AWS 클라우드에서 확장 가능한 컴퓨터를 제공합니다.
EC2를 사용하면 HW에 투자할 이유 없이 빠르게 애플리케이션의 배포가 가능합니다.

EC2를 사용하여 필요한 만큼 가상 서버를 구축하고, 보안 및 네트워크를 구성하고 DB를 관리할 수 있습니다.

 

즉, AWS EC2는 클라우드에서 필요한 만큼 보안 및 네트워크를 구성하고 DB를 정할 수 있는 온디맨드 방식의 컴퓨터(서버)입니다.


2. EC2의 특징

 

과거에 현업에서 전산팀과 개발팀의 보이지 않는 싸움에서

늘 전산팀이 이겨왔습니다.

 

왜 그럴까요??

 

개발을 하기 위해 스토리지, 서버 등 인프라가 필요합니다.

 

그래서, 개발자들이 필요한 리소스 자원이 있을 때

그들은 수많은 보고 체계를 거쳐 인프라를 구비해야 하고

수많은 결제의 과정을 거쳐야 합니다.

 

그랬던 과거의 환경이 요즘은 180도 바뀌어버렸죠.

 

그 이유가 바로,,, 클라우드입니다.

 

물론, 클라우드 환경에서도 인프라를 추가하기 위해

보고 및 결제 절차는 따라야겠지만,

 

개발자가 충분히 인프라를 원하는 만큼 추가할 수 있는

환경적인 요소가 충족되었기 때문입니다.


이와 같은 맥락으로, EC2 역시 4가지의 특성을 갖습니다!

 

1) 유연한 가상 컴퓨팅

 

EC2를 사용하면, 몇 분 이내에 용량을 늘리거나 줄일 수 있습니다.

 

즉, 원하는 만큼 서버 인스턴스를 지정할 수 있는 것입니다.

 

또한, EC2 Auto Scaling을 통해 가용성을 유지하고,

필요에 따라 집합을 자동으로 확장 및 축소하여

성능의 극대화 및 비용 최소화를 이끌어낼 수 있습니다!

 

 

2) 클라우드 호스팅 서비스

 

사용자가 원하는 인스턴스 유형, 운영체제 및 SW 패키지를 선택할 수 있습니다.

 

즉, 운영체제, 메모리, CPU, 인스턴스 스토리지, 부팅 파티션 크기를 선택할 수 있습니다.

 

3) 통합성

 

EC2는 S3(스토리지), RDS(데이터베이스), VPC 등

AWS의 대부분 서비스와 통합되어있습니다.

 

컴퓨팅, 쿼리 처리 및 광범위한 애플리케이션 간

클라우드 스토리지에 대해 완전/안전한 솔루션을 제공합니다.

 

4) 우수한 보안

 

EC2는 VPC와 함께 작동하여 사용자의 컴퓨팅 리소스에

보안성 및 강력한 네트워킹 기능을 제공합니다.

 

AWS 고객은 보안에 가장 민감한 조직의 요구사항에 부합하도록 구축된

DC(데이터 센터) 및 네트워크 아키텍처의 혜택을 누릴 수 있습니다.


cf) AWS EC2 Auto Scaling은 무엇인가?

 

 

크게 3가지 목적을 가집니다.

 

  1. 비용 관리 향상 - 필요에 따라 용량을 동적으로 늘리거나 줄인다. 이를 통해 사용한 EC2 인스턴스에 대해서만 비용을 지불하므로 인스턴스가 시작되고 불필요해진다면 terminate(종료)시켜 비용을 절감한다.
  2. 내결함성 향상 - 인스턴스가 비정상 상태일 때, 이를 감지하여 종료한 다음 대체 인스턴스를 시작할 수 있다. 여러 개의 Availability Zone을 사용하기 위해 EC2 Auto Scaling을 구성할 수 있다.
  3. 가용성 향상 - 애플리케이션이 항상 현재 트래픽 요구를 처리할 수 있는 올바른 용량을 갖추도록 도와준다.

cf) VPC는 무엇인가?

 

VPC는 AWS EC2의 네트워킹 계층입니다.

 

Virtual Private Cloud의 약자로 AWS 클라우드 내 논리적으로 독립된 세션을 제공하여,

사용자가 정의한 가상 네트워크상에서 다양한 AWS 리소스를 실행할 수 있게 지원하는 독립된 가상의 클라우드 네트워크라 볼 수 있습니다.

사용자는 VPC 내에 IP 대역, 인터페이스, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안 그룹, 네트워크 ACL 등을 생성하고 제어할 수 있습니다.

 

 

What is Amazon VPC? - Amazon Virtual Private Cloud

What is Amazon VPC? Amazon Virtual Private Cloud (Amazon VPC) enables you to launch AWS resources into a virtual network that you've defined. This virtual network closely resembles a traditional network that you'd operate in your own data center, with the

docs.aws.amazon.com

 

더 구체적인 VPC에 대한 내용은

게시물을 하나 편성하여 말씀드리겠습니다!!


3. EC2의 주요 구성

 

1) 인스턴스(Instance)

 

클라우드 상의 컴퓨터라고 생각하면 편합니다.

 

AWS의 공식 홈페이지에 의하면

 

인스턴스는 클라우드의 가상 서버입니다.
시작 시 구성은 인스턴스를 시작할 때 지정한 AMI의 사본입니다.

응?????? 그럼 대체 AMI는 뭔데!!!!!

라고 하실 것 같아서 바로 준비했습니다!

 

 

2) AMI(Amazon Machine Imaage)

 

AWS의 공식 홈페이지에는

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

 

라고 설명되어있습니다.

그러면 또 우리는 "응????????? 뭔 소리야??????"

라는 반응을 보이실 겁니다.

 

쉽게 말해서, AMI는

EC2 인스턴스를 그대로 이미지 형태로 저장해서 재사용할 수 있도록 만든 것입니다.

 

 

3) EBS(Elastic Block Store)

 

EBS는 Elastic Block Store의 약자로 

일반 PC에서 하드디스크라고 생각하면 됩니다.

 

EC2 인스턴스에 사용할 블록 스토리지 볼륨을 제공하며

EBS 볼륨은 Availability Zone 내에 자동으로 복제되어

구성 요소 장애로부터 보호해주어 고가용성 및 내구성을 제공합니다.

 

EBS 볼륨은 워크로드 실행에 필요한

지연시간이 짧고 일관된 성능을 제공하고

짧은 시간 내 사용량을 Scalable 하게 확장할 수 있으며,

 

프로비저닝한 부분에 대해서 저렴한 비용을 지불하는 특징이 있습니다.


4. EC2의 인스턴스 타입

 

가상 서버 유형에 따라 다양한 인스턴스 타입이 있습니다.

 

예컨대,,,

T2.Micro, m4.Large, h2.Large

와 같은 인스턴스 타입이 있죠!

 

 

즉, 다음과 같은 형태를 띱니다.

1) 인스턴스 유형 
  • 범용(M) : 컴퓨팅 메모리 및 네트워크의 리소스를 균형 있게 적용하여 중소형 DB 혹은 기타 일반적인 애플리케이션에 적합
  • 마이크로(T) : 인스턴스 크기별 기본 수준의 CPU 성능을 제공하며 범용(M)에 비해 성능은 떨어지지만 가격이 저렴, 소규모 웹이나 마이크로 서비스 / 개발환경에 적합
  • 컴퓨팅 최적화(c) : 가장 높은 수준의 컴퓨팅 파워를 제공하며 고성능의 프론트엔드나 웹서버 혹은 게임 등의 처리에 적합
  • 스토리지 최적화(I) : I 유형은 SSD 기반의 초고속 랜덤 I/O 성능을 제공하며, NoSQL, Database에 적합
  • 스토리지 최적화(D) : H 유형은 HDD 기반의 높은 디스크 처리량을 제공
  • 메모리 최적화(X) : 인메모리 기반의 DB나 메모리 기반의 빅데이터 처리에 최적화
  • 메모리 최적화(R) : 메모리를 집중적으로 사용하는 인스턴스에 적합
  • 가속화된 컴퓨팅(G, P, F) : GPU 및 FPGA를 이용한 높은 컴퓨팅 애플리케이션을 제공하며 3D 작업이나 머신러닝 채굴 등 적합

cf) 일반적인 용도를 위한 인스턴스는 T2, 많은 양의 컴퓨팅 파워가 필요한 작업이나 일반적인 서비스 운영은 M5가 적합

 

2) 인스턴스 크기

nano < micro < small < medium < large < xlarge < 2xlarge nano

 

xlarge부터는 앞자리 숫자가 높을수록 더 좋은 성능


어ㅓㅓㅓㅓ엄청 유명한

 

AWS EC2 서비스

 

이번 게시물을 통해 알아보았습니다!

 

 

요약하자면, 

 

1. EC2는 클라우드 상의 서버(컴퓨터)를 빌려 사용하는 것이다.

 

2. Auto Scaling을 통해 Scalabe 하게 관리하여 비용관리를 할 수 있다.

 

3. 인스턴스는 컴퓨터를 의미하고, AMI는 인스턴스를 이미지로 저장한 것이다.

 

4. 인스턴스의 유형에는 여러 가지가 있고, 목적에 맞게 사용하자.

 

이상 두루뭉실 블로그의 주인장 두루뭉실 엔지니어였습니다!

 

감사합니다!