Home > AWS > ☁️[AWS] EC2란 무엇일까요?

☁️[AWS] EC2란 무엇일까요?
AWS Network

☁️[AWS] EC2란 무엇일까요?

  • EC2Amazon Elastic Compute Cloud의 약자로, AWS(Amazon Web Services)에서 제공하는 가상 서버(Virtual Server) 서비스입니다.
  • EC2는 사용자가 원하는 만큼 컴퓨팅 자원을 프로비저닝(provisioning)하고, 필요할 때 즉시 확장하거나 축소할 수 있는 유연한 환경을 제공합니다.

1️⃣ EC2의 주요 특징.

1️⃣ 가상 서버 제공.

  • EC2는 클라우드에서 가상 서버(인스턴스)를 실행할 수 있도록 해줍니다.
    • 사용자는 물리적인 서버를 구입하거나 유지보수할 필요 없이, 필요한 사양과 운영 체제를 선택하여 즉시 서버를 실행할 수 있습니다.

2️⃣ 확장성.

  • 스케일 업(Scale Up) : CPU, 메모리, 스토리지 용량 등을 증가.
  • 스케일 아웃(Scale Out) : 더 많은 서버 인스턴스를 추가.

3️⃣ 종량제 요금제.

  • 사용한 만큼만 비용을 지불하는 방식으로 운영됩니다.(Pay-as-you-go)

4️⃣ 다양한 인스턴스 유형.

  • 컴퓨팅 최적화(Compute Optimized) : 고성능 CPU가 필요한 작업.
  • 메모리 최적화(Memory Optimized) : 데이터베이스, 빅데이터 작업에 적합.
  • 스토리지 최적화(Storage Optimized) : 대량의 읽기/쓰기 작업에 적합.
  • 범용(General Purpose) : 다양한 작업에 적합.

5️⃣ 유연한 OS 선택.

  • 다양한 운영 체제 지원 : Amazon Linux, Ubuntu, CentOS, Red Hat, Windows 등.

6️⃣ 가용성 영역 및 리젼.

  • 리젼(Region) : 물리적으로 떨어진 지리적 위치.
  • 가용성 영역(AZ, Availability Zone) : 동일 리젼에 위치한 독립적인 데이터 센터.

2️⃣ EC2의 주요 개념.

1️⃣ EC2 인스턴스.

  • 가상 서버로, EC2에서 실행되는 단위입니다.
  • 원하는 사양(CPU, RAM, 스토리지)을 선택하여 생성할 수 있습니다.

2️⃣ AMI(Amazon Machine Image)

  • EC2 인스턴스에서 사용할 운영 체제 및 소프트웨어의 템플릿입니다.
  • 사용자 지정 AMI를 생성하여 배포 가능.

3️⃣ EBS(Elastic Block Store)

  • EC2 인스턴스에서 사용하는 스토리지입니다.
  • 데이터를 영구적으로 저장하며, 인스턴스를 중지하거나 종료해도 데이터가 유지됩니다.

4️⃣ Elastic IP

  • 고정된 공인 IP 주소로, 인스턴스를 재시작해도 IP 주소가 변경되지 않도록 설정.

5️⃣ Security Group

  • EC2 인스턴스의 방화벽 역할을 하는 보안 그룹.
  • 특정 포트(예: 22번 포트의 SSH 접속 허용)를 열거나 닫아 네트워크 트래픽을 제어합니다.

6️⃣ Auto Scaling

  • 트래픽 증가나 감소에 따라 EC2 인스턴스의 수를 자동으로 조정하는 기능.

7️⃣ Load Balancer

  • 여러 EC2 인스턴스에 걸쳐 트래픽을 분산시켜 성능과 가용성을 높이는 역할.

3️⃣ EC2의 주요 사용 사례.

1️⃣ 웹 애플리케이션 호스팅.

  • EC2는 웹 서버(Apache, Nginx 등)나 애플리케이션 서버(Spring Boot, Node.js 등)를 호스팅하는 데 자주 사용됩니다.

2️⃣ 데이터베이스 서버.

  • MySQL, PostgreSQL 같은 RDBMS나 MongoDB, Cassandra 같은 NoSQL 데이터베이스 서버를 실행.

3️⃣ 빅데이터 처리.

  • Apache Hadoop이나 Spark 클러스터를 실행하여 빅데이터 분석.

4️⃣ 배치 처리.

  • 배치 작업(예: 백업, 데이터 변환, 분석 작업)을 처리.

5️⃣ 개발 및 테스트 환경.

  • 소규모 테스트 및 QA 환경을 빠르게 설정하고 제거할 수 있습니다.

6️⃣ 게임 서버.

  • 대규모 멀티플레이어 게임 서버를 호스팅.

4️⃣ EC2의 장점과 단점.

1️⃣ 장점.

  • 1. 유연성 : 다양한 인스턴스 유형 및 리소스를 제공.
  • 2. 비용 효율성 : 필요할 때만 서버를 실행하고 사용한 만큼만 지불.
  • 3. 확장성 : 트래픽 증가에 따라 인스턴스를 추가하거나 제거 가능.
  • 4. 관리 용이성 : 물리적 서버 관리 부담이 없음.
  • 5. 글로벌 가용성 : 여러 리전에서 서비스 제공.

2️⃣ 단점.

  • 1. 초기 설정 복잡성 : 네트워크 설정(Security Group, VPC 등)이 초보자에게는 다소 복잡.
  • 2. 예상치 못한 비용 : 인스턴스를 계속 실행하면 비용이 빠르게 증가할 수 있음.
  • 3. 성능 한계 : 특정 워크로드에서는 물리적 서버가 더 나은 성능을 제공할 수 있음.

5️⃣ EC2 사용 방법.

1️⃣ 인스턴스 생성.

  • AWS Management Console, CLI, SDK를 사용하여 EC2 인스턴스를 생성.
  • 인스턴스 유형, 운영 체제, 스토리지를 선택.

2️⃣ 접속.

  • SSH 또는 RDP(Remote Desktop Protocol)를 통해 인스턴스에 접속.

3️⃣ 애플리케이션 배포.

  • 애플리케이션 코드나 데이터를 인스턴스에 업로드하고 실행.

4️⃣ 관리.

  • Auto Scaling, CloudWatch 등을 사용해 성능 모니터링 및 관리.

6️⃣ EC2와 다른 AWS 컴퓨팅 서비스 비교.

서비스 설명 사용 사례
EC2 가상 서버 제공 모든 유형의 애플리케이션 서버
Elastic Beanstalk EC2, RDS 등을 자동으로 프로비저닝 및 관리 간단한 웹 애플리케이션 배포
Lambda 서버리스 컴퓨팅, 코드 실행만 지원 이벤트 기반 작업 (예: 이미지 처리)
ECS/EKS 컨테이너 오케스트레이션 지원 Docker 기반의 컨테이너 애플리케이션 배포

7️⃣ 결론.

  • EC2는 AWS의 핵심 서비스 중 하나로, 클라우드 가상 서버를 빠르고 유연하게 실행할 수 있게 해줍니다.
    • 다양한 애플리케이션 배포 및 관리에 적합하며, 클라우드 컴퓨팅 환경에서 필수적으로 사용되는 서비스 입니다.