AWS SA Prof 공부 (Domain 4)

출처 : https://blue-clouds.com/

4.1  AWS의 네트워크 디자인 및 적용

  • VPC 는 Virtual Private Cloud의 줄임말.  AWS 계정 당 5개씩 가질 수 있음, 더 필요하면 AWS에 요청 필요
  • VPC 제작 시 CIDR block 필요, 하드웨어 설정 선택(default or dedicated)해야 함. Dedicated 는 하드웨어를 고정적으로 사용하되 비용이 추가 발생
  • VPC 를 만들 때 routing table 자동으로 만들어 짐
  • Subnets 은 AZ에 항상 포함 됨
  • Amazon 이 subnet에서 5개의 IP를 할당하고 있음
  • Internet Gateway 가 1개의 VPC 당 1개
  • 기본 routing table 이 있지만 사용자 routing table 제작 및 subnet 배정 가능
  • Public subnets 인터넷에서 접속 가능한 subnet, private 은 접속 불가
  • NAT device를 만들기 위해 Amazon Linux 위에서 AMI 사용
  • 라우팅을 위해 NAT 의 disable source/destination checks  체크 비활성화 필요
  • NAT Gateways 는 private subnet의 10Gbps 의 트래픽을 허용하고, 더 필요할 시 NAT Gateway 추가. NAT Gateways 와 subnets 는 1대1 관계 가짐 subnet의 0.0.0.0/0 을 NAT Gateway로 보낼 시, 보조 0.0.0.0/0을 하나 더 만들 수 없음. 2개의 NAT Gateway로 보낼 시 라우팅 테이블 쪼개야 함
  • S3 에 엔드포인트 만들어 연결 시 AWS 네트워크 사용 권장. S3 엔드포인트 라우팅 테이블을 만들어 트래픽 유도 가능. 엔드포인트는 VPC 레벨에서 만들어짐. VPC 정책을 만들어 S3 접근 제한 가능. bucket policies와 함께 사용하여 보안 레벨 강화 가능.
  • S3 엔드포인트는 리전 내에서만 사용 가능, bucket을 엔드포인트로 다른 리전에 있는 bucket에 복사 불가
  • VPC peering 은 같은 리전에 있는  2개의 VPC를 연결. 같은 AWS 계정 혹은 다른 AWS 계정 모두 사용 가능. VPN을 사용하지 않으면 단일지점 fail이 되지 않음. Transitive peering 은 지원되지 않으면 VPC 끼리 중복된 CIDR blocks 가질 수 없음
  • 계정당 50 VPC peering 제한 (soft limit)
  • Placement groups 은 VPC peering 에 속한 EC2 끼리 가능하지만, 네트워크 성능이 떨어 질 수 있음
  • placement group 은 1개의 AZ에 있는 EC2 끼리의 묶음. placement groups 사용 시 그룹 내의 네트워크는 10Gbps이며 낮은 지연 시간을 가능케 함. Placement groups 네트워크 요구사항이 높을 때 사용 권장. Placement group 사용 시 네트워크 성능이 좋은 EC2 사용 권장
  • VPC peering 간 통신 비용은 AZ간 통신 비용과 같음.
  • VPC peering의 Maximum Transmission Unit (MTU)  은 1500 bytes
  • VPC peering 을 이미 한 VPC 끼리 추가 peering 불가
  • peering한 VPC 를 보안그룹의 목적지로 사용 불가. CIDR block을 사용하여 보안그룹 작성
  • peering한 VPC 간 EC2 public DNS은 사설 IP로 전환 되지 않음
  • VPC peering 사용 예:
    • 회사의 IT 부서가 VPC 를 파일 공유에 사용, 2 개의 VPC 연결을 원하며 이 외의 VPC 간의 트래픽이 없을 때
    • VPC 를 고객과 공유하고자 할 때, 고객이 VPC를 만들어 Peering 가능. 다른 고객의 route테이블과 VPC를 알 수 없음
    • Active Directory 를 사용하는 중앙 VPC가 있고, peering한 VPC 내 EC2가 AD 서버로 인증 거쳐 중앙 VPC 접속하고자 할 때.
  • VPC 들은 특정 subnet 간 peering이 가능. 이 때 중복된 CIDR을 가진 VPC간 통신도 가능.
  •  예시:
    • VPC A의 subnet X이 VPC peering(pcx-aaaabbbb)의  모든 서브넷의 라우팅테이블을 가져 VPC B에 접근이 가능. VPC B은 VPC A의 subnetX 만 접근 가능하도록 설정.
  • Peered connections can be configured to route between one subnet and a VPC only by creating a routing table and adding it to that specific subnet
  • VPC가 여러 개의 중복된 CIDR 블록 을 가진 VPC와 연결한다면, 라우팅 테이블 설정에 주의가 필요. AWS는 현재 VPC peering 유니캐스트 역방향 경로 전달을 지원하지 않습니다
  • 예를 들어, VPC B 와 VPC C 이 같은 CIDR 블록을 가진 상태에서, VPC A에 각각 peering 연결이 되어있음에도 불구하고, VPC B에서 A를 통해 VPC C 에 연결을 할 수 없습니다.

vpc

  • 다른 VPC에 있는 특정 EC2에 연결하기 위해, /32 ip를 사용하여, 타겟(pcx-aaabbbb)을 이용하여 연결 할 수 있습니다.
  • Longest prefix match는 CIDR 블록이 겹칠 때 트래픽을 VPC 피어의 특정 인스턴스로 라우팅 할 때 사용됩니다. 특정 IP 주소로의 트래픽 라우팅은 접두사가 길기 때문에 서브넷 항목보다 우선합니다 (예 : 24 대 32)
  • 중복된 CIDR블록을 가진 VPC는 서브넷당 하나의 라우팅테이블을 가질 수 있습니다.
  • 잘못된 VPC peering 설정:
    • 중복된 CIDR blocks
    • Transitive VPC peering
    • 엣지투엣지 라우팅. (VPC B가 VPC A를 통해 on-pre 자원 접근 불가)

vpc-b

  • 다른 시나리오는 되지 않습니다:
    • VPN 연결 혹은 AWS Direct Connect 연결
    • IGW (인터넷게이트웨이)
    • NAT device를 통한 private subnet 연결
    • EC2-Classic instance
    • VPC 엔드포인트 (예 : S3엔드포인트)
  • VPC peering 설정:
    • VPC A의 소유자가  VPC B의 소유자에 요청 전송
    • VPC B 소유자가 요청 응답
    • VPC A 와 VPC B 에 라우팅 테이블 추가
    • Security groups 와 NACLs 설정

4.2  AWS의 자원 디자인 및 네트워크 연결 

  • DX(Direct Connect)은 Direct Connect 파트너를 통해 사설망을 이용한 연결
  • 802.1q VLANs 을 지원하며, 여러 개의 가상 인터페이스 지원
  • 1Gbps / 10Gbps 속도 연결 가능
  • AWS로의 많은 트래픽 이동 시 비용 절감 효과
  • 신뢰성 및 대역폭 증가, 공용 인터넷 사용하지 않음
  • VPN 연결 사용 권장
  • DX는 EC2 , S3 buckets 와 같은 공용자원에는 공용 인터넷 사용,VPC자원에는 사설망 사용
  • 회사 망에 AWS 망을 논리적으로 추가

vpc-c

  • VPC당 1개의 VIF 연결 (1대1 mapping)
  • DX는 Fault tolerant하지 않음, 즉 이중화 필요,  BGP 사용하여 보조 연결 설정 필요
  • VPN 은 2개의 엔드포인트 가짐, Customer Gateway (CGW) 와 AWS VPG (Virtual Private Gateway)
  • 미국의 경우, 미국 DX연결 시 미국 내 리전은 사설망으로 연결 가능
  • Layer 2 네트워크는 지원 불가
  • DX을 사용하기 위한 조건:
    • AWS DX 사용 가능 지역 일 것
    • AWS Partner Network (APN)의 망 사용
    • AWS DX 연결을 위한 독립적인 서비스 제공업체 사용
    • AWS DX 연결은 single mode fiber, 1000BASE-LX (1310nm) (1Gbps) 혹은 10GBASE-LR (1310nm) (10Gbps) 필요. 802.1Q VLANs 지원 필요
    • Border Gateway Protocol (BGP) 와 BGP MD5 인증 필요. 필요할 시, Bidirectional Forwarding Detection (BFD) 설정 가능
  • VPC에 연결하기 위한 첫 단계:
    • 사설 Autonomous System Number (ASN)필요. Amazon 에서 사설private IP  범위 제공  ( 169.x.x.x )
    • VPG 생성 후 VPC에 장착
  • Amazon EC2, Amazon S3와 같은 공용 자원 접근 시, 필요 한 것:
    • 공용 ASN (권장) 혹은  사설 ASN
    • 공용 IP addresses (/31) (BGP 연결 끝에 각 장착). 연결할 공용 IP 없을 시 AWS 접속 후 AWS 지원에 연락.
    • BGP 의 라우팅 테이블
  • AWS DX 제한 사항:
    • AWS Direct Connect 연결 당 VIFs – 50 (soft limit)
    • AWS Direct Connect 리전당, 계정당 – 10 (soft limit)
    • BGP 연결– 100 (hard limit)
  • Sub 1Gbps 연결은 1개의 VIF 만 지원
  • HPC 은 Lustre 와 NFS 파일 프로토콜 사용, Jumbo Frames 필요할 수 있음.이 때, enhanced networking (10Gbps NIC) 필요. Placement Groups 사용 권장
  • Enhanced networking지원 인스턴스 타입:
    • C3
    • C4
    • D2
    • I2
    • M4
    • R3
  • Enhanced Networking 은 SR-IOV (single root I/O virtualisation) 사용 가능
  • HVMs EC2 사용 (PV instances 불가)
  • 과거 HVMs버전은 sudo yum update 통해 DX 이용 가능
  • modinfo ixgbevf 명령어로 enhanced networking 사용 확인 가능
  • enhanced networking사용 시 연결이 끊겼을 경우, ixgbevf 모듈이 커널과 호환을 하지 않을 수 있으니, Linux에 맞는 모듈 사용 필요
  • AZ당 1 placement group (single AZ)
  • placement group은 한꺼번에 launch 하고 peak 기준으로 만드는 것 권장
  • placement group은 같은 EC2 타입 사용 권장
  • Elastic Load Balancer (ELB) 로 Multi-AZ 로드밸런싱
  • ELB 지원 프로토콜: HTTP, HTTPS (secure HTTP), TCP, and SSL (secure TCP).
  • ELB는 자동적으로 스케일링 됨 (limit 없음).
  • [EC2-VPC] 외부 ELB와 내부 ELB 설정 가능 (EC2-Classic은 외부 ELB 지원)
  • [EC2-Classic]  IPv4 and IPv6 지원. (EC2-VPC는 IPv4 지원)
  • ELB는 모니터링으로 CloudWatch metrics, access logs,  AWS CloudTrail 사용가능.
  • 외부 ELB는 도메인 이름 배정 가능
  • Payment Card Industry (PCI) Data Security Standard (DSS)인증으로 신용카드 정보 전송 가능
  • ELB 함께 사용 가능한 서비스:
    • EC2
    • Auto Scaling
    • CloudWatch
    • Route 53
  • Load balancers 포트:
    • [EC2-VPC] 1-65535
    • [EC2-Classic] 25, 80, 443, 465, 587, 1024-65535
  • HTTP 사용시 ELB X-Forwarded-For headers를 사용하면 서버측 클라이언트 IP 로그 가능
  • HTTP/HTTPS 사용시 sticky sessions 로 특정 EC2로 요청 전송 가능
  • 요청 마다 ELB는 2 개의 연결을 함 (클라이언트-ELB / ELB-서버) timeout(기본 60초)을 기준으로 연결 해제
  • HTTP and HTTPS 리스너 사용시, keep-alive 옵션 사용 권장. EC2 측에서 옵션 사용시,  CPU utilization을 적게 사용할 수 있음. keep-alive time 이 timeout time 보다 크게 설정.
  • cross-zone load balancing을 통해 AZ 간 EC2 로드 밸런싱 함. (AZ 다를 경우 주의)
  • ELB가 기존 연결을 열린 상태로 유지하면서 비정상적인 인스턴스로 요청을 보내지 않도록하려면 Connection Draining을 사용하십시오. ELB가 비정상 인스턴스로 가는 트래픽을 처리해 줍니다. (기본 300초 , 1~3600초 설정 가능)
  • Proxy Protocol 사용 가능. (non-HTTP 프로토콜 사용자 IP 로그)
  • Elastic IP address 배정 불가
  • IPv4 /v6 지원
  • domain apex 로드 밸런싱 가능(예: bbc.com (no www))
  • Enable CLoudTrail on an ELB to output logs to an S3 bucket
  • 1개의 ELB당 1개의 SSL 인증서(와일드 카드 사용시 여러 개 사용 가능)
  • my-loadbalancer-1234567890.us-west-2.elb.amazonaws.com 와 같은 DNS 배정 받음
  • http://www.example.com와 같은 이름의 DNS를 ELB에 배정  (권장)
  • NAT instance의 성능을 높이기 위해:
    • Scale up (더 큰 EC2 사용)
    • Enhanced Networking 사용
    • Scale out (EC2 추가)
    • 새로운 NAT instance 와 subnet 을 만들어 라우팅 시킴. Subnets 과 NAT instances 는 1대1 관계에 있음 (글 위쪽 확인)
    • NAT 고가용성 가능, active/passive 설정임을 명시함
Advertisements

AWS Certified Solution Architect Associate(SAA) 합격 후기

– AWS SAA 는 60문제 (80분)
– 서울 지역 시험 장소 4군데 [ 종로구 1, 강남구 3]
( 패스트레인, 러닝웨이, Same Page, Global Knowledge )
AWS 공식 샘플 문제 (8문제)
– 슈퍼트랙 강의 수강함 ( 강의가 짧음 [총 4일] )
– 시험 대비 공부 충분히 했을 시 시간 많이 남음
AWS SAA 시험 신청 링크
– SQS, EC2, DynamoDB 가 메인 주제, 상위개념은 마스터 필요
– EBS vs InstanceStore, EBS vs S3, VPN vs DX, NACL vs Security Group
– Region 이동 시 주의 사항 (설정 변경 필요한 것)

※ 시험에 나오는 AWS 공식 문서 모음 (꼭!)

– AWS 한국 블로그 공식 사용 설명서
– AWS 공식 기술 사용 설명서
– Cloudwatch
– CloudTrail ( Cloudwatch 와 비교 )
– Spotinstance
– SQS
– SWF
– dynamodb
– ElastiCache
– S3 ( 특히 consistency model / 가용성 % / Encryption종류 ) 
– Glacier
– Kinesis
– RDS (Max Size)
– Route53 (레코드 종류[ex:A,AAAA,SOA,SRV])
– WorkSpace (VDI)
– Trusted Advisor (제공하는 영역)
– Soft Limit (S3, EC2, VPC, Route53 등등..)
– IAM Policy (JSON Document)
– Stateless / Stateful Services
– EBS
– VPC ( 특히 Subnet관련 )

– 참고 사이트

– AWS인증 국내 유일 SAA 정식 강의 : http://edu.supertrack.co.kr/education/
– AWS 교육 1 : Acloud.guru :  https://acloud.guru/
– AWS 교육 2 : LinuxAcademy : https://linuxacademy.com/
– AWS 교육 3 : CloudAcademy : https://cloudacademy.com/
– 정도현 님의 github URL : bit.ly/sacertguide
– Jayendra’s Blog URL : http://jayendrapatil.com/
– Blue-clouds Blog URL : https://blue-clouds.com/
– Catapultsystems Blog URL :  http://blogs.catapultsystems.com/