AWS에서 예약 IP를 알아보자
/24 IP를 받으면 5개는 예약으로 사용되어 251 IP만 사용 가능하다.
VPC 한번에 코드로 만드는 Cloudformation을 알아보자
1
서브넷이 /24 일 때 사용 가능한 IP 주소는?
256 - 5 = 251개
서브넷에서는 5개 IP 주소가 예약되어 있습니다.
10.0.0.0: 네트워크 주소.
10.0.0.1: AWS에서 VPC 라우터용으로 예약한 주소.
10.0.0.2: AWS에서 예약한 주소 DNS 서버의 IP 주소, 기본 VPC 네트워크 범위에 2를 더한 주소.
10.0.0.3: AWS에서 앞으로 사용하려고 예약한 주소.
10.0.0.255: 네트워크 브로드캐스트 주소. VPC에서는 브로드캐스트를 지원하지 않으므로, 이 주소를 예약
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Subnets.html
ip 중 두 번째가 dns ip이다.
more resolv.conf 하면
Dns ip주소가 x.x.x.2번 으로 2번째 ip가 dns로 설정되어 있다.
2
인터넷이 되는지 확인하는 ping test
ping google.com
ping 1.1.1.1
1
VPC를 만들면 가상 라우터가 생긴다.
가상 라우터!!!
EC2등이 통신할때 처음에 가상 라우터로 보내진다.
VPC를 만들면 로컬 라우팅 테이블이 생긴다.
예를 들어 10.0.0.0/16
2
서브넷 단위로 라우팅 테이블을 매칭 한다.
서브넷 단위로 라우팅 테이블을 변경할 수 있다.
public인지 , priavte인지 구분하는 것은 라우팅 테이블로 구분하는 것이다.
서브넷이 어떤 라우팅 테이블로 매칭 하느냐에 따라 Public 인지 , Private 인지 구분한다.
3
EC2에서 인터넷으로 접속 시 동작 순서
EC2는 --> 가상 라우터 ---> NAT 게이트웨이-------> 인터넷 게이트웨이 ---> 인터넷 사이트 접속한다.
traceroute www.google.com -q 3
3번씩 트레이스 해서 정보를 확인하자
4
VPC 기초 보기
https://www.stackchief.com/tutorials/AWS%20VPC%20Tutorial
5
TGW는 멀티캐스트 지원함.
https://docs.aws.amazon.com/ko_kr/vpc/latest/tgw/tgw-multicast-overview.html
6
VPC내부에서는 브로드 캐스트와 멀티캐스트가 동작하지 않음.
GCP , Azure도 동일하게 지원하지 않음.
7
내 공인 IP 확인하기
EC2접속
curl ipinfo.io
curl ipinfo.io/ip
curl ipinfo.io/loc
위도를 구글 지도에 입력해보자. 위치를 알 수 있다.
curl https://json.geoiplookup.io/1.1.1.1
위도를 구글 지도에 입력해보자. 위치를 알 수 있다.
8
AWS는 ARP동작은 어떻게 하나요?
매핑 서버를 통해 처리
https://www.youtube.com/watch?v=3qln2u1Vr2E
9
방화벽 장비 등 이중화 구성은?
여러 편법을 통해 이중화 구성한다.
EIP, 2차 인터페이스 IP로 처리하는 방법
람다로 처리하는 방법
콘솔로 만들 수 있지만, CloudFomation으로 한 번에 만들 수 있다.
1
생성되는 것
VPC
public subnet 1
private subnet 1
2
CloudFomation 템플릿 내용
AWSTemplateFormatVersion: 2010-09-09
Description: Deploy a VPC
Resources:
VPC: # 리소스 중 VPC를 만든다.
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
EnableDnsHostnames: true
Tags:
- Key: Name
Value: game VPC
InternetGateway: # 리소스 중 인터넷 게이트웨이를 만든다.
Type: AWS::EC2::InternetGateway
Properties:
Tags:
- Key: Name
Value: game Internet Gateway
AttachGateway: # 리소스 중 인터넷 게이트웨이 연결을 만든다.
Type: AWS::EC2::VPCGatewayAttachment
Properties:
VpcId: !Ref VPC
InternetGatewayId: !Ref InternetGateway
PublicSubnet1: # 리소스 중 public1 서브넷을 만든다.
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: 10.0.0.0/24
AvailabilityZone: !Select
- '0'
- !GetAZs ''
Tags:
- Key: Name
Value: Public Subnet 1
PrivateSubnet1: # 리소스 중 private1 서브넷을 만든다.
Type: AWS::EC2::Subnet
Properties:
VpcId: !Ref VPC
CidrBlock: 10.0.1.0/24
AvailabilityZone: !Select
- '0'
- !GetAZs ''
Tags:
- Key: Name
Value: Private Subnet 1
PublicRouteTable: # 리소스 중 라우팅 테이블을 만든다.
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
Tags:
- Key: Name
Value: Public Route Table
PublicRoute: # 리소스 중 라우팅 0.0.0.0/0을 public라우팅을 추가한다.
Type: AWS::EC2::Route
Properties:
RouteTableId: !Ref PublicRouteTable
DestinationCidrBlock: 0.0.0.0/0
GatewayId: !Ref InternetGateway
PublicSubnetRouteTableAssociation1: # public 서브넷 라우팅 테이블을 연결한다.
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PublicSubnet1
RouteTableId: !Ref PublicRouteTable
PrivateRouteTable: # 리소스 중 private 라우팅 테이블을 만든다.
Type: AWS::EC2::RouteTable
Properties:
VpcId: !Ref VPC
Tags:
- Key: Name
Value: Private Route Table
PrivateSubnetRouteTableAssociation1: # private 서브넷 라우팅 테이블을 연결한다.
Type: AWS::EC2::SubnetRouteTableAssociation
Properties:
SubnetId: !Ref PrivateSubnet1
RouteTableId: !Ref PrivateRouteTable
Outputs:
VPC:
Description: VPC
Value: !Ref VPC
AZ1:
Description: Availability Zone 1
Value: !GetAtt
- PublicSubnet1
- AvailabilityZone
1
https://brunch.co.kr/@topasvga/1171
2
https://brunch.co.kr/@topasvga/1170
3
https://brunch.co.kr/@topasvga/1172
4
https://brunch.co.kr/@topasvga/1196
5
https://brunch.co.kr/@topasvga/1205
3주차
https://brunch.co.kr/@topasvga/1316
감사합니다.