AWS 공인교육

41일차) 2025-02-26(공인교육6. Architecting on AWS)

eitherwho 2025. 2. 24. 09:34

네트워킹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 배포 프로세스

  1. 템플릿 생성 (YAML/JSON 형식)
  2. AWS에 업로드 (AWS Console, CLI, SDK 사용)
  3. CloudFormation이 API 요청으로 변환하여 리소스 생성
  4. 스택(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 기반 어시스턴트, 안전하고 프라이빗한 환경에서 작동하도록 설계

  1. Amazon Q for Developers
    - 소프트웨어 개발 생명 주기(SDLC) 지원
    - 코드 작성 및 디버깅 보조
    - 최적화된 코드 추천 제공
  2. Amazon Q for Business
    - 기업 내부 정보에 대한 AI 기반 질의 응답 지원
    - 데이터 및 문서 분석 자동화
    - 보안이 강화된 비즈니스 인사이트 제공

컨테이너

모놀리식 인프라(Monolithic Infrastructure)

  • 하나의 애플리케이션이 모든 기능을 포함하는 단일 코드베이스로 구성됨
  • 모든 컴포넌트(프론트엔드, 백엔드, 데이터베이스, 인증 등)가 긴밀하게 연결됨
  • 배포 및 확장 어려움 → 하나의 기능 변경 시 전체 애플리케이션을 다시 배포해야 함

마이크로서비스(Microservices)

  • 애플리케이션을 여러 개의 독립적인 서비스(마이크로서비스) 로 나누어 운영
  • 각 서비스가 독립적으로 개발, 배포, 확장 가능 → 유연성과 확장성 증가
  • API 또는 메시지 큐(SQS, SNS)로 서비스 간 통신
  • 느슨한 결합(Loose Coupling): 서비스 간 종속성을 최소화하여 독립적으로 변경 및 확장 가능

컨테이너(Container)

  • 애플리케이션과 실행에 필요한 모든 요소(코드, 라이브러리, 종속성)를 패키징한 경량화된 가상 환경
  • 적절한 커널 기능 지원되고 daemon이 있는 리눅스/윈도우 시스템에서 실행 가능 → 휴대성
  • 배포 위치에 관계없이 기본 요구 사항 적용되며 동일한 동작 제공 → 반복 가능
  • VM(가상머신)보다 가볍고 빠름 → 필요할 때만 실행 가능

컨테이너 서비스(Container Services)

  1. Amazon Elastic Container Registry (ECR): 프라이빗 컨테이너 이미지 저장소
    • Docker Hub와 유사하지만, 보안이 강화되고 AWS와의 통합이 원활함
    • CI/CD 파이프라인과 연계하여 자동화된 배포 가능
  2. Amazon ECS (Elastic Container Service): 완전관리형 컨테이너 오케스트레이션 서비스
    • Docker 컨테이너를 실행하고 관리하는 기능 제공
    • ECS 오케스트레이션: 컨테이너 배포, 스케일링, 로드 밸런싱 자동화
    • 클러스터: 태스크나 서비스의 논리적 그룹화, 컨테이너가 논리적으로 구성되는 방식
    • 런타임 옵션:
      • EC2 기반 → ECS 클러스터를 EC2 인스턴스로 실행
      • Fargate 기반 → 서버리스 환경에서 컨테이너 실행(EC2 관리 불필요)
  3. Amazon EKS (Elastic Kubernetes Service): 완전관리형 Kubernetes 서비스
    • 기존 Kubernetes(K8s) 환경을 AWS에서 그대로 실행 가능
    • ECS보다 멀티 클라우드 지원 및 확장성이 뛰어남
  4. 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 멀티 티어 아키텍처 구축