클라우드 컴퓨팅

인터넷을 통한 IT 리소스 및 앱의 온디맨드 제공을 사용하는 것

클라우드 컴퓨팅 배포 모델

  1. 클라우드 기반 배포
    : 앱의 모든 부분을 클라우드에서 실행
    기존 앱을 클라우드로 마이그레이션
    클라우드에서 새로운 앱 설계 및 구축
  2. 온프레미스(프라이빗 클라우드) 배포
    : 가상화 및 리소스 관리 도구를 사용하여 리소스 배포
    앱 관리 및 가상화 기술 사용하여 리소스 사용량 증가
  3. 하이브리드 배포
    : 클라우드 기반 리소스를 온프레미스 인프라에 연결
    클라우드 기반 리소스와 레거시 IT 앱을 통합

클라우드 컴퓨팅 이점

  1. 가변 비용
    : 컴퓨팅 리소스를 사용한 만큼만 비용 지불(가변 비용)
    기술 리소스를 사용하기 전 먼저 투자할 필요 없음(초기 비용)
    초기 비용 → 가변 비용
  2. 비용 최적화
    : 데이터 센터 운영 등 비용 관리에 대한 시간 절약
    → 앱과 고객에 집중(구축 시간 증가)
  3. 용량
    : 필요에 따라 축소 및 확장(확장성)
    → 필요한 인프라 용량을 추정할 필요가 없음
  4. 거대한 규모의 경제
    : 집계된 고객 사용량으로 인한 이점
    인프라를 소유할 때보다 가변 비용 낮아짐
    수많은 고객 사용량 누적 → 종량제   요금 감소
  5. 속도 및 민첩성
    : 필요한 리소스를 얻는 데 몇 분 소요
  6. 몇 분 만에 전세계에 배포
    : AWS 글로벌 인프라 사용

클라우드 인프라의 구성 요소

데이터 센터, 리전, 가용영역

데이터 센터(DC)

물리적인 서버와 네트워크 장비가 위치한 시설, AWS 서비스를 제공하기 위한 핵심 인프라

리전(Region)

클라우드 서비스 제공 구역, 세개 이상의 가용영역으로 구성

 

리전 선택

  1. 데이터 거버넌스 및 법적 요구사항 준수
  2. 고객과의 근접성
  3. 요금
  4. 리전 내에서 사용 가능한 서비스

가용영역(AZ)

하나 이상의 데이터 센터로 구성, 리전 내의 단일 데이터 센터 또는 데이터 센터 그룹

관계 및 구조

  • 데이터 센터(DC) → 가용영역(AZ) → 리전(Region)
    • 데이터 센터는 AZ의 구성 요소
    • AZ는 하나 이상의 데이터 센터로 구성
    • 여러 AZ가 모여 하나의 리전을 형성

AWS Outposts

온프레미스 위치 내에서 하이브리드 방식으로 AWS 인프라, 서비스, 도구를 실행하는 데 사용할 수 있는 서비스

온프레미스 위치에 설치되면 가장 가까운 AWS 리전에 연결

AWS 관리 콘솔

AWS 서비스 엑세스 및 관리용 웹 기반 인터페이스


Amazon Elastic Compute Cloud (Amazon EC2)

클라우드에서 안전하고 크기 조정이 가능한 컴퓨팅 용량 사용

몇분만에 서버 인스턴스 부팅, 사용한 만큼만 비용 지불

 

EC2 요소

요소를 지정해야 하지만, 언제든지 바꿀 수 있음

  • type: M, C, R, T
  • spec: S, M, L
  • ebs: block storage
  • SG: 보안

EC2 인스턴스 유형

  1. 범용
    컴퓨팅, 메모리, 네트워킹 리소스를 균형있게 제공 → 다양한 워크로드에 적합
  2. 컴퓨팅 최적화
    고성능 프로세서 제공 → 컴퓨팅 집약적 앱, 배치처리 워크로드에 적합
  3. 메모리 최적화
    빠른 성능 제공 → 고성능 DB에 적합
  4. 가속 컴퓨팅
    하드웨어 엑셀러레이터로 데이터 처리 가속화 → 앱 스트리밍, 그래픽 워크로드에 적합
  5. 스토리지 최적화
    낮은 지연시간 및 높은 초당 입출력 작업 수(IOPS) 제공 → 데이터 웨어하우징 앱에 적합

EC2 Life cycle

  • 상태: pending → running ↔ stop (필요없어서 잠깐 끌 때)
                                             → terminate (더이상 안 쓸 때)
  • 과금: running할 때

EC2 인스턴스 요금 옵션

  1. 온디맨드
    초기 선결제 비용이나 최소 약정 없음 → 불규칙한 단기 워크로드
  2. 스팟
    온디맨드 대비 비용 절감 → 시작 및 종료 시간이 자유로운 워크로드
  3. 예약
    온디맨드 요금에 비해 결제 할인 제공 → 1년 또는 3년 약정 필요
  4. Compute Savings Plans
    컴퓨팅 사용량이 일정할 경우 온디맨드에 비해 비용 절감 → 1년 또는 3년 약정 필요
  5. 전용 인스턴스
    단일 고객용 하드웨어의 VPC에서 실행되는 EC2 인스턴스 → 표준보다 더 높은 비용
  6. 전용 호스트
    단일 고객용 EC2 인스턴스 용량을 갖춘 물리적 서버 → 가장 비용이 많이 들음

EC2 Auto Scaling (수동 크기 조정)

컴퓨팅 요구사항의 변화에 따라 용량 조정, 동적 크기 조정 및 예측 크기 조정 사용

  • 동적 크기 조정: 수요 변화에 대응
  • 예측 크기 조정: 예측된 수요에 따라 적절한 수의 EC2 인스턴스를 자동으로 예약
  • 두가지 함께 사용

Auto Scaling 그룹 생성할 때, EC2 인스턴스 수 설정

  1. 최소용량
  2. 희망용량
  3. 최대용량

Elastic Load Balancing

워크로드의 크기는 동일하게 유지되지만, 워크로드가 EC2 인스턴스 전체에 균등하게 분산되어 균형 유지,

여러 리소스에 자동으로 트래픽 분산, Auto Scaling 그룹에 단일 접점 제공

애플리케이션 아키텍처

  • 모놀리스 애플리케이션: 한 구성 요소에서 장애가 발생하면 다른(혹은 전체) 구성 요소에도 장애 발생
  • 마이크로서비스: 단일 구성 요소에 장애가 발생했을 때 애플리케이션 가용성을 유지, 애플리케이션 구성 요소 느슨히 결합

Amazon Simple Notification Service (Amazon SNS)

게시/구독 서비스

메시지가 주제에 게시됨, 구독자는 자신의 주제에 대한 메시지를 즉시 수신

Amazon Simple Queue Service (Amazon SQS)

메시지 대기열 서비스

소프트웨어 구성 요소 간에 메시지를 전송/저장/수신, 다른 서비스를 사용할 필요 없이 메시지를 대기열에 넣음


가상 서버를 사용하는 컴퓨팅

ex. Amazon EC2

  1. 인스턴스를 프로비저닝
  2. 사용자 코드 업로드
  3. 애플리케이션이 실행되는 동안 계속해서 인스턴스 관리

서버리스 컴퓨팅

ex. AWS Lambda

  • 코드가 서버에서 실행되지만, 서버를 프로비저닝하거나 관리할 필요가 없음
  • 서버리스 애플리케이션을 자동으로 확장(확장성)
    처리량 및 메모리 등 소비 단위 수정하여 용량을 조정할 수 있음(유연성)

AWS Lambda

  • 서버를 프로비저닝하거나 관리하지 않고 코드 실행
  • 코드가 실행되는 컴퓨팅 시간에 대해서만 비용 지불
  • 다른 AWS 서비스를 사용하여 코드를 자동으로 트리거
    (코드는 트리거 될 때만 실행됨)

Container

애플리케이션과 해당 실행에 필요한 모든 파일, 라이브러리, 종속성을 하나의 패키지로 묶어 격리된 환경에서 실행할 수 있도록 하는 기술

Docker

컨테이너를 생성, 관리, 배포하는 데 사용하는 플랫폼이자 도구

전체 관계 구조

1. 컨테이너와 Docker

  • Docker를 사용해 컨테이너를 빌드하고 실행

2. 이미지 저장소(Register)

  • Docker Hub, Git, ECR 등에서 Docker 이미지를 저장 및 관리

3. 오케스트레이션 서비스

  • ECS나 EKS가 컨테이너를 클러스터 단위로 관리하고 배포
  • ECS
    컨테이너화된 애플리케이션 실행 및 크기 조정
    간단한 API 호출을 사용해 Docker 지원 애플리케이션 제어
  • EKS
    쿠버네티스 애플리케이션 실행 및 크기 조정
    새로운 기능으로 애플리케이션을 손쉽게 업데이트

4. 실제 실행 환경

  • ECS/EKS는 컨테이너를 EC2(인프라 제어 가능) 또는 Fargate(서버리스 자동 관리) 위에서 실행
  • Fargate
    ECS, EKS를 사용하여 서버리스 컨테이너 실행
    사용한 리소스에 대해서만 비용 지불

VPC (Virtual Private Cloud)

AWS 클라우드의 격리된 섹션을 프로비저닝, 고객이 정의한 가상 네트워크에서 리소스 실행 가능

서브넷

격리된 리소스 그룹을 배치할 수 있는 VPC 섹션

  • 퍼블릭 서브넷
  • 프라이빗 서브넷

인터넷 게이트웨이

VPC와 인터넷 간의 연결, 인터넷의 퍼블릭 트래픽이 VPC에 엑세스하도록 허용하려면 인터넷 게이트웨이를 VPC에 연결

  • 가상 프라이빗 게이트웨이
    : VPC 내의 프라이빗 리소스에 엑세스하기 위해 사용
  • AWS Direct Connect
    : 데이터 센터와 VPC 간에 전용 프라이빗 연결을 설정하는 서비스

NACL (네트워크 엑세스 제어 목록)

서브넷의 가상 방화벽

  • 기본 NACL: 인바운드 및 아웃바운드 트래픽 허용
  • 사용자 지정 NACL: 모든 인바운드 및 아웃바운드 트래픽 거부

상태 비저장(stateless) 패킷 필터링

NACL은 상태 비저장 패킷 필터링을 수행

패킷이 서브넷에서 나가려면 아웃바운드 규칙을 기준으로 검사되어야 함

아무것도 기억하지 않고 각 방향(인바운드 및 아웃바운드)으로 서브넷 경계를 통과하는 패킷만 확인

허용 및 거부 규칙을 지원하며 결정할 때 규칙을 가장 낮은 번호부터 시작하여 순서대로 평가함

보안 그룹

EC2 인스턴스의 가상 방화벽

  • 모든 인바운드 트래픽을 거부
  • 모든 아웃바운드 트래픽을 허용

상태 저장(stateful) 패킷 필터링

보안 그룹은 상태 저장 패킷 필터링을 수행

보안 그룹은 들어오는 패킷에 대해 내린 이전 결정을 기억함

허용 규칙만 지원하며 트래픽 허용 결정 전에 모든 규칙을 평가


DNS (도메인 이름 시스템) 해석

도메인 이름을 IP 주소로 변환


AWS Storage 유형

  1. File (NAS)
    - EFS: linux
    - FSx for win: windows
  2. Block (SAN)
    파일을 동일한 크기의 데이터 조각(블록)으로 구분
    - EBS(Elastic Block Store): non-volatile
       ↘ EBS 볼륨: 유지되는 데이터를 포함
       ↘ EBS 스냅샷: 증분 백업
    ebs obtimizer: ec2, ebs를 분리해줌
    - instance store: volatile
    → EC2에서 stop하거나 terminate하면 데이터가 날라가버림에도 성능이 좋음
  3. Object
    S3(Simple Storage Service): 저장 비용, 호출(API) 비용
    - S3-STD: 백업 → 데이터 바로 확인 가능
    - S3-IA: 백업
    --------------------------------------------------------------------
    - S3-glacier: 아카이브 → log를 바로 확인할 수 없음

데이터베이스

  • 관계형 데이터베이스(RDBMS)
    : 데이터를 테이블(표) 형태로 저장하고 관리하는 데이터베이스 모델
    데이터를 행(Row)과 열(Column)로 구성된 관계를 통해 구조화하고 연결, SQL 사용
    • OLTP (Online Transaction Processing)
      : 실시간 트랜잭션 처리
      ex. RDS, Aurora
    • OLAP (Online Analytical Processing)
      : 대량의 데이터를 분석하고 의사 결정을 지원하기 위한 시스템
      ex. DW, Redshift
  • 비관계형 데이터베이스(Non-Relational Database)
    : 관계형 모델을 따르지 않는 모든 데이터베이스
    ex. DynamoDB(Key-Value), MongoDB(Document)
    • NoSQL(Not Only SQL): 다양한 데이터 모델(Key-Value, Document, Column-Family, Graph)을 사용

Redshift

빅데이터 분석에 사용할 수 있는 데이터 웨어하우징 서비스
여러 원본에서 데이터를 수집하여 데이터 간의 관계 및 추세를 파악할 수 있음

DynamoDB

서버리스 키 값 데이터베이스 서비스, 하루 최대 10조 개 요청 처리

용량 변경에 따라 자동으로 확장, 축소되어 일관된 성능 유지

DMS (Database Migration Service)

관계형 DB, 비관계형 DB, 기타 유형의 데이터 스토어 마이그레이션
원본 DB와 대상 DB 간에 데이터를 이동할 수 있음


공동 책임 모델

리소스를 안전하게 유지할 책임은 고객과 AWS 모두에게 있음

사용자 환경의 일부분을 AWS가 책임지고, 고객은 다른 부분을 책임짐

  • 고객 책임: 클라우드 내부의 보안
    • 인스턴스 운영체제
    • 호스트 기반 방화벽
    • 애플리케이션
    • 계정 관리
    • 보안 그룹
  • AWS 책임: 클라우드 자체의 보안
    • 데이터 센터의 물리적 보안
    • 하드웨어/소프트웨어 인프라
    • 네트워크 인프라
    • 가상화 인프라

MFA(다중 인증)

AWS 계정 및 IAM 사용자를 보호하기 위해 사용되는 2단계 인증 방식

IAM(Identity and Access Management)

AWS 계정 내 모든 사용자 및 권한을 관리

IAM 기능

  • IAM 사용자: IAM에서 생성된 개별 사용자로 특정 권한을 부여받음
  • IAM 정책: AWS 서비스 및 리소스에 대한 권한을 허용하거나 거부하는 JSON 문서
  • IAM 그룹: IAM 사용자 모음
  • IAM 역할: 임시로 권한에 엑세스하기 위해 수임할 수 있는 자격
  • 다중 인증: AWS 계정에 추가 보호 계층을 제공

AWS 계정 루트 사용자

AWS 계정 생성 시 생성되는 최고 권한 사용자

첫 번째 IAM 사용자를 생성한 후 다른 사용자 생성 권한을 제공
새 IAM 사용자로 로그인하고 계속해서 다른 사용자를 생성하거나 제한된 종류의 작업에 대해서만 루트 사용자에 엑세스

AWS Organizations

고객이 중앙 위치에서 여러 AWS 계정을 통합하고 관리할 수 있도록 지원

SCP 사용, 조직을 생성하면 자동으로 루트 생성

  • 루트: 조직의 모든 계정에 대한 상위 컨테이너
  • SCP(서비스 제어 정책): 조직의 계정에 대한 권한을 중앙에서 제어
  • OU(조직 단위): 계정을 OU로 그룹화

AWS Artifact

보안 및 규정 준수 보고서와 일부 온라인 계약에 온디맨드로 엑세스할 수 있음

  • AWS Artifact 계약
  • AWS Artifact 보고

고객 규정 준수 센터

AWS 규정 준수에 대한 리소스 포함


WAF(Web Application Firewall)

일반적인 웹 취약점 공격에서 웹 애플리케이션과 API를 보호

CloudFront, Application Load Balancer와 함께 작동

트래픽을 차단하거나 허용, 리소스를 보호하기 위해 WACL(웹 엑세스 제어 목록) 사용

DoS 및 DDoS 공격

구분 DoS (Denial of Service) DDoS (Distributed Denial of Service)
정의 단일 시스템에서 과도한 요청을 전송하여 서비스를 방해하는 공격 여러 시스템(봇넷)을 이용해 분산된 방식으로 서비스를 방해하는 공격
공격 규모 단일 출처에서 발생 다수의 출처에서 동시다발적으로 발생
사용 자원 하나의 컴퓨터 또는 네트워크 장치 네트워크에 연결된 여러 장치(예: 봇넷)
공격 감지 비교적 쉽게 감지 가능 출처가 분산되어 있어 감지 및 방어가 어려움
피해 범위 특정 서버 또는 네트워크 대규모 네트워크, 여러 서버에 걸친 피해 가능
공격 복잡성 상대적으로 낮음 매우 높음
공격 방법 특정 서비스에 과도한 요청 전송 분산된 다수의 장치에서 트래픽을 발생
예시 SYN Flood, UDP Flood DNS Amplification, HTTP Flood
방어 방법 트래픽 제한, 방화벽 설정 WAF, AWS Shield(DDoS 방어 서비스) 사용
공격자 비용 낮음 봇넷 확보 등으로 인해 상대적으로 높음
목표 특정 서비스 중단 광범위한 서비스 및 네트워크 중단

Amazon Inspector

애플리케이션에 대해 자동화된 보안 평가를 수행할 수 있음


KMS(Key Management Service)

고객이 사용하면 암호화 키를 사용하여 암호화 작업을 수행하도록 지원

키에 필요한 특정 수준의 엑세스 제어를 선택할 수 있음

데이터 보안

  • 전송 중 암호화
  • 저장 중 암호화
구분 전송 중 암호화 저장 중 암호화
대상 네트워크를 통해 이동하는 데이터 디스크, 데이터베이스, 클라우드 등 저장소에 있는 데이터
위협 도청, 변조, 중간자 공격 유출, 무단 수정, 물리적 도난
주요 기술 TLS/SSL, IPSec, VPN, 인증서 AES, KMS, RBAC, 백업, 해싱
보안 초점 데이터가 안전하게 목적지에 도달하도록 보장 저장소에서 데이터의 기밀성과 무결성을 유지
실행 주체 주로 네트워크 계층에서 동작 주로 저장 계층에서 동작
  • 암호화키 사용
구분 대칭키 암호화 비대칭키 암호화
정의 동일한 키로 데이터를 암호화하고 복호화. 공개 키(Encryption)와 개인 키(Decryption)를 사용.
키의 개수 1개 (공유 키) 2개 (공개 키와 개인 키)
속도 빠름 (연산 비용 낮음) 느림 (연산 비용 높음)
보안성 키 분배 과정에서 보안 위험 존재 키가 분리되어 있어 보안성이 높음
대표 알고리즘 AES, DES, Blowfish RSA, ECC, DSA
키 관리 키 분배 및 저장이 까다로움 공개 키는 공개 가능, 개인 키는 비밀 유지 필요

Amazon GuardDuty

AWS 제품 및 서비스에 대한 지능형 위협 탐지 기능을 제공하는 서비스


AWS CloudTrail

AWS 계정에서 이루어진 API 호출 및 활동 로그를 기록하는 서비스

  • 기록되는 정보
    : API 호출자 ID, API 호출 시간, API 호출자의 소스 IP 주소
  • 무결성(Integrity) 보장: 데이터가 허가 없이 변경되지 않았음을 보장
    • 변조방지
    • 규정준수

AWS Trusted Advisor

AWS 환경을 검사하고 AWS 모범 사례에 따라 실시간 권장사항을 제시하는 웹 서비스


Observability

구분 Logs Traces Metrics
정의 이벤트의 세부 정보 요청(Request)의 전체 흐름 시스템 상태를 나타내는 정량적 데이터
사용 목적 디버깅, 감사, 상태 추적 분산 시스템의 요청 흐름 및 성능 병목 분석 시스템 성능 모니터링 및 SLA 준수
데이터 형식 텍스트, 이벤트 중심 그래프 기반, 트랜잭션 중심 숫자 값 기반, 시계열 데이터
시간적 특성 과거에 발생한 이벤트 기록 현재 요청 흐름 및 지연 시간 실시간 데이터 및 시간 경과에 따른 동향 분석
시각화 도구 Kibana, CloudWatch Logs X-Ray, Jaeger, Zipkin CloudWatch Metrics, Grafana, Prometheus
주요 단점 과도한 양의 데이터로 분석이 어려울 수 있음 복잡한 트랜잭션 환경에서는 데이터 과부하 위험 상세 정보 부족, 문제의 정확한 원인 파악은 어려움

Lambda 요금

사용한 컴퓨팅 시간에 대해서만 비용 지불

함수 요청 횟수에 따라 비용 지불

EC2 요금

온디맨드 인스턴스가 실행되는 시간에 대해서만 비용 지불

권장 사용 사례에 스팟 인스턴스를 사용하여 비용 절감

S3 요금

  1. 스토리지
  2. 요청 및 데이터 검색
  3. 데이터 전송
  4. 관리 및 복제

AWS Budgets

서비스 사용량 및 비용에 대한 임계값을 설정하는데 사용할 수 있는 도구

AWS Cost Explorer

시간 경과에 따른 AWS 비용 및 사용량을 시각화하고 이해라고 관리하는 데 사용할 수 있는 도구

AWS Support Plan

  • Developer
  • Business
  • Enterprise On-Ramp
  • Enterprise

TAM(Technical Account Manager)

AWS 주 연락 창구

AWS Marketplace

AWS에서 실행되는 서드 파티 소프트웨어 리스팅을 제공하는 디지털 카탈로그

  • 비즈니스 애플리케이션
  • 데이터 및 분석
  • DevOps
  • 인프라 소프트웨어
  • IoT
  • 기계 학습
  • 마이그레이션
  • 보안

AWS Cloud Adoption Framework

AWS로 빠르고 원활하게 마이그레이션할 수 있도록 6가지 집중 영역별로 구성된 지침(관점) 제공

관점

  • 비즈니스 역량
    • 비즈니스: IT가 비즈니스 요구사항에 맞게 조정, IT투자가 주요 비즈니스 결과에 연계되도록 보장
    • 인력: 성공적인 클라우드 채택을 위한 조직 전반의 변결 관리 전략 개발을 지원
    • 거버넌스: IT 전략이 비즈니스 전략에 부합하도록 조정하는 기술 및 프로세스에 중점을 둠
  • 기술 역량
    • 플랫폼: 클라우드에 새로운 솔루션을 구현하고 온프레미스 워크로드를 클라우드로 마이그레이션하는 데 필요한 원칙과 패턴이 포함되어 있음
    • 보안: 조직이 가시성, 감사 가능성, 제어 및 민첩성에 대한 보안 목표로 충족하도록 보장
    • 운영

마이그레이션 전략(7R)

  1. 재배치: 하나 이상의 애플리케이션으로 구성된 다수의 서버를 온프레미스 플랫폼에서 클라우드 버전 플랫폼으로 이전
  2. 리호스팅(리프트 앤 시프트): 애플리케이션을 변경 없이 이전
  3. 리플랫포밍(리프트, 팅커 앤 시프트): 실질적인 이점을 실현하기 위해 클라우드 최적화 수행
  4. 리팩터링(리아키텍팅): 클라우드 네이티브 기능을 사용하여 애플리케이션을 설계하고 개발하는 방식을 재구성
  5. 재구매: 기존 라이선스를 서비스형 소프트웨어 모델로 전환
  6. 유지: 비즈니스에 중요한 애플리케이션을 소스 환경에 유지
  7. 사용 중지: 더이상 필요하지 않은 애플리케이션 제거