서브넷은 VPC에 있는 네트워크 로직 컨테이너로서 EC2 인스턴스와 같은 VPC리소스를 연결한다.
네트워크 상에 존재하는 여러 인스턴스를 서로 격리하며, 인스턴스 간의 트래픽 및 유출을 제어하고, 기능별로 조직화한다.
인스턴스는 서브넷 내에서 생성되며, 다른 서브넷으로 옮길 수 없다.
이는 하나의 VPC에서 생성된 인스턴스를 다른 VPC로 옮길 수 없다는 의미이다.
서브넷을 옮기기 위해서는 기존 인스턴스를 종료하고 새 서브넷에서 인스턴스를 시작해야한다.
서브넷은 하나의 가용 영역내에서만 존재할 수 있다.
서로 다른 가용 영역에 서브넷을 만든 뒤 인스턴스를 각 서브넷에 분산 배치해 복원성을 구현할 수 있다.
aws ec2 create-subnet
--vpc-id [각자 생성한 vpc-id]
--cidr-block 172.16.100.0/24
--availability-zone ap-northeast-2a
cidr-block
은 해당 VPC cidr 영역 내에서 설정한다.
{
"Subnet": {
"AvailabilityZone": "ap-northeast-2a",
"AvailabilityZoneId": "apne2-az1",
"AvailableIpAddressCount": 251,
"CidrBlock": "172.16.100.0/24",
"DefaultForAz": false,
"MapPublicIpOnLaunch": false,
"State": "available",
"SubnetId": "subnet-023f26ff0927430df",
"VpcId": "vpc-07a88079f57b7fb38",
"OwnerId": "335101184482",
"AssignIpv6AddressOnCreation": false,
"Ipv6CidrBlockAssociationSet": [],
"SubnetArn": "arn:aws:ec2:ap-northeast-2:335101184482:subnet/subnet-023f26ff0927430df",
"EnableDns64": false,
"Ipv6Native": false,
"PrivateDnsNameOptionsOnLaunch": {
"HostnameType": "ip-name",
"EnableResourceNameDnsARecord": false,
"EnableResourceNameDnsAAAARecord": false
}
}
}
ENI는 인스턴스가 AWS 서비스, 다른 인스턴스, 인터넷 등 다른 네트워크 리소스와 통신할 수 있도록 한다.
기본적으로 물리적 서버의 네트워크 인터페이스같은 기능을 제공하며, 통신대상과 방법 등을 관리 할 수 있다.
모든 인스턴스는 ENI가 있어야한다. 이 ENI는 오직 하나의 서브넷과 연결된다.
aws ec2 create-network-interface
--private-ip-address 172.16.100.99
--subnet-id [각자 생성한 subnet-id]
{
"NetworkInterface": {
"AvailabilityZone": "ap-northeast-2a",
"Description": "",
"Groups": [
{
"GroupName": "default",
"GroupId": "sg-0c57720043e1b4a91"
}
],
"InterfaceType": "interface",
"Ipv6Addresses": [],
"MacAddress": "02:8d:2b:94:2a:42",
"NetworkInterfaceId": "eni-04808dcd3327eba8d",
"OwnerId": "335101184482",
"PrivateIpAddress": "172.16.100.99",
"PrivateIpAddresses": [
{
"Primary": true,
"PrivateIpAddress": "172.16.100.99"
}
],
"RequesterId": "AIDAU4BMWJHRIU33EUZYC",
"RequesterManaged": false,
"SourceDestCheck": true,
"Status": "pending",
"SubnetId": "subnet-023f26ff0927430df",
"TagSet": [],
"VpcId": "vpc-07a88079f57b7fb38"
}
}