Amazon VPC - [2] 서브넷

yoongyum·2022년 11월 19일
1

AWS

목록 보기
4/4

서브넷

서브넷은 VPC에 있는 네트워크 로직 컨테이너로서 EC2 인스턴스와 같은 VPC리소스를 연결한다.
네트워크 상에 존재하는 여러 인스턴스를 서로 격리하며, 인스턴스 간의 트래픽 및 유출을 제어하고, 기능별로 조직화한다.

인스턴스는 서브넷 내에서 생성되며, 다른 서브넷으로 옮길 수 없다.
이는 하나의 VPC에서 생성된 인스턴스를 다른 VPC로 옮길 수 없다는 의미이다.

서브넷을 옮기기 위해서는 기존 인스턴스를 종료하고 새 서브넷에서 인스턴스를 시작해야한다.


AWS는 모든 서브넷에서 처음 4개의 IP 주소와 마지막 한 개의 주소는 예약해서 사용하기 때문에 이들 주소에는 인스턴스를 할당할 수 없다.

서브넷은 하나의 가용 영역내에서만 존재할 수 있다.

서로 다른 가용 영역에 서브넷을 만든 뒤 인스턴스를 각 서브넷에 분산 배치해 복원성을 구현할 수 있다.



서브넷 생성하기

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

Elastic Network Interface

ENI는 인스턴스가 AWS 서비스, 다른 인스턴스, 인터넷 등 다른 네트워크 리소스와 통신할 수 있도록 한다.

기본적으로 물리적 서버의 네트워크 인터페이스같은 기능을 제공하며, 통신대상과 방법 등을 관리 할 수 있다.

모든 인스턴스는 ENI가 있어야한다. 이 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"
    }
}

0개의 댓글