[AWS 캠프] 5일차 - Architecting on AWS (3)

SummerToday·2024년 7월 5일
0
post-thumbnail

09. 컨테이너


마이크로서비스 개요


느슨한 결합

출처: Architecting on AWS 7.7.4 (KO): Student Guide

  • 안티패턴: 모놀리식 인프라

    • 강력하게 통합된 서버 체인을 중심으로 움직이며 각 서버는 특정 목적을 지닌다.

    • 구성 요소 또는 계층 중 하나에 중단이 발생하면 시스템

    • 한 게층에 서버를 추가하거나 제거하는 경우, 연결된 모든 계층의 모든 서버도 연결해야 한다.


  • 모범 사례: 느슨한 결합

    • 관리형 솔루션을 시스템 계층 간의 중간자로 사용할 수 있다.

    • 중계자가 구성 요소 또는 계층의 장애 및 크기 조정을 자동으로 처리한다.

    • 구성 요소를 분리하는 주요 솔루션 중 2가지는 로드 밸런서와 메시지 대기열이다.


마이크로서비스

  • 마이크로서비스의 장점

    • 장애 발생 시 상호 영향이 적다.

    • 기술 스택을 독립적으로 가져갈 수 있다.


  • 마이크로서비스의 단점

    • 특정 서비스에 장애가 발생 시 트러블 슈팅이 어려울 수 있다.

    • 서비스별로 파이프라인을 독립적으로 구축해야하기 때문에 파이프라인 관리가 번거롭다.


컨테이너 개요


컨테이너

  • 컨테이너의 특성

    • 반복 가능

    • 독립적 환경

    • Vm보다 더 빠른 가동/중단 속도

    • 뛰어난 이식성

    • 확장 가능성

    • 독립적인 마이크로서비스로 구성


컨테이너와 마이크로서비스


가상화 및 추상화 수준


AWS의 컨테이너


컨테이너 서비스


AWS에서 컨테이너 실행

  • EC2에서 컨테이너를 직접 실행할면 크기 조정, 연결 및 유지 관리 작업을 사용자가 직접 해야한다.

  • 오케스트레이션 도구를 통해 관리할 수 있는 작업

    • 일정 예약

    • 배치

    • 네트워킹

    • 모니터링


Amazon ECR

  • 컨테이너 이미지를 ECR로 푸시한 다음 해당 이미지를 끌어와서 컨테이너를 시작할 수 있다.

  • 관리형 Docker 컨테이너 레지스트리이다.

  • 이미지 관리 기능이 존재한다. -> Docker의 이미지 관리 기능을 이용한다.

  • 컨테이너 이미지에 대한 압축, 암호화 및 제어가 가능하다.

  • 레지스트리에 리포지토리를 하나 이상 생성 후 리포지토리에 이미지를 저장 가능하다.


Amazon ECS 오케스트레이션

  • Docker 컨테이너를 지원하는 확장성이 뛰어난 고성능 컨테이너 관리 서비스이다.

  • 컨테이너화된 애플리케이션의 크기 조정, 유지 관리 및 연결을 관리한다.

  • 리포지토리에서 이미지를 가져온다.

  • ECS 서비스는 컨테이너 수를 관리하여 서비스 용량 크기를 조정한다.

  • ECS 클러스터가 호스팅 용량 크기를 조정한다.

  • 컨테이너의 집합 = 태스크


Amazon ECS 기능

  • 완전관리형

    • AWS 완전관리형 서비스이므로 컨트롤 플레인, 노드 또는 추가 기능을 관리할 필요가 없다.
  • 서비스 검색

    • 서비스 검색이 지원된다. DNS 이름에 ECS 서비스를 등록할 수있다.
  • AWS 서비스들과의 통합

    • ECR: 컨테이너화된 애플리케이션이 원할하게 컨테이너 이미지에 액세스하여 해당 이미지를 실행할 수 있다.

    • IAM: 각 컨테이너에 세분화된 권한을 배정할 수 있다.

    • CloudWatch Logs 및 Container Insights: 컨테이너화된 애플리케이션과 인스턴스의 로그를 한 곳에서 편리하게 확인할 수 있다.

  • 유연한 호스팅 옵션

    • EC2, AWS Fargate를 통한 서버리스 호스팅을 모두 사용할 수 있다. 리소스 요구 사항, 격리 정책 및 가용성 요구사항에 따라 클러스터 전체에 컨테이너 배치를 예약할 수 있다.
  • 일반 개발 워크플로 사용

    • CI/CD를 지원한다. 다음 작업을 수행하는 CI/CD 파이프라인을 구축할 수 있다.

      • 소스 코드 리포지토리의 변경 사항 모니터링

      • 해당 소스에서 새 Docker 이미지 구축

      • Amazon ECR, Docker Hub 등의 이미지 리포지토리에 이미지 푸시

      • 애플리케이션에서 새 이미지를 사용하도록 Amazon ECS 서비스 업데이트


모놀리식에서 컨테이너 기반 마이크로서비스로


Amazon EKS

  • Kubernetes는 컨테이너화된 애플리케이션을 대규모로 배포하고 관리하는 데 사용할 수 있는 오픈 소스 소프트웨어이다.

  • 준수 인증을 받은 관리형 Kubernetes 서비스이다.

  • 고가용성의 안전한 클러스터를 제공하는 데 도움이 되며 패치 적용, 노드 프로비저닝 및 업데이트와 같은 주요 태스크를 자동화한다.


Amazon EKS 솔루션

  • Amazon EKS는 자체 Kubernetes 클러스터를 설치 및 운영할 필요 없이 AWS에서 Kubernetes를 쉽게 실행할 수 있도록 해주는 관리형 서비스이다.

  • EKS 사용 시 AWS에서 고가용성 서비스 및 업그레이드를 사용자 대신 관리한다.

  • 최신 버전의 Kubernetes를 실행하므로 Kubernetes 커뮤니티의 기존 플러그인과 도구를모두 사용할 수 있다.

  • 애플리케이션의 실행 위치에 관계없이 호환성이 보장된다.


AWS Fargate

  • 서버 또는 클러스터를 관리할 필요 없이 컨테이너를 실행하는 데 사용할 수 있는 Amazon ECS와 Amazon EKS를 위한 기술이다.

  • 서버 유형을 선택하거나, 클러스터 크기 조정 시점을 결정하거나, 클러스터 패킹을 최적화할 필요가 없다.


AWS 컨테이너 서비스 선택

  • 컨테이너화된 애플리케이션 관리

    • ECS

      • 수동 구성 작업은 줄이면서 다른 AWS 서비스와 더 쉽게 통합할 수 있는 관리형 솔루션을 제공한다.
    • EKS

      • 자체 Kubernetes 클러스터를 설치 및 운영할 필요가 없다.

      • AWS 클라우드 또는 온프레미스에서 Kubernetes 애플리케이션을 유동적으로 시작 및 실행하고 조정할 수있다.

    • cf.
      • ECS -> Docker Supported
      • EKS -> Kubernetes Supported
    • Docker Vs Kubernetes

      • 하나의 컨테이너만 사용·관리 -> Docker (하나의 컨테이너를 관리하는 데 최적)

      • 다수의 컨테이너 사용·관리 -> Kubernetes (여러 개의 컨테이너를 관리하는 데 최적, 도커를 관리하는 툴)


10. 네트워킹 2


VPC 엔드포인트


VPC 엔드포인트 소개

  • 인터넷 게이트웨이, NAT 게이트웨이 또는 퍼블릭 IP 주소를 사용하지 않고 AWS 서비스에 액세스할 수 있다.

  • VPC 엔드포인트의 특성

    • 수평 크기 조정

    • 중복성

    • 고가용성


게이트웨이 및 인터페이스 VPC 엔드포인트


게이트웨이 VPC 엔드포인트

  • S3 및 DynamoDB로 향하는 트래픽의 라우팅 테이블의 대상으로 지정한다.

  • S3와 DynamoDB에만 지원된다.

  • 엔드포인트 사용에 따른 추가 비용이 발생하지 않는다.

  • 데이터 전송 및 리소스 사용량에 대한 표준 요금이 그대로 적용된다.


인터페이스 VPC 엔드포인트

  • 서비스가 VPC 내에 포함되어 있는 것처럼 VPC를 서비스에 프라이빗 방식으로 연결할 수 있다.

  • 인터페이스 엔드포인트가 생성되면 VPC에서 라우팅 테이블 변경 없이 트래픽이 새 엔드포인트로 전달된다.


VPC 피어링


VPC 피어링 소개

  • 리전 내 및 리전 간 지원

  • 교차 계정을 지원한다.

  • 두 VPC의 CIDR 블록이 겹치면 안된다.

  • VPC 피어링 연결은 두 VPC 간에 일대일 관계이다.


다중 VPC 피어링 연결

  • 여러 VPC를 연결할 시 VPC 연결이 복잡해질 수 있는 단점이 존재.

VPC 피어링의 이점


공유 서비스에 대한 VPC 피어링


풀 메시 VPC 피어링


하이브리드 네트워킹


AWS Site-to-Site VPN

  • VPN 터널 2개가 제공된다.

  • 인터넷 기반 연결이기 떄문에 보안성이 문제 될 수 있다.


AWS Direct Connect

  • 표준 이더넷 광 케이블을 통해 내부 네트워크를 Direct Connect 로케이션에 연결한다.

  • Dedicating 연결, Hosting 연결 두가지가 존재한다.


AWS Site-to-Site 및 Direct Connect 연결


AWS VPN 또는 Direct Connect 중 선택


AWS Transit Gateway


Transit Gateway

  • Hub & Spoke 네트워크 형태에서 Hub 역할을 하고 있는 라우터 서비스이다.

Transit Gateway를 사용하여 네트워크 크기 조정


Transit Gateway 구성 요소


Transit Gateway 설정


전체 연결


부분 연결


VPN에는 액세스를 유지하면서 VPC간 격리


11. 서버리스


서버리스란 무엇인가?


서버리스

  • 서버를 안쓴다는 의미 x

  • 프로비저닝하거나 관리할 인프라가 없음

  • 소비 단위에 따라 자동으로 크기 조정

  • 종량제 요금

  • 내장된 보안, 고가용성 컴퓨팅


AWS 서버리스 포트폴리오


서버리스 아키텍처의 예


Amazon API Gateway


API Gateway

  • Amazon API Gateway를 사용하여 API 생성, 게시, 유지 관리, 모니터링 및 보호할 수 있다.

  • API Gateway를 사용하여 애플리케이션을 AWS 서비스와 기타 퍼블릭 또는 프라이빗 웹 사이트에 연결할 수 있다.

  • AWS 관리형 서비스이다.


API Gateway 기능

  • 여러 마이크로서비스를 위한 통합 API 프런트 엔드를 생성. (벡엔드 단 제일 앞쪽에 위치)

  • 백엔드에 분산 서비스 거부(DDOS) 보호 및 제한 기능을 제공

  • 벡엔드에 대한 요청을 인증 및 권한 부여

  • 서드 파티 개발자에 의해 API 사용을 조절, 측정 및 수익화


API Gateway 샘플 아키텍처


Amazon Simple Queue Service(Amazon SQS)


Amazon SQS

  • 완전 관리형 메시지 대기열 서비스

  • 처리 및 삭제될 떄까지 메시지를 저장

  • 발신자와 수신자 간 버퍼 역할을 담당


Amazon SQS를 통한 느슨한 결합

  • 애플리케이션 구성 요소를 느슨하게 결합

  • 비동기식 처리 사용

  • 실패한 단계에 대한 내결합성 제공

  • 급증하는 수요 처리 가능


Amazon SQS 사용 사례

  • 작업 대기열

  • 버퍼링 및 배치 작업

  • 요청 오프로딩

  • 인스턴스 자동 크기 조정


SQS 대기열 유형

  • Standard

    • 제한이 없는 초당 API 호출

  • FIFO

    • 제한된 초당 API 호출

Amazon SQS 대기열 구성 최적화


메시지 대기열을 사용해야하는 경우

  • 서비스 간 통신

  • 상태 변경 알림

  • 비동기 작업 항목


Amazon Simle Notification Service(Amazon SNS)


Amazon SNS 사용 사례

  • Amazon CloudWatch 경보 알림

  • 메일 발송 목록 이메일 및 SMS 메시지

  • 앱 업데이트 푸시 알림


Amazon SNS의 특성

  • 게시된 단일 메시지

  • 회수 옵션이 없음

  • HTTP 또는 HTTPS 요청

  • 표준 또는 FIFO 주제


여러 SQS 대기열에 Amazon SNS 게시


Amazon SNS 및 Amazon SQS


Amaozon Kinesis


스트리밍 데이터 수집 및 분석

  • Amazon Kinesis Data Streams

  • Amazon Kinesis Data Firehose

  • Amazon Managed Service for Apache Flink

  • Amazon kinesis Video Streams


kinesis Data Streams 개요


Kinesis Data Firehose 개요


AWS Step Functions


Step Functions


Step Functions 상태 머신


복잡한 분산 워크플로의 오케스트레이션


실습 5: 서버리스 아키텍처 구성

  • 시나리오 워크 플로우

    • 이미지 파일을 Amazon S3 버킷에 업로드한다.

    • 버킷의 ingest 폴더에 파일을 업로드하면 SNS 주제에 대한 이벤트 알림이 호출된다.

    • 그러면 SNS가 별도의 SQS 대기열에 알림을 배포한다.

    • Lambda 함수는 이미지를 형식으로 처리하고 출력을 S3 버킷 폴더에 저장한다.

    • S3 버킷 폴더의 처리된 이미지를 검증하고 Amazon CloudWatch에서 로그한다.

  • 실습 목표

    • 리소스 분리의 가치 이해

    • Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 Lambda 함수로 교체하면 제공될 수 있는 이점 파악

    • Amazon SNS 주제 생성

    • Amazon SQS 대기열 생성

    • Amazon S3에서 이벤트 알림 생성

    • 기존 코드를 사용하여 AWS Lambda 함수 생성


12. 엣지 서비스


엣지 기본 사항


엣지의 AWS 클라우드

  • 고객이 필요로 하는 모든 위치에서 클라우드를 제공한다.

  • 리전뿐만 아니라 다양한 위치에서 AWS 서비스들을 제공한다.

    • AWS 엣지 로케이션

    • AWS 로컬 영역

    • AWS Outposts

    • AWS Snow 패밀리


엣지 서비스 아키텍처


Amazon Route 53


Route 53

  • 도메인 이름을 IP 주소로 확인

  • 도메인 이름을 등록 또는 이전

  • 지연 시간, 상태 확인 및 기타 기준에 따라 요청을 라우팅한다.


Route 53 퍼블릭 및 프라이빗 DNS


라우팅 정책

  • 라우팅 정책의 특성

    • 단순성

    • 장애 조치

    • 지리적 근접성

    • 지리적 위치 라우팅 (클라이언트의 위치에 따라 라우팅 변경)

    • 지연 시간 기반

    • 다중값 응답

    • 가중치


단순 라우팅(Simple routing Policy)


장애 조치 라우팅(Failover routing Policy)


지리적 위치 라우팅(Geolocation routing policy)


지리 근접 라우팅(Geoproximity routing policy)


지역 시간 기반 라우팅(Latency routing Policy)


다중값 응답 라우팅(Multivalue answer routing policy)


가중치 기반 라우팅(Weighted routing policy)


Amazon CloudFront


콘텐츠 전송 네트워크


Amazon CloudFront 개요

  • 글로벌 콘텐츠 전송 네트워크 서비스이다.

  • AWS WAF 및 AWS Shield와 통합할 수 있다.

  • 정적 또는 동적 콘텐츠를 제공한다.

  • 보안 기능이 내장되어 있다.

  • 엣지 로케이션을 활용하여 서비스 한다.


엣지 캐싱


CloudFront 캐싱 단계


CloudFront 구성

  1. 오리진 선택

    • S3 버킷

    • ELB 로드 밸런서

    • 사용자 지정 오리진

      • EC2 인스턴스

      • 온프레미스 서버


  1. 배포 생성

    • 캐시 동작 정의

      • 경로 패턴

      • 프로토콜 정책

      • HTTP 메서드

      • 서명된 URL

      • 캐시 정책

        • 유지 시간(TTL)

        • 캐시 키 설정


  1. 선택 사항

    • 함수 연결

    • AWS WAF 웹 액세스 제어 목록(웹 ACL) 연결

    • 사요자 지정 도메인 이름 추가


성능 개선


DDoS 보호

DDoS 공격


OSI 계층 공격


AWS Shield

  • AWS에서 애플리케이션을 보호하는 관리형 DDos 보호 서비스이다.

  • 유료 구독 서비스로 제공한다.

    • AWS Sheild Standard

    • AWS Sheld Advanced


AWS WAF


액세스 제어 구성 요소


ACL 규칙 구문을 사용하여 트래픽 제어


AWS FireWall Manager


AWS FireWall Manager 사용 사례


DDos 복원령 참조 아키텍처


AWS Outposts


AWS Outposts 패밀리


Outposts 랙 및 Outposts 서버


Oustposts를 통하 VPC 확장


Outposts의 AWS 리소스


13. 백업 및 복구


재해 복구 계획


재해 복구 계획 실패

  • 테스트

    • 테스트 없음

- 리소스
  • 복잡한 복구 경로
  • 충분한 리소스가 없음

  • 계획

    • 오래된 계획

    • 변경사항이 반영되지 않음


가용성 개념

  • 고가용성

  • 내결함성

  • 백업

  • 재하 복구


장애 조치 및 리전

  • 인스턴스 장애 조치를 계획한다.

  • 가용 영역 장애 조치를 계획한다.

  • 리전 장애 조치를 계획한다.


RPO(복구 시점 목표) 및 RTO(복구 시간 목표)


재해 복구에 필수적인 AWS 서비스 및 기능


스토리지 복제


복구용 AMI 구성


장애 조치 네트워크 설계


데이터베이스 백업 및 복제본

  • Amazon RDS

  • Amazon DynamoDB


템플릭 및 스크립트

  • AWS CloudFormation

  • 스크립트


AWS Backup


AWS Backup 개요


AWS Backup의 이점

  • 간편성

  • 규정 준수

  • 비용 제어


AWS Backup 작동 방식 이해

  1. AWS Backup 계획 생성

  2. 리소스 할당

  3. 백업 관리 및 모니터링


복구 전략


백업 및 복원 예


파일럿 라이트 예 -1


파일럿 라이트 예 -2


웜 스탠바이 -1


웜 스탠바이 -2


다중 사이트 액티브-액티브 -1


다중 사이트 액티브-액티브 -2


AWS에서 흔히 사용되는 DR 사례 비교


실습 6: Amazon S3 오리진으로 Amazon CloudFront 배포 구성

  • 실습 목표

    • 기본 보안 설정으로 S3 버킷 생성

    • 퍼블릭 액세스가 가능하도록 S3 버킷 구성

    • 기존 CloudFront 배포에 S3 버킷을 새 오리진으로 추가

    • CloudFront 배포를 통한 액세스만 허용하도록 S3 버킷 보호

    • S3 버킷의 보안을 제어하도록 OAC 구성

    • 퍼블릭 또는 OAC 액세스가 가능하도록 Amazon S3 리소스 구성

profile
IT, 개발 관련 정보들을 기록하는 장소입니다.

0개의 댓글

관련 채용 정보