Architecting on AWS 2일차

Hyun·2025년 7월 3일

Module 5 스토리지

  • 클라우드 환경에서 스토리지 선택 기준
    • 블록 스토리지 : 한 서버 내에서 애플리케이션을 실행하기 위한 디렉토리 역할, 하드 드레이브 처럼 인식
    • 파일 스토리지 : 여러 서버들의 공유 파일로의 사용되는 디렉토리 역할
    • 객체 스토리지 : 다양한 정적 파일을 여러 디바이스에 분산 저장, 메타데이터 및 키와 함께 객체화 하여 저장, 웹 스토리지 형태
      구분블록 스토리지파일 스토리지객체 스토리지
      데이터 단위블록 (Block)파일 (File)객체 (Object)
      구조주소 기반계층적 구조 (폴더/파일)평평한 구조 (Key-Value)
      주요 프로토콜iSCSI, Fibre ChannelNFS, SMB/CIFSHTTP/HTTPS (REST API)
      성능매우 빠름 (낮은 지연 시간)빠름대역폭에 따라 다름
      확장성제한적보통매우 뛰어남
      핵심 장점고성능, 직접 제어쉬운 사용, 데이터 공유뛰어난 확장성, 메타데이터
      대표 서비스Amazon EBSAmazon EFSAmazon S3

Amazon S3 (Simple Storage Service)

  • 정적 파일을 데이터, 메타데이터, 키의 조합의 객체로서 저장하는 서버리스 객체 스토리지 서비스
  • 사용 예시 : 데이터 백업, 미디어 저장 및 스트리밍, 정적 웹 사이트, 데이터 레이크, 아카이빙
  • 객체들에게 액세스하기 위해서 2가지 정책을 활용한다.
    • 버킷 정책 : 버킷과 연결되는 IAM 리소스 기반 정책
    • 액세스 포인트 정책 : 버킷을 향하는 별도의 엔드포인트에 연결되는 리소스 기반 정책
  • 버킷에서 객체의 암호화 : S3 관리형 키, KMS 키, 고객 관리형 키

S3 스토리지 클래스

  • 데이터 요청에 자주 사용되는 클래스
    • S3 Standard : 자주 액세스하는 데이터, 밀리초 내에 액세스
    • S3 Interlligent-Tiering : 액세스 패턴이 바뀌거나 알 수 없는 객체 자동 이동, 밀리초 내에 액세스
    • S3 Standard-IA : 자주 액세스하지 않는 데이터, 밀리초 내에 액세스, 최소 30일 유지 필요
    • S3 One Zone-IA : 하나의 가용영역에만 저장하고 자주 액세스하지 않는 데이터, 밀리초 내에 액세스, 최소 30일 유지 필요
  • 데이터 복원에 자주 사용되는 클래스
    • S3 Glacier Deep Archive : 복원할 가능성이 거의 없는 아카이브 데이터(ex : 탈퇴한 회원의 개인자료를 1년 동안 저장이 필요할 때), 복원 시간 12시간 이내
    • S3 Glacier Flexible Retrieval : 복원 필요성을 예측할 수 없는 객체, 복원 시간 몇 분(신속) ~ 몇 시간(일반)
    • S3 Glacier Instant Retrieval : 빠르게 복원해야 하는(ex : 보안사고로 발생시 빠르게 복구해야할 경우 ) 아카이브된 데이터

S3 스토리지 추가 기능

  • 버전 관리 : 한 객체의 여러 버전을 보관, 의도치 않는 데이터 유실 및 덮어쓰기/삭제로부터 빠른 복구가 가능, 많은 버전을 소유시에 저장 비용이 증가하기 때문에 버전 수명 주기도 관리해야 한다.
  • 멀티 파트 업로드 : CLI/SDK에서 객체 병렬 업로드, 업로드 일시 중지 및 재개 가능
  • Transfer Acceleration : 엣지 로케이션과 최적화된 경로로 클라이언트와 버킷의 전송 향상
  • 이벤트 알림 : 버킷에서 이벤트 발생시 알림을 SNS 주제, SQS 대기열, Lambda 함수로 전송

Amazon EFS(Elastic File System)

  • NFS 프로토콜 사용, EC2 인스턴스, 컨테이너, 람다 함수를 지원, 최소 용량 없는 파일 스토리지
  • 활용 예시 : DevOps, 웹 콘텐츠, 기계 학습, 분석, 검색 인덱스, 마이크로서비스 등 상태 저장 애플리케이션

Amazon FSx

  • Windows, Lustre, Netapp ONTAP, OpenZFS 파일 서버를 지원하는 공유 파일 스토리지
  • 워크로드 마이그레이션 및 백업, 개발 환경, 기계 학습, 분석, HPC, 미디어 시스템

AWS 데이터 마이그레이션 도구

  • 온라인 이용
    • AWS Storgae Gateway : 애플리케이션이 SMB, NFS, iSCSI 프로토콜로 S3 스토리지 액세스
    • AWS DataSync : 온프레미스 파일 스토리지와 S3, EFS, FSx와의 주기적인 동기화
    • AWS Transfer Family : SFTP, FTP, FTPS 프로토콜로 S3와의 파일 전송
  • 오프라인 이용
    • AWS Snow Family : 대량의 디스크가 포함된 어플라이언스 장비

Module 6 데이터베이스

  • 관계형 데이터베이스vs 비관계형(Nosql) 데이터 베이스

    관계형 데이터베이스비관계형 데이터베이스
    엄격한 스키마 규칙 및 데이터 품질 적용이 필요데이터베이스 크기를 수평으로 조정 필요
    과도한 읽기/쓰기 용량을 필요로 하지 않는다.데이터가 기존 스키마에 적합하지 않음
    자원 소비가 적다.읽기/쓰기 속도가 기존 정형 쿼리언어 보다 빠르다.
  • AWS 관리형 서비스와 비관리형 서비스의 차이(그림 만들기 필!)

Amazon RDS (Relational Database Service)

  • 관계형 데이터베이스를 AWS 관리형 인스턴스로 배포 관리한다.
  • 보안 그룹 지원, 저장 데이터 및 전송 데이터 암호화 가능
  • 인스턴스(컴퓨팅 및 볼륨 스토리지) 용량 조정
  • 2개 이상의 가용 용역에 배포 및 읽기 복제본이 지원된다.

Amazon Aurora

  • 클라우드를 위해 구축한 Mysql, PostgresSQL 호환 관계형 데이터베이스

  • 스토리지를 여러 가용 영역에 걸쳐있는 가상 스토리인 클러스터 볼륨으로 제공한다.

  • 서버리스 V2 모델 지원 : 2GB 메모리에 상응하는 컴퓨팅과 네트워크를 1 ACU로 용량 측정

    Amazon DynamoDB

  • 키-값 기반의 비관계형 데이터베이스를 서버리스 완전 관리형으로 제공한다.

  • 일기/쓰기별 처리 용량을 측정하기 위한 용량 유닛을 사용한다.

  • 테이블의 기준 파티션 키 및 용량 관리 옵션 지정 - Provisioned, On-demand 이다.

  • 일반적으로 1초 내에 3개의 가용 영역에 걸쳐서 테이블 데이터를 복제한다.(그림 생성 필!)

DynamoDB 글로벌 테이블

  • 리전 간 복제본이 모두 Active 데이터베이스 역할을 담당하는 기능을 수행한다.
  • RDS와 Aurora 는 읽기 전용 복제본이 생성되는 것과 달리 DynamoDB는 읽기/쓰기가 가능

데이터베이스 캐시

  • Client가 데이터베이스에 접근하는 성능을 최대한 높이기 위해 데이터베이스 계층 앞단에 캐시를 추가로 배치 가능하다.
  • 캐시와 데이터베이스와의 동기화 필요 : 레이지 로딩, 라이트 스루 전략 사용
  • 애플리케이션의 데이터베이스 캐시를 고려해야 하는 케이스
    • 쿼리 속도가 느리고 비용이 많이 드는 데이터 존재 : 여러 테이블에 걸쳐서 조인을 수행하는 쿼리
    • 비교적 정적이면서 액세스 빈도가 높은 데이터 존재 : SNS 서비스의 프로필

Module 7 모니터링 및 크기 조정

  • AWS 클라우드에서 모니터링해야 할 대상 리소스 리스트

    • 배포한 AWS 리소스의 성능 지표
    • 로그를 남기는 AWS 리소스
    • EC2 위에 배포한 애플리케이션의 로그
    • AWS 계정 내의 API 호출과 응답
    • VPC 내에 오가는 IP Packet
  • AWS 클라우드에서의 모니터링 알림 설정

    • AWS 리소스의 성능 값에 대한 임계치 설정 후 벗어날 시 수행할 작업 정의
    • 여러 리소스에서 발생되는 이벤트를 갭쳐 후 이에 따라 수행할 작업 정의

Cloudwatch

  • 리소스의 성능 지표 및 로그 그리고 지표에 대한 임계치 경보를 설정, 임계치 초과시 수행할 작업을 정의
  • Cloudwatch Agent를 이용해서 시스템의 어떤 지표를 수집할지 여부를 설정한다.

EventBridge

  • 여러 리소스의 이벤트를 규칙으로 선언하고, 발생시 이에 따른 작업을 대상에게 라우팅

AWS CloudTrail

  • 계정 내 대부분의 AWS 서비스에 대한 API 호출 및 응답을 S3에 로깅
  • 계정 내에 보안 이슈가 발생했을 때 확인을 위해서 사용 가능

VPC 흐름 로그

  • VPC ENI(Elastic Network Interface)에 송수신되는 IP 트래픽 정보 수집

Elastic Load Balancing

  • 여러 컴퓨팅 리소스 대상으로 자동으로 트래픽 분산 및 상태 확인 수행
  • 가용 영역 수준에서의 고가용성 및 보안 기능 제공

ELB의 구성요소

  • 리스너 : 클라이언트의 요청을 받아주는 역할
  • 대상 그룹 : 클라이언트로 부터 요청을 받았을 때 이를 처리하는 대상이 속해있는 그룹
  • 규칙 : 리스너로부터 들어오는 트래픽을 대상 그룹으로 어떻게 전달할 것 인지

ELB 로드 밸런서 종류 및 기능 비교

  • 웹 애플리케이션을 위한 ELB

    • Application Load Balancer : HTTP(s) 기반
    • Network Load Balancer : TCP/UDP 기반
  • 보안 솔루션 대상인 ELB

    • Gateway Load Balancer : IP/TCP 기반

    Auto Scaling을 지원하는 서비스

    • EC2 인스턴스의 수량
    • DynamoDB 테이블의 읽기/쓰기 용량 유닛
    • Aurora Reader Node
    • Amazon ECS task 수량
    • Lambda 함수 프로비저닝된 동시성

Amazon EC2 Auto Scaling

  • EC2의 인스턴스의 수량 조절을 자동화

    • 상태 확인
    • CLoudWatch 경보
    • 일정
    • 수동 크기 조정

    Module 8 자동화

    AWS CloudFormation

    • infrastructure as a Code : AWS 리소스를 코드 형태로 배포, 업데이트 및 삭제
    • IaC 의 예시로 대표적인 것이 terraform, AWS 자체 서비스는 CloudFormation 이 존재한다.

    기타 AWS 인프라 배포 및 관리 도구

    • AWS Elastic Beanstalk : AWS에서 프로비저닝 및 운영하는 EC2 기반 인프라 제공
    • AWS 솔루션 라이브러리 : AWS 아키텍처가 승인한 CloudFormation 기반 아키텍처 레퍼런스
    • AWS CDK : Python, JavaScript 등의 프로그래밍 언어로 Cloudformation 템플릿 생성 배포
    • Amazon Q Developer : AI 기반의 코드 도우미 및 보안 스캐너
    • AWS Systems Manager : EC2 인스턴스의 구성, 운영 및 규정 준수 관리
profile
DevSecOps & Cloud Engineer를 꿈꾸는 엔지니어

0개의 댓글