EC2
Amazon Elastic Compute Cloud 의 약자입니다.
사전적으로는 아마존 신축적인 산출 클라우드..... 이게 뭘까요?
AWS(Amazon Web Services)에서는 기본적으로 EC2 라는 서비스를 통해서 확장 가능한 compute를 사용자에게 제공해 줍니다.
AWS의 가장 대표적인 IaaS(Infrastructure as a Service)인 EC2를 통해서 사용자는 본인에게 필요한 사양을 쉽게 고르고 가상 서버를 지칭하는EC2 인스턴스를 생성해서 원하는 시간만큼 사용할 수 있습니다. 간단히 말해 AWS에게 컴퓨터를 대여하는 것입니다.
Amazon EC2는 운영 서버에 필요한 대부분의 OS(Ubuntu, CentOS, Window 등)를 지원하고, 사용 목적에 맞는 수십 가지 사양들(CPU, Memory, Storage)을 제공합니다.
EC2는 사용량별 과금 모델을 따르기 때문에, 인스턴스 타입에 따라 시간 단위 또는 초 단위로 실제 사용한 만큼만 지불하면 됩니다. 따라서 새로운 서버를 구축하기 위해서 초기에 직접 서버를 구매하고 관리를 위한 공간과 인터넷망을 구축하고 전기요금, 네트워크 비용등 관리비를 지급하던 기존의 방식에 비하면 클릭 몇번을 통해 정말 간편하고 저렴하게 서버를 이용할 수 있습니다.
또한 EC2 서비스는 확장성을 고려해서 만들어졌습니다. 특정 서버(EC2 인스턴스)에 트래픽이 집중되면 거의 즉각적으로 새로운 서버를 추가할 수 있고, 트래픽이 감소하면 추가했던 서버를 즉시 제거할 수 있습니다.
예를 들어, 회사의 한 주 워크로드를 처리하는데 12개의 CPU를 탑재한 서버가 필요한 상황일 때, 주말에 트래픽이 두 배로 늘어날 것으로 예상될 경우 주말 동안 12개의 CPU를 탑재한 서버를 하나 더 추가해서 사용하고, 월요일에 출근해서 새롭게 추가했던 서버를 삭제할 수 있습니다. 회사에서 이 과정에서 지불하게 되는 비용은 토요일과 일요일 사이 새롭게 추가된 서버에 대한 비용일 뿐입니다.
이렇게 Amazon EC2 서비스를 이용하면 하드웨어에 투자하지 않고도 On-demand로 원하는 사양의 가상화된 서버를 신속하게 만들고 사용할 수 있습니다.
음... 여기까지의 내용을 읽어봤을 때는 아마존에게 서버를 만들어달라고 요청하는 정도가 되겠네요.
EC2의 장점
앞에서 EC2를 사용하면 On-demand로 원하는 시간에 원하는 사양의 가상 서버를 신속하게 만들어서 매우 유연하게 사용할 수 있다고 했습니다. EC2를 사용하면 단순히 가상 컴퓨터를 대여받아 빠른 제품 출시와 비용 절감을 할 수 있다는 것외에도 다양한 장점들이 있습니다.
확장성과 탄력성
자동으로 EC2 인스턴스 수를 조절할 수 있는 Auto Scaling 기술과 접목하여, 필요에 따라 자동으로 서버를 스케일 업(Scale-up) 또는 스케일 다운(Scale-down)할 수 있습니다.
이를 통해 성능은 최대화하고 비용은 최소화할 수 있습니다.
EC2로 서버를 운영하면 이제는 필요한 만큼의 자원만 프로비전하고, 추가 수요가 발생하거나 트래픽이 급증하면 그에 따라 신속하게 서버를 추가하면 됩니다.
보안성
가상 방화벽의 기능을 수행하는 Security Group(SG)을 이용하여 연결된 리소스에 도달하거나 이를 떠날 수 있는 트래픽을 제어하며 사용자 수준에서 네트워크 보안 수준을 높일 수 있습니다.
다양한 AWS 서비스와의 통합
Amazon EC2 인스턴스는 AWS 내의 VPC, RDS, ELB 등 다양한 서비스들과 호환성이 뛰어나 연동이 잘되기에 이들을 통합해서 각 기업의 니즈에 맞는 운영 서버를 구축하고, 광범위한 애플리케이션 간 클라우드 스토리지에 대해 완전하고 안전한 솔루션을 제공할 수 있습니다.
이렇듯 다양한 장점이 있는 EC2를 이해하는 것은 클라우드 컴퓨팅 서비스를 이해하는 것과 일맥상통합니다. 여기서 말하는 클라우드는 다양한 컴퓨팅 자원을 원하면 언제든지 대여할 수 있음을 의미하기 때문에 가상의 컴퓨터를 대여해줄 뿐만 아니라 여러 편리함과 기능을 제공하는 EC2가 바로 AWS에서 제공하는 클라우드 컴퓨팅 서비스의 기본이라고 할 수 있습니다.
EC2 인스턴스의 유형
AWS EC2는 사용자의 요구에 맞게 서버를 만들 수 있도록 아주 다양한 선택지를 제공해 주어 이 덕분에 비용에 대한 최적화도 쉽게 할 수 있습니다. EC2 인스턴스를 생성할 때는 OS와 Security Group외에도 다양한 인스턴스 유형을 지정할 수 있습니다.
EC2 인스턴스는 특정 유형의 작업에 최적화된 패밀리로 그룹화 되어있습니다.
- 범용 인스턴스는 균형있는 컴퓨팅, 메모리 및 네트워킹 리소스를 제공하며, 다양한 워크 로드에 사용할 수 있습니다. 웹 서버 및 코드 레포지토리 같이 균등한 비율로 리소스를 사용하는 애플리케이션에 적합합니다.
- 컴퓨팅 최적화 인스턴스는 고성능 프로세서를 활용하는 컴퓨팅 집약적인 애플리케이션에 적합합니다.
- 메모리 최적화 인스턴스는 메모리에서 대규모 데이터를 처리하는 워크로드를 위한 빠른 성능을 제공하기 위해 설계된 인스턴스입니다.
- 스토리지 최적화 인스턴스는 로컬 스토리지의 대규모 데이터에 대하여 많은 읽기 및 쓰기를 요구하는 워크로드를 위해 설계된 인스턴스 입니다.
- 가속화된 컴퓨팅 인스턴스는 GPU를 기반으로 하여 그래픽 처리, 데이터 패턴 일치 등의 기능을 CPU에서 실행되는 소프트웨어보다 훨씬 더 효율적으로 수행하는 인스턴스입니다.
이처럼 특정 유형의 작업에 따라 패밀리로 그룹화 된 인스턴스 타입은 CPU, 메모리, 스토리지 및 네트워킹 용량의 다양한 조합으로 구성되며, 애플리케이션에 따라 적합한 리소스 조합을 선택할 수 있는 유연성을 제공합니다.
공부를 하고 생각한 내용은 다양한 장점이 많은 AWS EC2 를 사용하여 서버를 열면 좋겠다 입니다.
이 내용 관련 자격증도 있다고 하는데... 가능하면 도전을 해봐야겠습니다.
'코딩 개발' 카테고리의 다른 글
SSH를 이용한 EC2 Instance 접속 (1) | 2022.11.24 |
---|---|
[AWS] Security Groups & Ports (0) | 2022.11.24 |
Mysql transaction (0) | 2022.11.22 |
TypeORM 개념... 다시 잡기 (0) | 2022.11.21 |
Path parameter & Query parameter (0) | 2022.11.17 |