2. AWS 기초와 VPC

 

1. 클라우드 컴퓨팅

1.1 Why Cloud Computing?

AI, Big Data 기술이 발전에 함에 따라 데이터를 관리하기 위한 cloud computing 능력이 더욱 중요해짐

1.2 장단점

  • 장점
    • 언제 어디서든, 접근 가능
    • 컴퓨터 자원을 늘리기 쉬움
    • 사용량 기반 과금이 가능
    • 적은 초기비용
    • 빠르게 전 세계에 서비스 런칭이 가능
  • 단점
    • 고급 전문 지식이 필요
    • 파악하기 어려운 광범위한 서비스

2. AWS

2.1 AWS의 주요 서비스 소개

  1. Computing 가상으로 연산 능력을 제공하는 서비스
    • EC2(elastic): 사양과 크기를 조절할 수 있는 컴퓨팅 서비스
    • Lightsail: 가상화 프라이빗 서버
    • Auto Scaling: 서버의 특정 조건에 따라 서버를 추가/삭제할 수 있게 하는 서비스
    • Workspaces: 사내 PC를 가상화로 구성하여 문서를 개인 PC에 보관하는 것이 아니라 서버에서 보관하게 하는 서비스
  2. Network
    • Route 53: DNS(domain name system) 웹서비스
    • VPC: 가상 네트워크를 클라우드 내에 생성/구성
    • Direct Connect: On-premise 인프라와 aws를 연결
    • ELB(Elastic Load Balancer): 부하 분산(load balancing) 서비스
  3. Database
    • S3: 여러가지 파일을 형식에 구애받지 않고 저장
    • RDS: 가상 SQL 데이터베이스 서비스
    • DynamoDB: 가상 NoSQL 데이터베이스 서비스
    • ElastiCache: In-memory 기반의 cache 서비스
  4. AI
    • Redshift: 데이터 분석에 특화된 스토리지 시스템
    • EMR: 대량의 데이터를 효율적으로 가공 & 처리
    • Sagemaker: 머신러닝 & 데이터분석을 위한 클라우드 환경 제공

3. 네트워킹의 기본

  1. IP Address(IPv4)
    8bit x 4 (4개의 octet, 32bit, 총 2^32개)
    e.g. 172.16.254.1
  2. IP 구성
    • A Class: [0xxxxxxx].[xxxxxxxx.xxxxxxxx.xxxxxxxx]
      • Network bit(8bit) + Host bit(24bit)
      • 2^7개 network 존재 (2^24 IP/network)
    • B Class: [10xxxxxx.xxxxxxxx].[xxxxxxxx.xxxxxxxx]
      • Network bit(16bit) + Host bit(16bit)
      • 2^14개 network 존재 (2^16 IP/network)
    • C Class: [110xxxxx.xxxxxxxx.xxxxxxxx].[xxxxxxxx]
      • Network bit(24bit) + Host bit(8bit)
      • 2^21개 network 존재 (2^8 IP/network)
  3. Network 나누기(subnetwork)
    • Network: 211.11.124.0 ~ 211.11.124.255
    • 2개의 subnet으로 나누기
      • Subnet A: 211.11.124.0 ~ 211.11.124.127
      • Subnet B: 211.11.124.128 ~ 211.11.124.255
    • CIDR: Subnet을 쉽게 표현해보자
      고정된 IP / 고정된 bit수
      • Subnet A: 211.11.124.0/25
      • Subnet B: 211.11.124.128/25
    • 4개의 경우,
      • Subnet A: 211.11.124.0/26
      • Subnet B: 211.11.124.64/26
      • Subnet C: 211.11.124.128/26
      • Subnet D: 211.11.124.192/26

4. VPC - AWS 네트워킹의 동작원리

  1. VPC(Virtual Private Cloud, 가상 네트워크)의 특징
    • 계정 생성 시 default로 VPC를 생성
    • EC2, RDS, S3 등의 서비스 활용 가능
    • 서브넷 구성
    • 보안 설정(IP block, inbound, outbound 설정)
    • VPC Peering(VPC 간 연결)
    • IP 대역 지정 가능
    • VPC는 하나의 Region에 종속
  2. VPC의 구성요소
    • Availability Zone
      • 물리적으로 분리되어 있는 인프라가 모여있는 데이터 센터 (일정 거리 이상 떨어져있음)
      • 하나의 리전은 2개 이상의 AZ로 구성됨
    • Subnet(CIDR)
      • VPC의 하위단위로 하나의 AZ에서만 생성 가능
      • Private subnet: 인터넷 접근 불가능
        Public subnet: 인터넷 접근 가능
    • Internet Gateway(IGW)
      • 인터넷으로 나가는 통로
      • Public subnet - NACL - Route Table - Router - IGW -> Internet
    • Route Table
      • 트래픽이 어디로 가야 할 지 알려주는 테이블
    • Network Access Control List(NACL) / Security Group
      • NACL: Stateless, SG: Stateful
      • Access Block은 NACL에서만 가능
    • NAT(Network Address Translation) instance / NAT gateway
      • Private Subnet에서 인터넷 접속을 하기 위한 우회 수단으로 Public Subnet의 Nat instance / Nat gateway를 사용
      • Nat instance: 단일 instance (EC2)
        Nat Gateway: AWS 제공 서비스
      • Bastion host
        관리자(인터넷)가 private instance에 접근하기 위해 public subnet 내에 위치한 Bastion host(EC2)를 사용
    • VPC endpoint
      • AWS의 여러 서비스들과 VPC를 연결해주는 중간 매개체
      • 서비스에 비공개로 연결
      • Public IP 필요 없음
      • Interface Endpoint
        Private IP를 만들어 서비스로 연결해줌(SQS, SNS, Kinesis, Sagemaker 등 지원)
      • Gateway Endpoint
        라우팅 테이블에서 경로의 대상으로 지정하여 사용
    • NACL
      • Inbound: request 허용 포트
        Outbound: response 허용 포트
      • Security Group (stateful)
        • Stateful: Request 받았을 때, source의 port를 기억하고 예외적으로 outbound 허용
      • NACL (stateless)
        • Stateless: 정해진 규칙에 따라 엄격히 outbound 적용
  3. 실습
    • VPC 생성 시, 자동으로 라우팅 테이블, 네트워크 ACL, 보안 그룹 생성
    • Subnet
      Public(10.0.0.0/24), private subnet(10.0.1.0/24) 생성
    • 인터넷 게이트웨이
      인터넷 게이트웨이(dj.yoon-igw) 생성 후, VPC에 연결
    • 라우팅 테이블
      • Public, private subnet 각각에 대한 라우팅 테이블(dj.yoon-public-rtb) 생성 후, 연결
      • 인터넷에 연결할 수 있도록 라우팅 편집
        0.0.0.0/0 라우팅 추가
    • NACL
      • Public, private subnet에 대하여 생성(dj.yoon-public-nacl) 및 연결
      • 인바운드 규칙 추가
        • 규칙 번호: 100 단위로 (규칙 번호가 작은 규칙부터 적용)
        • 유형: 22(ssh), 80(http), 443(https)
        • 허용
      • 아웃바운드 규칙 추가
        • 규칙 번호: 100
        • 유형: 1024-65535
        • 허용
    • Bastion Host
      • public, private ec2 생성
    • VPC Endpoint
      • 인터넷 게이트웨이가 아니라 Gateway Endpoint를 통해 인터넷에 연결
        트래픽 노출을 최소화시켜 Bastion host 보다 낫다
      • IAM / 역할 생성
        • 권한 추가: AmazonS3FullAccess
        • Private에서 IAM 역할 추가