inblog logo
|
silver
    AWS

    [AWS] EC2 솔루션 아키텍처

    silver's avatar
    silver
    Nov 14, 2025
    [AWS] EC2 솔루션 아키텍처
    Contents
    EC2 솔루션 아키텍처탄력적 IP(Elastic IP)배치 그룹(Placement Groups)ENI (Elastic Network Interface)EC2 Hibernate (최대 절전 모드)실전 아키텍처 패턴보안 강화비용 최적화 전략

    EC2 솔루션 아키텍처

    고가용성 설계 원칙

    단일 AZ 배치 (권장하지 않음) ap-northeast-2a: [EC2] [RDS Master] → AZ 장애 시 서비스 전체 중단 다중 AZ 배치 (권장) ap-northeast-2a: [EC2] [RDS Master] ap-northeast-2c: [EC2] [RDS Standby] → 한 AZ 장애 시에도 서비스 지속

    탄력적 IP(Elastic IP)

    특징

    • 고정된 공인 IPv4 주소
    • 인스턴스 중지/시작 시에도 IP 유지
    • 계정당 리전별 5개까지 무료 할당
    # Elastic IP 할당 aws ec2 allocate-address --domain vpc # 인스턴스에 연결 aws ec2 associate-address \ --instance-id i-1234567890abcdef0 \ --allocation-id eipalloc-12345678 # 연결 해제 aws ec2 disassociate-address --association-id eipassoc-12345678 # Elastic IP 해제 aws ec2 release-address --allocation-id eipalloc-12345678

    비용 최적화

    ⚠️ 할당된 Elastic IP가 인스턴스에 연결되지 않으면 시간당 과금
    권장 사항:
    • 사용하지 않는 Elastic IP는 즉시 해제
    • 가능하면 Load Balancer 사용 (IP 관리 불필요)
    • DNS 기반 라우팅 활용 (Route 53)

    배치 그룹(Placement Groups)

    인스턴스 간 네트워크 성능을 최적화하기 위한 논리적 그룹입니다.

    1. 클러스터 배치 그룹 (Cluster)

    특징
    • 단일 AZ 내에 인스턴스를 밀집 배치
    • 10Gbps 네트워크 대역폭
    • 낮은 지연시간
    사용
    • 고성능 컴퓨팅(HPC)
    • 빅데이터 분석
    • 밀접하게 연결된 애플리케이션
    단점
    • 단일 AZ이므로 고가용성 낮음
    • 하드웨어 장애 시 모든 인스턴스 영향
    # 클러스터 배치 그룹 생성 aws ec2 create-placement-group \ --group-name my-cluster \ --strategy cluster

    2. 분산 배치 그룹 (Spread)

    특징:
    • 각 인스턴스가 서로 다른 하드웨어에 배치
    • 다중 AZ 지원
    • AZ당 최대 7개 인스턴스
    사용 사례:
    • 고가용성이 중요한 애플리케이션
    • 독립적인 장애 도메인 필요
    • 중요한 데이터베이스 클러스터
    # 분산 배치 그룹 생성 aws ec2 create-placement-group \ --group-name my-spread \ --strategy spread

    3. 파티션 배치 그룹 (Partition)

    특징
    • 인스턴스를 파티션(논리적 세그먼트)으로 나눔
    • 각 파티션은 다른 하드웨어 랙 사용
    • AZ당 최대 7개 파티션
    사용
    • Hadoop, Cassandra, Kafka 같은 분산 시스템
    • 파티션 수준의 장애 격리 필요
    # 파티션 배치 그룹 생성 aws ec2 create-placement-group \ --group-name my-partition \ --strategy partition \ --partition-count 3

    ENI (Elastic Network Interface)

    개념

    • VPC의 가상 네트워크 카드
    • 인스턴스에 연결/분리 가능
    • 프라이빗 IP, Elastic IP, MAC 주소 보유

    사용 시나리오

    1. 장애 조치(Failover)
    정상 상황: Primary Instance (활성) → ENI (IP: 10.0.1.10) 장애 발생: Primary Instance (중지) Secondary Instance (활성) ← ENI 이동 (IP: 10.0.1.10 유지)
    2. 듀얼 홈 인스턴스
    EC2 Instance ├── eth0 (ENI-1): 10.0.1.10 (관리용 네트워크) └── eth1 (ENI-2): 10.0.2.20 (서비스 네트워크)

    ENI 생성 및 연결

    # ENI 생성 aws ec2 create-network-interface \ --subnet-id subnet-12345678 \ --description "Management Interface" \ --groups sg-12345678 # 인스턴스에 연결 aws ec2 attach-network-interface \ --network-interface-id eni-12345678 \ --instance-id i-1234567890abcdef0 \ --device-index 1 # ENI 분리 aws ec2 detach-network-interface \ --attachment-id eni-attach-12345678

    EC2 Hibernate (최대 절전 모드)

    • 인스턴스의 RAM 내용을 EBS 루트 볼륨에 저장
    • 재시작 시 RAM 내용 복원
    • 빠른 부팅과 상태 유지

    일반 중지 vs Hibernate

    일반 중지(Stop):
    Stop → RAM 삭제 → 디스크만 유지 Start → OS 부팅 → 애플리케이션 시작
    Hibernate:
    Hibernate → RAM을 디스크에 저장 Resume → RAM 복원 → 바로 실행 재개

    사용 조건

    • 150GB 이하 RAM 인스턴스
    • EBS 루트 볼륨 필수
    • 암호화된 EBS 볼륨 필요
    • 60일 이하 Hibernate 상태 유지

    활용 사례

    • 장시간 실행되는 작업 중단/재개
    • RAM에 대량 데이터 로드 필요
    • 빠른 재시작이 필요한 개발 환경
    # Hibernate 활성화된 인스턴스 생성 aws ec2 run-instances \ --image-id ami-12345678 \ --instance-type m5.large \ --hibernation-options Configured=true # Hibernate 실행 aws ec2 stop-instances \ --instance-ids i-1234567890abcdef0 \ --hibernate

    실전 아키텍처 패턴

    패턴 1: 웹 애플리케이션 (단일 AZ)

    Internet ↓ Internet Gateway ↓ Public Subnet (ap-northeast-2a) ├── EC2 (웹 서버) - Elastic IP └── Security Group: 80, 443 허용 ↓ Private Subnet (ap-northeast-2a) └── RDS (데이터베이스) └── Security Group: 웹 서버만 3306 허용
    장점: 간단한 구조, 저렴한 비용 단점: 단일 장애점, AZ 장애 시 서비스 중단

    패턴 2: 고가용성 웹 애플리케이션

    Internet ↓ Application Load Balancer (다중 AZ) ↓ ┌─────────────────────┬─────────────────────┐ │ AZ-A │ AZ-C │ │ Public Subnet │ Public Subnet │ │ ├── EC2 (웹 서버) │ ├── EC2 (웹 서버) │ │ └── Auto Scaling │ └── Auto Scaling │ │ │ │ │ Private Subnet │ Private Subnet │ │ └── RDS (Primary) │ └── RDS (Standby) │ └─────────────────────┴─────────────────────┘
    장점: 고가용성, 자동 확장, 장애 조치 단점: 복잡한 구조, 높은 비용

    패턴 3: 3-Tier 아키텍처

    ┌─────────────────────────────────────┐ │ Web Tier (Public Subnet) │ │ ALB → EC2 (Apache/Nginx) │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ Application Tier (Private Subnet) │ │ ALB → EC2 (Spring Boot/Node.js) │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ Data Tier (Private Subnet) │ │ RDS (Multi-AZ) + ElastiCache │ └─────────────────────────────────────┘
    notion image

    보안 강화

    1. 최소 권한 원칙

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject" ], "Resource": "arn:aws:s3:::my-app-bucket/*" } ] }

    2. Security Group 계층화

    Internet → SG-ALB (80, 443) → SG-WebServer (ALB만 허용) → SG-AppServer (WebServer만 허용) → SG-Database (AppServer만 허용)

    3. 배스천 호스트(Bastion Host)

    Developer PC ↓ SSH (22) Bastion Host (Public Subnet) ↓ SSH (22) Private Instances (Private Subnet)

    4. Systems Manager Session Manager

    • SSH 키 불필요
    • 포트 22 열 필요 없음
    • 감사 로그 자동 기록
    • IAM 권한으로 접근 제어
    # Session Manager로 접속 aws ssm start-session --target i-1234567890abcdef0

    비용 최적화 전략

    1. 인스턴스 예약

    • 온디맨드: 시간당 $0.0116 (t3.micro)
    • 1년 예약: 40% 할인
    • 3년 예약: 60% 할인

    2. 스팟 인스턴스 활용

    개발/테스트 환경: 100% 스팟 웹 서버 (Stateless): 70% 예약 + 30% 스팟 데이터베이스: 100% 예약

    3. 적절한 크기 조정

    # CPU 사용률 확인 (지난 14일) aws cloudwatch get-metric-statistics \ --namespace AWS/EC2 \ --metric-name CPUUtilization \ --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \ --start-time 2024-11-03T00:00:00Z \ --end-time 2024-11-17T00:00:00Z \ --period 86400 \ --statistics Average # 평균 CPU < 10% → 다운사이징 검토
    💡
    • 다중 AZ 배치로 고가용성 확보
    • 배치 그룹으로 성능 최적화
    • ENI로 유연한 네트워크 관리
    • 계층화된 보안 그룹 설계
    • 비용과 성능의 균형 고려
    Share article
    Contents
    EC2 솔루션 아키텍처탄력적 IP(Elastic IP)배치 그룹(Placement Groups)ENI (Elastic Network Interface)EC2 Hibernate (최대 절전 모드)실전 아키텍처 패턴보안 강화비용 최적화 전략

    silver

    RSS·Powered by Inblog