🤔 AWS란?
AWS(Amazon Web Services)는 아마존이 제공하는 클라우드 컴퓨팅 플랫폼으로, 다양한 IT 리소스를 인터넷을 통해 제공하는 서비스입니다. 전 세계적으로 사용되며, 비용 효율적이고 확장성이 뛰어나기 때문에 많은 기업과 개발자가 사용하고 있습니다.
⭐ AWS의 특징
특징 | 설명 |
사용한 만큼 지불 | 온디맨드 방식으로 필요한 만큼만 사용하고 사용한 만큼만 비용을 지불 |
확장성과 유연성 | 트래픽 증가에 따라 자동으로 리소스를 확장하거나 축소할 수 있음 |
보안성 | 강력한 보안 인프라와 다양한 보안 서비스 제공 |
다양한 글로벌 리전 제공 | 전 세계 여러 리전에 데이터 센터를 배치하여 빠른 응답 속도를 보장 |
관리형 서비스 | 서버 관리 부담을 줄이고 애플리케이션 개발에 집중할 수 있도록 다양한 관리형 서비스 제공 |
🔥 AWS의 핵심 서비스
1️⃣ 컴퓨팅 서비스
서비스 | 설명 |
EC2 (Elastic Compute Cloud) | 가상 서버를 제공하는 서비스로, 사용자가 원하는 환경을 설정하여 인스턴스를 생성할 수 있음 |
Lambda | 서버 없이 코드 실행이 가능한 서비스로, 특정 이벤트가 발생할 때 코드가 자동으로 실행 |
ECS (Elastic Container Service) | 컨테이너 기반 애플리케이션을 관리할 수 있는 서비스입니다. |
EKS (Elastic Kubernetes Service) | Kubernetes 기반 컨테이너 오케스트레이션 서비스 |
2️⃣ 스토리지 서비스
서비스 | 설명 |
S3 (Simple Storage Service) | 객체 스토리지 서비스로, 데이터를 안정적으로 저장하고 쉽게 접근할 수 있음 |
EBS (Elastic Block Store) | EC2 인스턴스를 위한 블록 스토리지로, 디스크처럼 사용 |
Glacier | 장기 보관용 저비용 스토리지 서비스 |
3️⃣ 데이터베이스 서비스
서비스 | 설명 |
RDS (Relational Database Service) | MySQL, PostgreSQL, MariaDB 등의 관계형 데이터베이스를 관리해주는 서비스 |
DynamoDB | NoSQL 기반의 고성능 데이터베이스 |
ElastiCache | Redis 또는 Memcached 기반의 캐싱 서비스 |
4️⃣ 네트워킹 서비스
서비스 | 설명 |
VPC (Virtual Private Cloud) | 가상 네트워크를 구성할 수 있도록 지원하는 서비스 |
Route 53 | DNS 관리 서비스 |
ELB (Elastic Load Balancer) | 트래픽을 여러 서버로 분산하는 로드 밸런싱 서비스 |
CloudFront | CDN(Content Delivery Network) 서비스 |
5️⃣ 보안 및 접근 관리 서비스
서비스 | 설명 |
IAM (Identity and Access Management) | AWS 사용자 및 권한을 관리하는 서비스 |
AWS Shield | DDoS 공격 방어 서비스 |
AWS WAF (Web Application Firewall) | 웹 애플리케이션 방화벽 서비스 |
🔬 EC2 (Elastic Compute Cloud) 자세히 알아보기
EC2는 AWS의 가장 기본적인 컴퓨팅 서비스로, 클라우드에서 가상 서버를 생성하여 애플리케이션을 실행할 수 있도록 합니다. 사용자는 필요에 따라 다양한 인스턴스를 생성할 수 있으며, 운영 체제(OS), 네트워크 설정, 보안 정책 등을 자유롭게 설정할 수 있습니다.
EC2 인스턴스를 생성할 때는 먼저 AMI(Amazon Machine Image)를 선택해야 합니다. AMI는 OS 및 필요한 소프트웨어가 포함된 이미지로, 사용자는 Ubuntu, Amazon Linux, Windows 등 다양한 옵션을 선택할 수 있습니다.
EC2 인스턴스는 목적에 따라 여러 패밀리로 나뉘며, 주요 패밀리는 다음과 같습니다.
인스턴스 패밀리 | 설명 |
General Purpose | 균형 잡힌 성능을 제공하며, 다양한 용도로 사용 가능 (예: T3, M5) |
Compute Optimized | 고성능 CPU가 필요한 워크로드에 최적화됨 (예: C5, C6g) |
Memory Optimized | 대량의 메모리가 필요한 애플리케이션에 적합 (예: R5, X1) |
Storage Optimized | 높은 디스크 IO 성능이 필요한 경우 적합 (예: I3, D2) |
Accelerated Computing | GPU 또는 FPGA를 활용한 고성능 컴퓨팅 (예: P3, G4, Inf1) |
각 인스턴스 패밀리는 세부 유형에 따라 성능과 비용이 다르며, 사용 목적에 맞게 적절한 인스턴스를 선택해야 합니다.
EC2 인스턴스는 SSH 키 페어를 사용하여 원격으로 접근할 수 있으며, EBS(Elastic Block Store)를 통해 저장 공간을 추가할 수도 있습니다. 또한, 보안 그룹(Security Group)을 설정하여 특정 IP 및 포트에 대한 접근을 제어할 수 있습니다. 보안 그룹은 AWS의 방화벽 역할을 하며, 인스턴스로 들어오는 트래픽을 제한하는 중요한 기능을 수행합니다.
💰 Amazon EC2 요금제 옵션
AWS는 다양한 사용자의 요구를 충족하기 위해 여러 가지 EC2 요금제를 제공합니다. 각 요금제는 비용 절감과 유연성을 고려하여 설계되었으며, 사용 목적에 따라 적절한 옵션을 선택하는 것이 중요합니다.
1️⃣ 스팟 인스턴스 (Spot Instances) 🪙
- AWS의 유휴 컴퓨팅 자원을 경매 방식으로 제공하는 모델
- 최대 90% 저렴한 비용으로 사용할 수 있음
- 일시적인 작업, 비중단 작업, 대규모 데이터 처리에 적합
- AWS가 필요할 경우 인스턴스를 종료할 수 있으므로 중단 가능성이 있는 워크로드에만 추천
✅ 추천 사용 사례: 배치 작업, 대규모 데이터 분석, 머신러닝 트레이닝
2️⃣ 세이빙 플랜 (Savings Plans) 🪙🪙
- 일정 사용량을 1년 또는 3년 약정하여 할인을 제공하는 모델
- 리저브드 인스턴스(RI)와 달리 특정 인스턴스 유형에 고정되지 않고 유연하게 적용
- 일정한 사용량이 예상되지만, 인스턴스 유형을 바꿀 가능성이 있는 경우 추천
✅ 추천 사용 사례: 일정한 컴퓨팅 자원이 필요한 애플리케이션, 다양한 인스턴스 유형을 운영하는 환경
3️⃣ 리저브드 인스턴스 (Reserved Instances, RI) 🪙🪙
- 1년 또는 3년 약정으로 EC2 인스턴스를 할인된 가격에 사용할 수 있음
- 최대 75% 비용 절감 가능
- 특정 리전과 인스턴스 유형이 고정되므로, 장기적인 워크로드에 적합
✅ 추천 사용 사례: 장기적으로 운영되는 애플리케이션, 예측 가능한 트래픽을 가진 서비스
4️⃣ 온디맨드 인스턴스 (On-Demand) 🪙🪙🪙🪙
- 필요할 때만 사용하고 사용한 만큼 비용을 지불하는 방식
- 초기 비용이 없으며, 단기적인 사용에 최적화
- 예측 불가능한 트래픽을 처리할 때 적합하지만, 장기적으로 보면 비용이 비쌈
✅ 추천 사용 사례: 개발 및 테스트 환경, 갑작스러운 트래픽 증가 처리
5️⃣ 데디케이티드 호스트 (Dedicated Host) 🪙🪙🪙🪙🪙
- 물리적인 서버를 단독으로 사용하는 방식
- 다른 고객과 하드웨어를 공유하지 않으므로 보안성과 라이선스 관리가 필요할 때 유용
- 비용이 가장 비싸지만, 기업의 규제 준수 및 라이선스 최적화에 필수적
✅ 추천 사용 사례: 금융 및 의료 분야의 민감한 데이터 처리, 소프트웨어 라이선스 요구사항이 있는 환경
📌 EC2 요금제 선택 가이드
요금제 | 비용 | 추천 사용 사례 |
스팟 인스턴스 | 💲 | 배치 작업, 데이터 분석, 머신러닝 |
세이빙 플랜 | 💲💲 | 일정한 사용량이 예상되지만 유연성이 필요한 경우 |
리저브드 인스턴스 | 💲💲 | 장기적인 워크로드, 일정한 트래픽 처리 |
온디맨드 | 💲💲💲💲 | 짧고 유연한 사용, 예측 불가능한 트래픽 처리 |
데디케이티드 호스트 | 💲💲💲💲💲 | 보안 및 규제 준수가 필요한 환경 |
🏆 어떤 요금제를 선택해야 할까?
- 비용을 가장 절약하고 싶다면? → 스팟 인스턴스
- 일정한 사용량이 예상되지만 유연성이 필요하다면? → 세이빙 플랜
- 고정된 장기 사용을 고려한다면? → 리저브드 인스턴스
- 즉각적인 서버 운영이 필요하다면? → 온디맨드 인스턴스
- 보안 및 규제 준수가 중요한 경우? → 데디케이티드 호스트
🤔 Elastic IP란?
Elastic IP는 AWS에서 제공하는 고정된 퍼블릭 IP 주소로, 특정 EC2 인스턴스에 연결할 수 있습니다. 일반적인 퍼블릭 IP는 인스턴스가 종료되거나 다시 시작될 때 변경될 수 있지만, Elastic IP는 한 번 할당되면 계속 유지되므로 다음과 같은 경우에 유용합니다.
✅ Elastic IP의 주요 특징
- 특정 EC2 인스턴스에 할당 가능하며, 다른 인스턴스로 변경 가능
- EC2 인스턴스가 재시작되더라도 IP 주소가 유지됨
- 한 AWS 계정당 기본적으로 5개의 Elastic IP 할당 가능 (추가 필요 시 요청 가능)
- 사용하지 않는 Elastic IP는 비용이 부과됨
🔹 Elastic IP 사용 사례
- 고정된 공인 IP 주소가 필요한 경우: 예를 들어, 외부에서 특정 IP로 접근해야 하는 경우
- 이중화 및 장애 조치 (Failover) 구성: 인스턴스 장애 시 빠르게 다른 인스턴스로 IP를 이동하여 서비스 지속 가능
- 로드 밸런서를 사용하지 않는 환경에서 서버 접근 유지
🔒 보안 그룹 (Security Group) 이란?
AWS 보안 그룹(Security Group)은 하나 이상의 EC2 인스턴스에 대한 트래픽을 제어하는 가상의 방화벽 역할을 합니다. 네트워크에서 들어오고 나가는 트래픽을 관리하며, 사용자가 허용한 규칙만을 적용하는 방식으로 동작합니다.
✅ 보안 그룹의 주요 특징
🛑➡️ 트래픽 제어
보안 그룹은 인스턴스에 대한 인바운드(들어오는 트래픽) 및 아웃바운드(나가는 트래픽) 규칙을 정의하여 제어합니다.
🚫🔽 기본적으로 모든 인바운드 트래픽 차단
사용자가 허용한 규칙만 적용되며, 명시적으로 허용되지 않은 모든 트래픽은 차단됩니다.
✅🔼 아웃바운드 트래픽은 기본적으로 허용
반대로, 인스턴스에서 외부로 나가는 트래픽은 기본적으로 허용됩니다.
🔄 규칙의 상태 저장(Stateful)
인바운드에서 허용된 연결은 자동으로 아웃바운드에서도 허용됩니다.
📌 여러 인스턴스에 적용 가능
하나의 보안 그룹을 여러 EC2 인스턴스에 적용할 수 있습니다.
🔗 여러 보안 그룹을 하나의 인스턴스에 적용 가능
하나의 인스턴스에 여러 개의 보안 그룹을 할당할 수 있으며, 각 보안 그룹의 규칙이 합쳐져 적용됩니다.
🔐 보안 그룹 사용 사례
🌐 웹 서버 (HTTP, HTTPS) 접근 허용 🖥️
- 80 (HTTP), 443 (HTTPS) 포트를 열어 웹 트래픽을 허용합니다.
🔑 SSH 원격 접속 허용 🛠️
- 22 (SSH) 포트를 특정 IP에서만 접근 가능하도록 제한 (예: 회사 내부 IP만 허용)
🗄️ 데이터베이스 접근 제한 🔒
- 3306 (MySQL), 5432 (PostgreSQL) 포트를 애플리케이션 서버에서만 접근 가능하도록 설정합니다.
🏗️ 멀티 계층 아키텍처 보호 🏢
- 웹 서버, 애플리케이션 서버, 데이터베이스 서버 간의 접근을 각각 제한하여 보안을 강화합니다.
⚠️ 보안 그룹 설정 시 주의할 점
🚨 SSH(22번 포트) 또는 원격 데스크톱(3389번 포트)를 전체 공개(0.0.0.0/0)하지 않기 🔓❌
- 누구나 접근할 수 있으므로 해킹 및 보안 위협이 증가할 위험이 있음
📍 허용하는 IP 범위를 최소한으로 설정하여 접근 제어 강화 🔍🛡️
- 특정 네트워크(회사 IP, VPN)만 허용하여 불필요한 접근을 차단
🗂️ 애플리케이션별로 보안 그룹을 분리하여 관리 📌
- 웹 서버, 데이터베이스 등 역할별로 보안 그룹을 따로 생성하여 보안 정책을 명확하게 분리
🚪 불필요한 오픈 포트 점검 및 필요 없는 규칙 삭제 🗑️
- 주기적으로 보안 그룹을 점검하고, 사용하지 않는 규칙은 제거하여 보안성을 유지