41일차) 2025-02-26(공인교육6. Architecting on AWS)
네트워킹2
VPC 엔드포인트(VPC Endpoint)
VPC 내부에서 AWS 서비스와 프라이빗 네트워크를 통해 안전하게 연결할 수 있는 방법
인터페이스 VPC 엔드포인트
PrivateLink를 사용하여 특정 서비스와 VPC 연결, 트래픽이 인터넷을 거치지 않음, ENI(Elastic Network Interface)를 생성하여 VPC 내에서 서비스에 액세스 가능
✅ VPC 피어링(VPC Peering)
두 개의 VPC 간 프라이빗 네트워크 1:1 연결을 설정하고 피어링 리소스를 하나만 사용해 VPC 간 통신을 가능하게 함
- 다중 VPC 피어링 연결: 여러 개의 VPC를 서로 연결 가능
→ 피어링 간 경로 전파가 자동으로 이루어지지 않아 수동으로 라우팅해야 함 - 리전 간 VPC 피어링: 서로 다른 AWS 리전에서 실행되는 VPC 리소스가 프라이빗 IP주소를 사용해 서로 통신 가능
→ GW, VPN연결, 물리적 하드웨어 필요없음 - 풀 메시 VPC 피어링: 모든 VPC가 서로 직접 피어링된 구조
→ 관리가 복잡해지므로 일반적으로 Transit Gateway를 사용하는 것이 더 효율적
✅ 하이브리드 네트워킹(Hybrid Networking)
AWS와 온프레미스 데이터센터를 연결하는 방식, AWS 클라우드와 기존 인프라를 함께 운영하는 환경
- Site-to-Site VPN: AWS 클라우드와 기존 인프라를 함께 운영하는 환경
인터넷을 통해 암호화된 IPSec 터널을 사용하여 트래픽을 안전하게 전송 - Direct Connect: 온프레미스 네트워크와 AWS를 전용 물리적 회선으로 연결
VPN보다 안정적이고 높은 대역폭을 제공하며, 지연 시간을 최소화 - Transit Gateway: 다수의 VPC, 온프레미스 네트워크를 중앙에서 연결(Attachments)하고 관리하는 서비스
VPC Peering보다 확장성이 높고, 다중 VPC 네트워크 관리가 용이함
Site-to-Site VPN 구성 요소
- 고객 측 물리적 디바이스, SW 애플리케이션
ex. 고객 게이트웨이 디바이스 - Amazon 측 게이트웨이
ex. 가상 프라이빗 게이트웨이, Transit Gateway
Transit Gateway 구성 요소
- Transit Gateway Route Table: 라우팅 정책을 관리
- Attachments: VPC, VPN, Direct Connect 등의 연결을 구성
- Propagation: 연결된 네트워크 간에 라우팅 정보를 자동으로 전파
서버리스
프로비저닝하거나 관리할 인프라가 없음, 자동 크기 조정(오토스케일링), 종량제 요금, 내장된 보안 고가용성 컴퓨팅
ex. AWS Lambda, API Gateway, S3, DynamoDB, SQS, SNS
✅ API Gateway
HTTP 기반 API 및 서버리스 애플리케이션을 구축할 때 사용
- API 생성, 게시, 유지 관리, 모니터링 및 보호
- AWS 서비스나 퍼블릭/프라이빗 웹 사이트 연결 지원
- 다수의 동시 API 호출 수락하고 처리하는 데 관련된 모든 태스크를 처리
API Gateway 기능
- RESTful 및 WebSocket API 지원: HTTP 기반 API뿐만 아니라 실시간 양방향 통신을 지원
- 요금제 및 트래픽 관리: API 요청 제한 및 사용자별 요금제 적용 가능
- OAuth 및 IAM 인증 통합: 보안 및 접근 제어 기능 제공
- 백엔드 서비스 보호: 요청 검증, WAF(Web Application Firewall) 통합 지원
- 캐싱 및 로깅: CloudWatch와 연계하여 API 요청 로깅, 캐싱 기능 제공
✅ Simple Queue Service(SQS)
완전관리형 메시지 큐 서비스, 애플리케이션 간 비동기 메시지 전송을 지원하여 확장성과 안정성을 높임
SQS 이점
- 느슨한 결합(Decoupling): 생산자-소비자가 직접 연결되지 않고 메시지 큐를 통해 간접적으로 통신
- 내결함성(Fault Tolerance): 메시지가 손실되지 않고 큐에 안전하게 저장됨
- 급증하는 트래픽 처리: 트래픽이 증가해도 자동으로 처리 가능
SQS 사용 사례
작업 대기열, 버퍼링 및 배치 작업, 요청 오프로딩, 인스턴스 자동 크기 조정
SQS 대기열
- 표준(Standard) 대기열: 높은 처리량을 지원하지만 메시지 순서 보장 없음
- FIFO(First-In-First-Out) 대기열: 순서를 보장하며 중복 메시지를 방지하지만 처리량이 제한됨
✅ Simple Notification Service(SNS)
푸시 메시징 서비스로, 하나의 메시지를 여러 구독자에게 동시 전송 가능
- 단일 메시지 게시
- 회수 옵션 없음
- HTTP/HTTPS 요청
- 표준 또는 FIFO 주제
📌 SQS vs SNS
기능 | SQS (Message Queue) | SNS (Pub/Sub) |
메시징 방식 | 메시지 큐(Queue), 풀링(능동적) | 발행-구독(Pub/Sub), 푸시(수동적) |
메시지 전달 | 단일 소비자가 메시지를 처리 | 여러 구독자에게 동시에 전송 |
메시지 보존 | 소비자가 처리할 때까지 유지 | 전송 후 삭제됨 |
사용 사례 | 비동기 작업 처리, 트래픽 버퍼링 | 실시간 알림, 이벤트 브로드캐스팅 |
💡SQS + SNS 조합 → 하나의 이벤트를 여러 시스템에서 처리하되, 특정 시스템만 큐에서 메시지를 가져갈 때
💡S3 같은 전용 스토리지로 해당 스토어에 있는 객체에 대한 참조를 메시지 자체에 넣어 전달 → 메시지 크기가 클 때
✅ Kinesis
실시간 데이터 스트리밍 및 분석 서비스로, 대량의 데이터를 빠르게 수집하고 처리할 수 있도록 설계, 서버리스 기반
- Kinesis Data Streams(KDS): 실시간 데이터 스트리밍을 위한 서비스
- 데이터를 Shard(샤드) 단위로 저장하며, 병렬 처리가 가능
- 데이터를 Producer(생산자) 가 스트림에 전송하고, Consumer(소비자) 가 데이터를 가져가 분석하거나 저장 - Kinesis Data Firehose: 실시간 데이터 스트림을 AWS 데이터 저장소로 자동 전달하는 서비스
📌 Kinesis Data Streams vs Kinesis Data Firehose
기능 | Kinesis Data Streams | Kinesis Data Firehose |
사용 목적 | 실시간 데이터 처리 (애플리케이션 분석) | 실시간 데이터 전달 (저장/분석) |
데이터 저장 | 직접 처리해야 함 | S3, Redshift, Elasticsearch 등으로 자동 전달 |
데이터 변환 | 소비자가 직접 처리 | Lambda로 데이터 변환 가능 |
주요 사용 사례 | 로그 분석, 실시간 스트리밍 데이터 | 데이터 웨어하우스 적재, 보안 로그 수집 |
✅ Step Functions
AWS 서비스 간 서버리스 워크플로우 자동화 및 관리 서비스, 순차적 또는 병렬 실행을 관리, 서버리스 오케스트레이션을 제공하여 코드 없이 설계 가능, 비용 최적화
- State Machine: 전체 워크플로우를 정의하는 JSON 기반 구성
- States(단계): 개별 작업을 정의하는 단계 (예: 작업 실행, 조건 분기)
- Transitions(전이): 상태 간의 흐름을 정의하여 특정 조건에 따라 다음 단계 결정
자동화
✅ 코드형 인프라(IaC)
인프라를 코드로 정의하여 자동화, 일관성, 재사용성, 업데이트 용이함, 수동 설정 없이 동일한 환경을 여러 번 배포 가능
- IaC 도구: CloudFormation, AWS CDK, Terraform 등
✅ CloudFormation
AWS 인프라 배포 자동화 도구, AWS 리소스를 코드로 정의하고 자동으로 프로비저닝하는 서비스
- 템플릿(Template) 기반 배포
- 스택(Stack): CloudFormation을 통해 생성된 리소스들의 묶음, 프로비저닝된 리소스
- 여러 개의 템플릿 사용 가능 → 복잡한 인프라도 계층적으로 구성 가능
계층형 아키텍처(Hierarchical Architecture)
- 스택을 여러 개의 수평 계층으로 구성
- 각 계층(예: 네트워크, 데이터베이스, 애플리케이션)이 중첩되어 구축됨
- 바로 하위 계층을 종속성으로 가짐(예: VPC → 서브넷 → EC2).
CloudFormation 배포 프로세스
- 템플릿 생성 (YAML/JSON 형식)
- AWS에 업로드 (AWS Console, CLI, SDK 사용)
- CloudFormation이 API 요청으로 변환하여 리소스 생성
- 스택(Stack)으로 인프라 관리
인프라 배포 도구
서비스 | 역할 | 특징 |
Elastic Beanstalk | 애플리케이션 배포 및 관리 | PaaS(플랫폼 서비스), 코드 업로드만으로 자동 배포 |
AWS CloudFormation | 인프라 자동 배포 | JSON/YAML 템플릿 기반, 전체 AWS 리소스 관리 |
AWS CDK (Cloud Development Kit) | 프로그래밍 언어 기반 IaC | SW 개발 프레임워크, 프로그래밍 언어로 인프라 정의 |
Solution Library | AWS 제공 배포 솔루션 | 모범 사례 기반의 사전 구성 템플릿 제공 |
인프라 운영 및 관리 도구
서비스 | 역할 | 특징 |
AWS Systems Manager | 중앙 관리 및 운영 자동화 | EC2, 온프레미스 서버 원격 관리, 패치 자동화 |
✅ Amazon Q
생성형 AI 기반 어시스턴트, 안전하고 프라이빗한 환경에서 작동하도록 설계
- Amazon Q for Developers
- 소프트웨어 개발 생명 주기(SDLC) 지원
- 코드 작성 및 디버깅 보조
- 최적화된 코드 추천 제공 - Amazon Q for Business
- 기업 내부 정보에 대한 AI 기반 질의 응답 지원
- 데이터 및 문서 분석 자동화
- 보안이 강화된 비즈니스 인사이트 제공
컨테이너
✅ 모놀리식 인프라(Monolithic Infrastructure)
- 하나의 애플리케이션이 모든 기능을 포함하는 단일 코드베이스로 구성됨
- 모든 컴포넌트(프론트엔드, 백엔드, 데이터베이스, 인증 등)가 긴밀하게 연결됨
- 배포 및 확장 어려움 → 하나의 기능 변경 시 전체 애플리케이션을 다시 배포해야 함
✅ 마이크로서비스(Microservices)
- 애플리케이션을 여러 개의 독립적인 서비스(마이크로서비스) 로 나누어 운영
- 각 서비스가 독립적으로 개발, 배포, 확장 가능 → 유연성과 확장성 증가
- API 또는 메시지 큐(SQS, SNS)로 서비스 간 통신
- 느슨한 결합(Loose Coupling): 서비스 간 종속성을 최소화하여 독립적으로 변경 및 확장 가능
컨테이너(Container)
- 애플리케이션과 실행에 필요한 모든 요소(코드, 라이브러리, 종속성)를 패키징한 경량화된 가상 환경
- 적절한 커널 기능 지원되고 daemon이 있는 리눅스/윈도우 시스템에서 실행 가능 → 휴대성
- 배포 위치에 관계없이 기본 요구 사항 적용되며 동일한 동작 제공 → 반복 가능
- VM(가상머신)보다 가볍고 빠름 → 필요할 때만 실행 가능
컨테이너 서비스(Container Services)
- Amazon Elastic Container Registry (ECR): 프라이빗 컨테이너 이미지 저장소
- Docker Hub와 유사하지만, 보안이 강화되고 AWS와의 통합이 원활함
- CI/CD 파이프라인과 연계하여 자동화된 배포 가능
- Amazon ECS (Elastic Container Service): 완전관리형 컨테이너 오케스트레이션 서비스
- Docker 컨테이너를 실행하고 관리하는 기능 제공
- ECS 오케스트레이션: 컨테이너 배포, 스케일링, 로드 밸런싱 자동화
- 클러스터: 태스크나 서비스의 논리적 그룹화, 컨테이너가 논리적으로 구성되는 방식
- 런타임 옵션:
- EC2 기반 → ECS 클러스터를 EC2 인스턴스로 실행
- Fargate 기반 → 서버리스 환경에서 컨테이너 실행(EC2 관리 불필요)
- Amazon EKS (Elastic Kubernetes Service): 완전관리형 Kubernetes 서비스
- 기존 Kubernetes(K8s) 환경을 AWS에서 그대로 실행 가능
- ECS보다 멀티 클라우드 지원 및 확장성이 뛰어남
- AWS Fargate: 서버리스 컨테이너 실행 환경 → EC2 인스턴스(클러스터/서버)를 직접 관리할 필요 없음
- 인프라를 수동으로 업데이트할 필요 없음 + VM을 프로비저닝, 구성, 크기 조정 필요 없음
- ECS와 EKS에서 모두 사용 가능
- 사용한 만큼만 비용을 지불하는 완전관리형 서비스
- 컨테이너의 자동 스케일링과 보안이 뛰어남
엣지 서비스
AWS 글로벌 인프라 구성 요소
- 중앙 인프라(AWS 리전)
- 엣지 인프라(AWS 엣지 서비스)
AWS 리전(Region)
AWS 데이터 센터가 위치한 주요 지리적 영역, 각 리전은 여러 개의 가용 영역으로 구성, 리전 간 독립적인 운영으로 재해 복구(Disaster Recovery) 지원
AWS 엣지 서비스(Edge Services)
사용자와 가까운 곳에서 데이터를 처리하여 성능 향상 및 지연 시간 감소
- AWS 엣지 로케이션: CloudFront(콘텐츠 전송 네트워크) 및 Route 53(DNS 서비스) 제공
- AWS 로컬 영역(Local Zone): 리전보다 사용자 가까운 곳에서 지연 시간이 짧은 컴퓨팅 서비스 제공
- AWS Outposts: AWS의 온프레미스 확장형 서비스로, 기업 내부 데이터센터에서 AWS 서비스를 실행 가능
- AWS Snow 패밀리: 인터넷 연결 없이 대량 데이터 이동(오프라인 마이그레이션) 지원
✅ Route 53
- 도메인 이름 시스템(DNS) 서비스로, 도메인 이름을 IP 주소로 변환
- 퍼블릭(인터넷 도메인) 및 프라이빗(VPC 내부) DNS 관리
라우팅 정책
다양한 트래픽 분산 정책을 지원하여 최적의 네트워크 경로를 설정
라우팅 정책 | 설명 |
단순 라우팅(Simple Routing) | 단일 IP 주소 또는 도메인으로 트래픽 전달. |
장애 조치 라우팅(Failover Routing) | 기본 리소스 장애 시 대체 리소스로 트래픽 전환. |
지리적 위치 라우팅(Geolocation Routing) | 사용자의 물리적 위치(국가, 대륙) 에 따라 트래픽 전달. |
지리 근접 라우팅(Geoproximity Routing) | AWS 리소스와 사용자의 거리 기반으로 트래픽 분산. |
지연 시간 기반 라우팅(Latency-Based Routing) | 사용자의 위치에서 가장 낮은 지연 시간을 제공하는 리전에 연결. |
다중값 응답 라우팅(Multi-Value Answer Routing) | 여러 IP 주소를 반환하여 부하 분산. |
가중치 기반 라우팅(Weighted Routing) | 특정 리소스에 트래픽을 가중치(%)에 따라 분배. |
✅ 콘텐츠 전송 네트워크(CDN)
- 글로벌 엣지 서버를 활용하여 콘텐츠를 캐싱하고 빠르게 전달하는 기술
- 사용자의 물리적 위치와 가까운 서버에서 콘텐츠 제공 → 지연 시간 단축 및 대역폭 절감
✅ CloudFront
CDN(Content Delivery Network) 서비스, 동적/정적 콘텐츠를 전 세계 엣지 로케이션에서 캐싱하여 제공
CloudFront 캐싱 단계
1️⃣ 오리진(Origin) → 원본 콘텐츠 저장소 (예: S3, EC2, ALB)
2️⃣ CloudFront 엣지 로케이션 → 자주 요청되는 콘텐츠를 캐싱하여 빠르게 제공
3️⃣ 사용자(Client) → 가장 가까운 엣지 로케이션에서 콘텐츠 수신
엣지 캐싱(Edge Caching)
- 엣지 로케이션에서 자주 요청되는 콘텐츠를 저장하여 오리진 서버의 부담을 줄임
- 캐시 만료 시간(TTL, Time-to-Live) 설정 가능
- 오리진에서 변경된 데이터만 가져오는 캐시 무효화(Cache Invalidation) 기능 제공
💡 엣지 서비스는 사용자가 가까운 곳에서 데이터를 빠르게 받을 수 있도록 도와주지만, 보안 위협에 노출될 수도 있음!
- DDoS(Distributed Denial of Service) 공격: 대량의 요청을 보내 서버 과부하 유발 → 서비스 마비
- OSI 계층 공격: 네트워크, 전송, 애플리케이션 계층에서 발생하는 공격(ex. SYN Flood, HTTP Flood)
DDoS 보호 솔루션
서비스 | 역할 | 특징 |
AWS Shield | 자동화된 DDoS 공격 방어 | 기본 제공(무료) 및 Advanced(유료) 버전 |
AWS WAF | 웹 애플리케이션 방화벽 | SQL Injection, XSS 등 웹 트래픽 필터링 및 트래픽 제어 |
AWS Firewall Manager | 중앙 집중식 방화벽 규칙 관리 | 여러 AWS 계정과 리소스에 대한 WAF 및 보안 정책 관리 |
엑세스 제어 및 트래픽 필터링
- 엑세스 제어 구성 요소
- 네트워크 및 웹 트래픽을 허용하거나 차단하는 정책 설정.
- ACL(Access Control List) 규칙 구문을 사용하여 IP, 포트, 프로토콜 기반 트래픽 제어 가능.
- ACL 규칙을 활용한 트래픽 제어
- IP 기반 차단: 특정 IP 또는 CIDR 범위를 허용/거부
- 포트 필터링: 특정 포트(예: SSH, HTTP, HTTPS)에서만 허용
- 프로토콜 제한: TCP, UDP 등 특정 프로토콜만 허용
AWS Outposts 패밀리
- 온프레미스 인프라 서비스로, 기업 내부에 AWS 하드웨어 설치 가능
- AWS 리전과 동일한 관리 환경 제공 → 하이브리드 클라우드 구축 가능
- 네트워크 성능 최적화 및 엣지 컴퓨팅을 활용한 저지연 서비스 제공
AWS Outposts 구성 요소
Outposts 유형 | 특징 |
Outposts 랙 | 대규모 데이터센터용 랙 단위 하드웨어 제공 |
Outposts 서버 | 소규모 환경용 서버 단위 하드웨어 제공 |
백업 및 복구
실습5)
서버리스 아키텍처 구축
실습6)
Amazon S3 오리진으로 Amazon CloudFront 배포 구성
캡스톤 실습)
AWS 멀티 티어 아키텍처 구축