AWS
Network
☁️[AWS] EC2란 무엇일까요?
-
EC2는 Amazon 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의 핵심 서비스 중 하나로, 클라우드 가상 서버를 빠르고 유연하게 실행할 수 있게 해줍니다.
- 다양한 애플리케이션 배포 및 관리에 적합하며, 클라우드 컴퓨팅 환경에서 필수적으로 사용되는 서비스 입니다.