© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
김상필 솔루션즈아키텍트
2017년 6월 28일
AWS 6월 웨비나 | Amazon VPC Deep Dive
본 세션의 주요 주제
• VPC의 구축 및 디자인 기본 사항 - IP 주소, 서브넷, 라우팅, 보안,
NAT 등
• VPN 또는 AWS Direct Connect를 사용하여 VPC를 물리적
데이터 센터에 연결하기 위한 다양한 접근 방법
• VPC Endpoint 및 VPC Flow logs 분석 등 최신 업데이트
EC2 Instance
VPC(Virtual Private Cloud)
172.31.0.128
172.31.0.129
172.31.1.24
172.31.1.27
54.4.5.6
54.2.3.4
VPC (Virtual Private Cloud)
• 단일 지역
• CIDR 블록 /16 ~ /28
• 서브넷에 할당된 라우팅 테이블을 통한 전체 컨트롤
• IAM 통합 및 CloudFormation 지원
• Multicast / Broadcast 미지원
인터넷에 연결된 VPC 설정
인터넷에 연결된 VPC 만들기 : 단계별
IP 주소 범위 선택 가용 영역(AZ)별
서브넷 설정
인터넷으로 향하는
경로(route) 만들기
VPC 로/부터의
트래픽 설정
서브넷
VPC 서브넷 및 가용 영역
172.31.0.0/16
Availability Zone Availability Zone
VPC subnet VPC subnet
172.31.0.0/24 172.31.2.0/24
ap-northeast-2a ap-northeast-2c
VPC 서브넷 권고사항
• 서브넷은 단일 가용 영역에 제한
• 서브넷은 겹칠 수 없음
• 첫 4개 IP 주소 및 마지막 IP 주소는 VPC 동작을 위해 사용
• 기본적으로 메인 Main route table 할당
인터넷 경로
Routing in your VPC
• Route table 은 패킷이 이동하는 규칙을 포함
• VPC 에 기본 route table이 존재
• 서브넷은 기본 route table에 자동 할당
• 하지만 서브넷에 다른 route table 을 할당할 수 있음
• Routes는 destination CIDR 및 target
• Target 은 ENI, Gateway, Instance
내 VPC로 향하는 트래픽은
내 VPC 내에 머물러야 함
Internet Gateway
인터넷에 연결하려면 여기로
패킷을 보냄
VPC로 향하지 않는 모든것:
인터넷으로 보내기
VPC의 네트워크 보안:
Network ACLs /
Security Groups
Network ACLs: Stateless firewalls
해석: 모든 트래픽 허용
서브넷 단위로 적용 가능
“MyWebServers” Security Group
“MyBackends” Security Group
Allow only “MyWebServers”
Security groups: 애플리케이션 구조
Security groups example: web servers
해석: 이 그룹의 호스트는 인터넷에서 포트 80
(HTTP)으로 연결 가능
Security groups example: backends
해석: MyWebServers Security Group에 속한
인스턴스만 이 Security Group에 연결 가능
체크 포인트: Security Groups
• 최소 권한 원칙(Principle of Least Privilege) 준수
• VPC 는 egress/ingress 에 대한 Security Group 생성
가능
VPC의 연결 옵션
인터넷 연결을 넘어…
인터넷 액세스 제한
회사 네트워크에
연결
다른 VPC와 연결
인터넷 액세스 제한:
서브넷 별로 다른 라우팅
서브넷 별로 각기 다른 라우팅
VPC subnet
VPC subnet
Has route to Internet
Has no route to Internet
NAT gateway: 아웃바운드 전용 인터넷
허용
VPC subnet VPC subnet
0.0.0.0/0
0.0.0.0/0
Public IP: 54.161.0.39
NAT gateway
VPC 간 연결:
VPC peering
VPC peering 사용 예: 공유 서비스 VPC
• 공통/핵심 서비스
• 인증/디렉토리
• 모니터링
• 로깅
• 원격 관리
• 스캐닝
Security groups across peered VPCs
VPC Peering
172.31.0.0/16 10.55.0.0/16
Orange Security Group Blue Security Group
ALLOW
Establish a VPC peering: 요청 시작
172.31.0.0/16 10.55.0.0/16
Step 1
피어링 요청 시작
Establish a VPC peering: 요청 수락
172.31.0.0/16 10.55.0.0/16
Step 1
피어링 요청 시작
Step 2
피어링 요청 수락
Establish a VPC peering: 경로 생성
172.31.0.0/16 10.55.0.0/16Step 1
피어링 요청 시작
Step 2
피어링 요청 수락
Step 3
경로 생성
해석: 피어링 된 VPC로 향하는 트래픽은
피어링 연결로…
체크 포인트: VPC Peering
• 중첩되는 IPv4 또는 IPv6 CIDR 블록이 있는 VPC 간에는
VCP 피어링 연결을 생성할 수 없음
• 서로 다른 지역에 있는 VPC 간에는 VCP 피어링 연결을
만들 수 없음
• transitive peering 지원하지 않음
회사 네트워크에 연결:
Virtual Private Network(VPN) &
Direct Connect(DX)
온 프레미스 네트워크를 VPC로 확장
VPN
Direct Connect
AWS VPN basics
Customer
Gateway
Virtual
Gateway
Two IPSec tunnels
192.168.0.0/16 172.31.0.0/16
192.168/16
Your networking device
VPN and AWS Direct Connect
• 두가지 모두 온 프레미스 네트워크와 VPC
사이의 보안 연결을 지원
• VPC은 인터넷을 통한 IPSec 터널
• DirectConnect 은 전용선
• 높은 가용성을 위해서: 두가지 모두 사용
VPC 및 다른 AWS 서비스
VPC 및 다른 AWS 서비스
VPC 내에 존재하는
AWS 서비스
VPC Endpoints for
Amazon S3
DNS in-VPC with
Amazon Route 53
VPC Flow Logs 를
이용한 VPC 트래픽
로깅
VPC Endpoints for Amazon S3
S3 and your VPC
S3 Bucket
애플리케이션
데이터
VPC endpoints for S3
S3 Bucket
VPC endpoints for S3
S3 Bucket
VPCE로 S3 트래픽
전달
IAM policy for VPC endpoints
S3 Bucket
IAM Policy at VPC Endpoint:
특정 S3 Bucket 액세스만
허용
IAM Policy at S3 Bucket:
VPC Endpoint 를 통한
액세스만 허용
VPC Endpoints for DynamoDB
VPC Endpoints for Amazon DynamoDB
• 2017년 4월 19일 (공개 프리뷰)
• 지역
• Asia Pacific (Seoul)
• Asia Pacific (Singapore)
• Asia Pacific (Sydney)
• Asia Pacific (Tokyo)
• EU (Frankfurt)
• South America (Sao Paulo)
• US East (Ohio)
• US West (N. California)
VPC Endpoint활용 DynamoDB 사설 네트워크 구성
Blog - https://aws.amazon.com/ko/blogs/database/how-to-configure-a-private-network-environment-for-amazon-dynamodb-using-vpc-endpoints/
VPC Flow Logs:
VPC traffic metadata
CloudWatch Logs
VPC Flow Logs
§ Security Groups 규칙의
영향에 대한 가시성
§ 네트워크 연결 문제 해결
§ 트래픽 분석 가능
VPC Flow Logs: 구성
VPC traffic metadata captured
in CloudWatch Logs
VPC Flow Logs: 구성
• 대상 : VPC, 서브넷 또는 네트워크 인터페이스. VPC 또는 서브넷
선택 시 VPC 또는 서브넷에 속하는 모든 인터페이스 모니터링
• 조건 : 허용된(accepted) 트래픽, 거부된(rejected) 트래픽 또는
모든(all) 트래픽
• 로그 레코드 : version, account-id, interface-id, srcaddr,
dstaddr, srcport, dstport, protocol, packets, bytes, start,
end, action, log-status
VPC Flow Logs data in CloudWatch Logs
Who’s this?
# dig +short -x 109.236.86.32
internetpolice.co.
REJECT
UDP Port 53 = DNS
VPC Flow Logs 분석 서버리스 아키텍처
Blog - https://aws.amazon.com/blogs/big-data/analyzing-vpc-flow-logs-with-amazon-kinesis-firehose-amazon-athena-
and-amazon-quicksight/
Athena 에서 외부 테이블 생성
CREATE EXTERNAL TABLE IF NOT EXISTS vpc_flow_logs (
Version INT,
Account STRING,
InterfaceId STRING,
SourceAddress STRING,
DestinationAddress STRING,
SourcePort INT,
DestinationPort INT,
Protocol INT,
Packets INT,
Bytes INT,
StartTime INT,
EndTime INT,
Action STRING,
LogStatus STRING )
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "^([^ ]+)s+([0-
9]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([0-
9]+)s+([0-9]+)s+([^ ]+)s+([^ ]+)$")
LOCATION 's3://<bucket_and_prefix>/';
Athena 에서 데이터 쿼리
SELECT sourceaddress, count(*) cnt
FROM vpc_flow_logs
WHERE action = 'REJECT'
GROUP BY sourceaddress
ORDER BY cnt desc
LIMIT 25;
질문에 대한 답변 드립니다.
발표자료/녹화영상 제공합니다.
http://bit.ly/awskr-webinar
더 나은 세미나를 위해
여러분의 의견을 남겨 주세요!

AWS 6월 웨비나 | Amazon VPC Deep Dive (김상필 솔루션즈아키텍트)

  • 1.
    © 2016, AmazonWeb Services, Inc. or its Affiliates. All rights reserved. 김상필 솔루션즈아키텍트 2017년 6월 28일 AWS 6월 웨비나 | Amazon VPC Deep Dive
  • 2.
    본 세션의 주요주제 • VPC의 구축 및 디자인 기본 사항 - IP 주소, 서브넷, 라우팅, 보안, NAT 등 • VPN 또는 AWS Direct Connect를 사용하여 VPC를 물리적 데이터 센터에 연결하기 위한 다양한 접근 방법 • VPC Endpoint 및 VPC Flow logs 분석 등 최신 업데이트
  • 3.
  • 4.
  • 5.
    VPC (Virtual PrivateCloud) • 단일 지역 • CIDR 블록 /16 ~ /28 • 서브넷에 할당된 라우팅 테이블을 통한 전체 컨트롤 • IAM 통합 및 CloudFormation 지원 • Multicast / Broadcast 미지원
  • 6.
  • 7.
    인터넷에 연결된 VPC만들기 : 단계별 IP 주소 범위 선택 가용 영역(AZ)별 서브넷 설정 인터넷으로 향하는 경로(route) 만들기 VPC 로/부터의 트래픽 설정
  • 8.
  • 9.
    VPC 서브넷 및가용 영역 172.31.0.0/16 Availability Zone Availability Zone VPC subnet VPC subnet 172.31.0.0/24 172.31.2.0/24 ap-northeast-2a ap-northeast-2c
  • 10.
    VPC 서브넷 권고사항 •서브넷은 단일 가용 영역에 제한 • 서브넷은 겹칠 수 없음 • 첫 4개 IP 주소 및 마지막 IP 주소는 VPC 동작을 위해 사용 • 기본적으로 메인 Main route table 할당
  • 11.
  • 12.
    Routing in yourVPC • Route table 은 패킷이 이동하는 규칙을 포함 • VPC 에 기본 route table이 존재 • 서브넷은 기본 route table에 자동 할당 • 하지만 서브넷에 다른 route table 을 할당할 수 있음 • Routes는 destination CIDR 및 target • Target 은 ENI, Gateway, Instance
  • 13.
    내 VPC로 향하는트래픽은 내 VPC 내에 머물러야 함
  • 14.
  • 15.
    VPC로 향하지 않는모든것: 인터넷으로 보내기
  • 16.
  • 17.
    Network ACLs: Statelessfirewalls 해석: 모든 트래픽 허용 서브넷 단위로 적용 가능
  • 18.
    “MyWebServers” Security Group “MyBackends”Security Group Allow only “MyWebServers” Security groups: 애플리케이션 구조
  • 19.
    Security groups example:web servers 해석: 이 그룹의 호스트는 인터넷에서 포트 80 (HTTP)으로 연결 가능
  • 20.
    Security groups example:backends 해석: MyWebServers Security Group에 속한 인스턴스만 이 Security Group에 연결 가능
  • 21.
    체크 포인트: SecurityGroups • 최소 권한 원칙(Principle of Least Privilege) 준수 • VPC 는 egress/ingress 에 대한 Security Group 생성 가능
  • 22.
  • 23.
    인터넷 연결을 넘어… 인터넷액세스 제한 회사 네트워크에 연결 다른 VPC와 연결
  • 24.
  • 25.
    서브넷 별로 각기다른 라우팅 VPC subnet VPC subnet Has route to Internet Has no route to Internet
  • 26.
    NAT gateway: 아웃바운드전용 인터넷 허용 VPC subnet VPC subnet 0.0.0.0/0 0.0.0.0/0 Public IP: 54.161.0.39 NAT gateway
  • 27.
  • 28.
    VPC peering 사용예: 공유 서비스 VPC • 공통/핵심 서비스 • 인증/디렉토리 • 모니터링 • 로깅 • 원격 관리 • 스캐닝
  • 29.
    Security groups acrosspeered VPCs VPC Peering 172.31.0.0/16 10.55.0.0/16 Orange Security Group Blue Security Group ALLOW
  • 30.
    Establish a VPCpeering: 요청 시작 172.31.0.0/16 10.55.0.0/16 Step 1 피어링 요청 시작
  • 31.
    Establish a VPCpeering: 요청 수락 172.31.0.0/16 10.55.0.0/16 Step 1 피어링 요청 시작 Step 2 피어링 요청 수락
  • 32.
    Establish a VPCpeering: 경로 생성 172.31.0.0/16 10.55.0.0/16Step 1 피어링 요청 시작 Step 2 피어링 요청 수락 Step 3 경로 생성 해석: 피어링 된 VPC로 향하는 트래픽은 피어링 연결로…
  • 33.
    체크 포인트: VPCPeering • 중첩되는 IPv4 또는 IPv6 CIDR 블록이 있는 VPC 간에는 VCP 피어링 연결을 생성할 수 없음 • 서로 다른 지역에 있는 VPC 간에는 VCP 피어링 연결을 만들 수 없음 • transitive peering 지원하지 않음
  • 34.
    회사 네트워크에 연결: VirtualPrivate Network(VPN) & Direct Connect(DX)
  • 35.
    온 프레미스 네트워크를VPC로 확장 VPN Direct Connect
  • 36.
    AWS VPN basics Customer Gateway Virtual Gateway TwoIPSec tunnels 192.168.0.0/16 172.31.0.0/16 192.168/16 Your networking device
  • 37.
    VPN and AWSDirect Connect • 두가지 모두 온 프레미스 네트워크와 VPC 사이의 보안 연결을 지원 • VPC은 인터넷을 통한 IPSec 터널 • DirectConnect 은 전용선 • 높은 가용성을 위해서: 두가지 모두 사용
  • 38.
    VPC 및 다른AWS 서비스
  • 39.
    VPC 및 다른AWS 서비스 VPC 내에 존재하는 AWS 서비스 VPC Endpoints for Amazon S3 DNS in-VPC with Amazon Route 53 VPC Flow Logs 를 이용한 VPC 트래픽 로깅
  • 40.
  • 41.
    S3 and yourVPC S3 Bucket 애플리케이션 데이터
  • 42.
    VPC endpoints forS3 S3 Bucket
  • 43.
    VPC endpoints forS3 S3 Bucket VPCE로 S3 트래픽 전달
  • 44.
    IAM policy forVPC endpoints S3 Bucket IAM Policy at VPC Endpoint: 특정 S3 Bucket 액세스만 허용 IAM Policy at S3 Bucket: VPC Endpoint 를 통한 액세스만 허용
  • 45.
  • 46.
    VPC Endpoints forAmazon DynamoDB • 2017년 4월 19일 (공개 프리뷰) • 지역 • Asia Pacific (Seoul) • Asia Pacific (Singapore) • Asia Pacific (Sydney) • Asia Pacific (Tokyo) • EU (Frankfurt) • South America (Sao Paulo) • US East (Ohio) • US West (N. California)
  • 47.
    VPC Endpoint활용 DynamoDB사설 네트워크 구성 Blog - https://aws.amazon.com/ko/blogs/database/how-to-configure-a-private-network-environment-for-amazon-dynamodb-using-vpc-endpoints/
  • 48.
    VPC Flow Logs: VPCtraffic metadata CloudWatch Logs
  • 49.
    VPC Flow Logs §Security Groups 규칙의 영향에 대한 가시성 § 네트워크 연결 문제 해결 § 트래픽 분석 가능
  • 50.
    VPC Flow Logs:구성 VPC traffic metadata captured in CloudWatch Logs
  • 51.
    VPC Flow Logs:구성 • 대상 : VPC, 서브넷 또는 네트워크 인터페이스. VPC 또는 서브넷 선택 시 VPC 또는 서브넷에 속하는 모든 인터페이스 모니터링 • 조건 : 허용된(accepted) 트래픽, 거부된(rejected) 트래픽 또는 모든(all) 트래픽 • 로그 레코드 : version, account-id, interface-id, srcaddr, dstaddr, srcport, dstport, protocol, packets, bytes, start, end, action, log-status
  • 52.
    VPC Flow Logsdata in CloudWatch Logs Who’s this? # dig +short -x 109.236.86.32 internetpolice.co. REJECT UDP Port 53 = DNS
  • 53.
    VPC Flow Logs분석 서버리스 아키텍처 Blog - https://aws.amazon.com/blogs/big-data/analyzing-vpc-flow-logs-with-amazon-kinesis-firehose-amazon-athena- and-amazon-quicksight/
  • 54.
    Athena 에서 외부테이블 생성 CREATE EXTERNAL TABLE IF NOT EXISTS vpc_flow_logs ( Version INT, Account STRING, InterfaceId STRING, SourceAddress STRING, DestinationAddress STRING, SourcePort INT, DestinationPort INT, Protocol INT, Packets INT, Bytes INT, StartTime INT, EndTime INT, Action STRING, LogStatus STRING ) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' WITH SERDEPROPERTIES ( "input.regex" = "^([^ ]+)s+([0- 9]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([^ ]+)s+([0- 9]+)s+([0-9]+)s+([^ ]+)s+([^ ]+)$") LOCATION 's3://<bucket_and_prefix>/';
  • 55.
    Athena 에서 데이터쿼리 SELECT sourceaddress, count(*) cnt FROM vpc_flow_logs WHERE action = 'REJECT' GROUP BY sourceaddress ORDER BY cnt desc LIMIT 25;
  • 56.
    질문에 대한 답변드립니다. 발표자료/녹화영상 제공합니다. http://bit.ly/awskr-webinar 더 나은 세미나를 위해 여러분의 의견을 남겨 주세요!