[AWS] 강의 내용정리

sso😊·2022년 7월 5일
0

AWS

목록 보기
5/10
post-thumbnail
목차에 따른 추가개념 위주로 정리하였음.

다이어그램 생성 사이트 :draw.io
https://app.diagrams.net/

Introduction

01. 클라우드 컴퓨팅의 이점(6가지)

02. AWS 장점

    • Tip) AWS의 Public Documents 의 영어문서 변경이 더 빠르기 때문에, 문서를 확인 할 때, 한글과 함께 영어문서도 함께 확인 할 것(한글문서는 변경사항이 반영안되어있을 수 있음)
    • 26개의 리전, 각 리전당 복수개의 가용 영역, 310개 이상의 엣지로케이션
    • 엣지로케이션은 CF와 함께 지연시간을 줄이기 위해 사용됨.(고객이 직접 지정해 사용할수는 없음)

03. 주요 AWS 서비스

    1. 컴퓨팅서비스: EC2 , Auto Scaling
    2. 스토리지 서비스 : EBS(DAS 개념), S3(객체스토리지, API로 호출, 스토리지 3중화 ,개수와 데이터 사이즈 제한), Glacier(자주 접근X데이터, 옵션으로 빠른 검색도 지원함)
    3. 데이터베이스 서비스 : RDS(managed 서비스, 35일 이내에 특정시점으로 롤백 가능)
    4. 네트워크 서비스: VPC(고객 계정마다 리전당 1개로 Any open된 172.xx 대역의 Default VPC 생성됨)
    5. 보안 서비스: 책임 공유 모델(고객책임, AWS책임. but, maanaged 서비스의 경우는 좀더 유연하게 볼 수 있음),IAM(사용자, 그룹, 정책),Cloudtrail(감사,보안 인증을 받기위해 필요, 90일간의 모든 데이터는 콘솔에서 확인 가능, 이후에는 S3에 저장)
    6. 모니터링 서비스 :CloudWatch(임계치 및 알람설정,API로도 제공되어서 그라파나에서도 사용가능)


EC2 / ELB 

01. Global Infrastructure

    • AWS 자원(리소스) 레벨
      • 글로벌 레벨(리전에 상관없이): IAM ,Route53, WAF, CF
      • 리전 레벨(특정 리전을 지정): S3, DynamoDb,...
      • 가용영역 레벨(특정 가용영역 지정) : EC2, EBS(→ 둘은 같은 가용영역 내에서 사용)

02.  EC2 Overview

    • EC2는 하이퍼바이저 위의 가상 서버로 가용영역 레벨.
    • 인스턴스 유형 - 넥슨에서는, 컴퓨팅이 중요한 경우 C5, 싱글코어가 중요한 경우 Z1d를 사용.
    • 인스턴스 크기 - c5.8xlarge = c5.xlarge * 8 → 동일한 하드웨어를 어떻게 쪼개서 사용할지 결정
    • spot인스턴스 (비용옵션) - 단기간 사용시에 적합(ex. 일시적인 배치작업에서 여러개의 EC2가 필요한 경우)
    • 운영체제→ 넥슨은 MS Windows 2012/2016/2019를 많이 사용 중
    • 인스턴스 수명주기
      • 실행중(running) - 과금 발생
      • 정지(Stopped) - 과금 안됨(but,스토리지 비용은 부과)
      • 종료됨(Terminated) - 완전히 제거, 과금 안됨*(but, 스토리지는 옵션에 따라)

03. EC2 Security and Design

    • EBS는 EC2와 다른 하드웨어에 존재하며 네트워크로 통신(Host 컴퓨터 문제시에도 안정성 유지 가능)
    • EBS / instance Store 중 무엇을 사용하는지는 인스턴스 생성시의 AMI에 명시
    • 인스턴스 스토어는 같은 호스트 컴퓨터에 있어 더 빠른 속도, but 정지-시작 시 데이터가 없어짐으로, 임시저장소 목적
    • EC2 보안그룹 - 상태를 저장하는 stateful한특징, 소스에 다른 보안그룹 명 입력가능,EC2의 랜카드 별로 지정가능
    • default VPC와 사용자 생성 VPC는 공인(public)IP 자동 할당의 여부( default VPC는 자동할당)
    • EC2 키페어는 EC2접속을 위한 key로 IAM Access Key 와는 다른 개념
    • 인스턴스 메타데이터에 인스턴스 아이디 등의 정보가 있음(curl로 접속)

04. Elastic Load Balancing

    • L4(tcp/udp), L7(http/https) 서비스 → 접속 프로토콜에 따른 분류
    • 기본 2개 이상의 가용영역 에서 사용→ 하나의 가용영역 장애시 다른 ELB에서 리소스 처리 가능(Cross-Zone Load Balancing)
    • CLB/ALB의 IP는 변경 가능하므로 도메인으로 접근할 것(NLB는 고정 IP할당← client IP 위치가 필요한 경우에 사용)



 

Storage 

01. AWS Storage Service

  • 블록 스토리지 - NTFS,UFS(windows), ExtFS,ZFS(Linux) 프로토콜 사용 
  • 파일스토리지  - SMB(윈도우즈), NFS(리눅스) 프로토콜 사용 / NAS 스토리지 / 직접연결 보다는 Network 연결 / 다수의 서버에 연결시에 파일 공유에 이용가능
  • 오브젝트 스토리지 - 다양한 데이티어 유형 / API 기반의 접근(http/httpps)


  • AWS Snow Family(ex. Snowball, Snowmobile..) - 엄청난 양의 데이터 이동 시에, 네트워크 기반이 아닌 물리적으로 이동시키는 서비스

02. Block Storage

  • EBS- 인스턴스와는 별도의 서버에 있으며, 인스턴스와는  네트워크로 연결된다.  → EC2와 물리적으로 독립적
    • 비용지불시 사용한 용량이 아닌 생성한 용량 만큼 지불
    • 사이즈를 늘리거나 추가 생성은 가능하지만, 사이즈를 줄일 수는 없음(→ 새로운 사이즈의  EBS 생성 후 이동시키는 방법 사용)
    • 데이터가 저장될 때와 이동할 때에 암호화가 기본으로 제공
    • 보통 하나의 EC2 인스턴스가 다수의 EBS 볼륨과 연결 가능(Nitro기반의 최신 인스턴스는 최대 28개까지 생성 및 연결 가능)
    • 가용영역 레벨의 서비스 → 단일 가용영역에서 사용
    • EBS 종류별 비교
      • SSD 기반
        • 범용모드(gp2,gp3 → gp2는 credit과 버스트 기능, 용량에 따른 IOPS/ gp3는 복잡한부분을 없애고,필요한 만큼 구매 후 사용)
        • 프로비저닝 된 IOPS 모드(io1,io2) → i/o 집중적인 작업에 적합함(최대 64,000 IOPS)
      • HDD 기반 - 저비용 / iops 보다 순차적 작업이 필요할 때
  • Instance Store - EC2 인스턴스와 같은 호스트에 있음
    • Stop/Start로 재기동 시에 , 하드웨어가 바뀐다면 데이터는 사라짐(휘발성)

03. File Strage

  • EFS -  완전관리형 서비스(managed service)
    • 동시접속을 지원하는 NFS서버의 특징

04. Object Storage

  • S3 - 다양한 클래스를 제공하며, 계속해서 신기능이 추가 됨
    • Access Frequency에 따른 클래스 분류



 

Security 

01. 데이터센터 보안(AWS 측)

02. 보안 책임 공유 모델

서비스 제공 유형

  • 인프라 서비스 - 사용자가 직접 운영 체제를 제어,AWS는 물리적 파트만,고객의 부담이 큼 (ex. EC2,VPC,EBS)
  • 컨테이너 서비스  -  Managed Services가 해당(ex. RDS)
  • 추상화된 서비스 - Serverless Services가 해당,고객은 고객데이터와 클라이언트 암호화만 관리, AWS의 부담이 비교적 큼(ex. S3)


주요 규제/표준 준수 (ex. K-ISMS)

AWS Artifact  - 고객의 보안인증을 돕기 위해 AWS Artifact에서 AWS의 인증내역을 조회 가능              

                                     

03. 사용자 및 접근 관리

사용자

  • AWS 루트 Account
  • IAM 사용자 - 접근 권한 소유
  • IAM 그룹 - 다수의 사용자 관리

추가적인 관리기능

  • 정책(Policy) - Access 관리 방법
  • Access Key - 콘솔이 아닌 CLI에서 AWS API를 호출 할 경우 필요
  • MFA - 이중보안 설정

AAA Framework

  • 인증(Authenticate) - 사용자 아이디(콘솔용), Access Key(API 호출용),  MFA
  • 권한(Authorize) - IAM Policy, (사용자기반 정책, 리소스기반 정책) , JSON으로 작성되
  • 책임 추적성,감사(Audit) - 로깅, CloudTrail

IAM 역할(Role)

  • Access Key와 같은 명시적인 권한 증명 필요 X
  • 고정적인 값이 아님 → 임시적 토큰

04. 암호화

KMS( Key Management Service) - 키 관리 서비스

05. 감사

종류

  • CloudTrail
  • CloudWatch Events
  • AWS Inspector - CVE(Rule 패키지 중 AWS측에서 취약점 검사)
  • AWS Config - 1개의 리소스관점에서 기록/추적
  • Amazon Macie - 민감한 데이터
  • Trusted Advisor - 리포팅 환경 제공(사용자의 AWS 환경에서)



 

Networking

01. AWS Global Infrastructure

AWS 주요 네트워킹 서비스


  • VPC
  • VPN - 기본 인터넷망 +AWS 보안 
    • Client VPN(사용자와 VPC)
    • Site-to-Site VPN (온프레미스와 VPC)
  • Direct Connect - 전용망 (온프레미스와 VPC)
  • ELB - VPC 레벨의 LB 서비스
  • Route53 - DNS 서비스

02. VPC

독립된 가상의 클라우드 네트워크

  • IP대역- CIDR 블록으로 지정( /16~ /28) → 생성 후 변경이 불가능하므로 초기생성시 확장성을 고려해야 함
  • 서브넷 -  5개의 예약된 IP주소가 있음→ 제외하고 사용 가능 , 서브넷 생성시  VPC IP대역 이내에서 IP대역 지정 필요
  • 라우팅 테이블 - 서브넷단위로 생성, 패킷의 방향을 지정함(ex. IP 대역에 따라 → IGW와 VGW로 보낼 수 있음)
  • 보안그룹- ENI단위, stateful(Inbound 허용시 Outbound도 허용) , ONLY 허용 가능.
  • NACL - 서브넷 단위, Stateless(Inbound, Outbound 트래픽 모두 명시적 허용 필요), , 허용과 거부 모두 가능

VPC 확장

  • NAT Gateway - Public 서브넷에 위치하여 Private 서브넷의 패킷을 퍼블릭으로 변환하는 역할, 라우팅 테이블로 관리, Elastic IP필요
  • ㅊEIP - 리전당 5개(soft-limit)
    • Allocation(IP할당) / Release(반납) → EIP 할당 받고 사용하지않으면 과금
    • Associate(EIP 인스턴스에 연결) / Disassociate(분리)

With On- Premise

  • VPN(site-to-site VPN) -전용선이 아닌 인터넷 망 사용
  • Direct Connect -DX Location(ex. KINIX,U+)을 통해 전용망으로 직접연결
  • VPN과 DX를 같이 사용, hybrid방식으로 사용 가능

Network Option

  • VPC Endpoints
    • Interface Endpoints(다양한 서비스)- DNS방식
    • Gateway Endpoints(S3/DynamoDB) - 인터넷을 경유(NAT, IGW)하지 않고 같은 리전내의 VPC에서 서비스와 직접 연결 가능(NAT를 거치는 것 보다 유리한 비용), 라우팅 테이블 사용
  • VPC Peering - 동일리전/다른리전/다른 어카운트 간에 전용 연결, 라우팅 테이블 이용(단점: 1:1연결만 됨으로 필요 갯수가 많아질 수 있음)
  • Transit Gateway -  중앙집중식 라우팅 ←  VPC 피어링의 단점을 보완


  • VPC Flow logs - ENI 단위 Network 패킷 수집

03. VPN

  • AWS site-to-site VPN - 2개의 터널로 이중화(고가용성)

04. Direct Connect

  • VPN보다 낮은 지연시간과 높은 안정서 ㅇ제공
  • 2의 DX Location 사용을 권장
  • 물리적 분리 가능(→NEXON은 독자적 전용선 사용중)

05. Route53

  • 유일하게 100% SLA(가용성 보장 지표) 제공


추가 Network Issue

Q.)  AZ가 2개 이상일 때, 각 EC2 접근에 NAT Gateway가 한개 만 있을 경우와 각 A Z별로 NAT Gateway를 두는것 차이점 ?

 A.) 

  1. 고가용성 측면 - 하나의 AZ 장애 발생시에 인터넷 연결에 지장이 생기지않게 하기위해.
  2. 비용적 측면 - 같은 AZ에 있는 NAT Gateway를 사용하는것이 다른 AZ에 있는 NAT Gateway를 사용하는 것보다 비용이 낮음 (but,퍼블릭 인스턴스에서 접근하는 경우에는 비용x)



 

Database 

The Data Flywheel

  1. Break free from legacy database
  2. Move to managed
  3. Modernize your data warehouse
  4. Build data-driven apps
  5. Turn data to insights

01. Amazon RDS

주요 상용 및 Open Source Database를 관리형 데이터베이스로 제공

장점

  • 관리의 용이성
    • CloudWatch → Enhanced Monitoring(옵션)을 사용하면 더 상세히 사용 가능(but, 비용 발생), CloudWatch Logs를 이용해 audit log나 slow log를 볼 수 있음
    • RDS에서는 Performance Insights에서는  쿼리수행 내역 등을 보여줌(쿼리튜닝시 사용가능, Only Mysql, PostgeSQl)
  • 규모 확장의 유연성
    • Scale up에서 다양한 옵션(트랜잭션, 데이터 저장)
  • 고가용성
    • 복수 가용영역 사용 가능(생성시 Multi-AZ옵션 선택)
    • Read Replica(Primary 인스턴스에 읽기/쓰기 요청이 집중된 워크로드에서, read replica를 사용하여 분산처리 가능, 크로스 리전 복제 가능, 장애복구 옵션)
    • Automated Backup - 하루에 한번 지정된 시간에 백업 수행 (failover를 위한 standby 인스턴스에서 백업을 진행하기 때문에, 성능저하는 X)
  • 높은 보안 수준
    • 데이터 기본 암호화, Data Encryption 옵션 사용시, CMK사용하여 이중으로 암호화 가능
    • 많은 보안 규제를 충족

02. Amazon Aurora

MySQL 과 PostgreSQL에서 비용, 성능 측면에서 더 뛰어남

  • 3개의 AZ를사용(각 AZ에 Primary 인스턴스1개, Replica 인스턴스 2개), 4/6 quorum
  • 직접복제(data)와 double-write 복제는 일어나지 않음(but, change log데이터는 복제가 됨) ← 성능향상

03.Amazon Redshift

Data warehouse 서비스, 1/4 수준의 비용

OLAP(트랜잭션보다는 조회(Selct/read)에서 성능 , 분석에 초점↔ OLTP(select보다는 write 작업이 많은) 형태로 방대한 데이터를 한곳에 집중시킨 것

  • 컬럼 기반 데이터베이스(row X)
  •  Amazon Redshift Spectrum - S3의 데이터를 쿼리형태로 바로 읽어서 볼수 있는 기능
  • Amazon Redshift ML(Preview) - SQL 명령문으로 ML모델을 생성하고 조회도 가능

04. Amazon Dynamo DB

빠르고 유연한 Serverless NoSQL database Service

  •  굉장히 많은 데이터 요청(request)를 작은 지연시간으로 받을 수 있다. (미리 프로비저닝 가능 rcu/wcu)
  • Table 구조와 GSI(Global Secondary Index) - 여러개의 파티션으로 분산될 수 있도록(partition  key 설정 필수, sort key는 선택)
  • 확장성을 고려한 DynamoDB아키텍쳐 → ex. ~~게임 서비스의 ~~요구사항에 맞게 partitoin key 설계)

05. Amazon DocumentDB

MongoDB 호환 Database

  • 기존 mongoDB보다 동기화 측면에서 유리, 성능 적인 이점

06. Elasticache

완전 관리형 in-memory database 서비스 (Redis/memcached)

  • 게임서비스에도 많이 사용됨(ex. 게임세션서버)
  • 데이터의 안정성이 떨어질 수있음 → memory DB출시(옵션) - 성능적인 이점은 낮지만 안정성이 높음

07. Amazon Elasticsearch

Elasticsearch의 완전 관리형 서비스 

  • Open search 서비스













0개의 댓글