VPC는 가상 개인 클라우드 라고 소개해 드렸습니다. 그렇다면 VPC안에서 제작된 Subnet은 사설 네트워크 망이 되겠죠. 그렇다면 외부와 통신해야 하는 Subnet은 어떻게 지정해야 할까요?
먼저, Subnet의 정보를 확인 해 봅시다.
PS> Get-EC2Subnet -SubnetId subnet-d98c8abc
Subnet 속성들 중에 MapPublicIpOnLaunch라는 정보가 있다는 것을 확인하실 수 있습니다. 그대로 해석해 보시면 "런치시에 공인IP를 매핑한다."라고 씌여 있습니다. 현재 값이 Disable이군요. 그럼 해당 정보를 Enable로 바꿔 봅시다.
PS> Edit-EC2SubnetAttribute -MapPublicIpOnLaunch $true -SubnetId subnet-d98c8abc
PS> Get-EC2Subnet -SubnetId subnet-d98c8abc
이렇게 하면 해당 Subnet 안에서 실행되는 인스턴스들은 Public IP와 매핑이 자동으로 됩니다. 해당 기능은 Instance 생성시에도 지정할 수 있습니다만, Default 값으로 지정하여 사용하고자 할 때에 정의하시면 편하게 사용하실 수 있습니다.
이로써 Public Subnet만들기가 끝났네요.
...과연 그럴까요?
다시 한번 생각 해 봅시다. 네트워크를 좀 아시는 분이시거나 가상화 인프라를 운영해 보신 분들 이시라면 뭔가 허전하실 겁니다.
현재 Subnet은 사설 네트워크망 이기 때문에 외부와 연결되는 Routing이 없다는 사실을 눈치 채셨을 겁니다. 외부와 연결되는 Gateway를 찾아보시면 여러 Gateway 중 InternetGateway라는 녀석을 찾으실 수 있으실 겁니다.
PS> Get-Command *gateway*
나머지 Gateway도 cmdlet 이름으로 대충 무슨 역할을 하는지 감이 오시겠지만, 외부통신을 위한 설정을 하고 있으니, 나머지 cmdlet들은 나중에 조사해 봅시다.
확인이 되셨다면 먼저 InternetGateway를 만들어 봐야겠죠?
PS> New-EC2InternetGateway
만들어진 InternetGateway를 확인해 봅시다.
PS> Get-EC2InternetGateway
Default VPC에는 InternetGateway가 설정되어 있네요. 우선, 속성들을 살펴보죠.
Attachment: 연결 속성값을 나타낸다.
InternetGatewayId: InternetGateway의 ID
Tags: 태그
Attachment만 확인하면 되겠네요. 속성 값을 한번 들여다 봅시다.
PS> (Get-EC2InternetGateway).Attachments
InternetGateway는 VPC와 연동된다는 것을 확인하실 수 있습니다. 이 쯤에서 그림으로 설명을 해 볼까요?
그림에서 보시는 대로 Subnet 안의 EC2 Instance는 Route Table을 거쳐 InternetGateway를 통해 외부로 나가는 그림을 보실 수 있으실 겁니다. 그리고 InternetGateway가 VPC에 연결되어있는 모습도 보실 수 있습니다. 별거 아니게 보이는 이 그림이 사실 굉장히 중요한데요. AWS 시험에서도 나올 만큼 중요한 사항입니다. AWS에서 정의하는 Public Subnet은 InternetGateway와 RouteTable 설정이 되어있느냐? 안되어있느냐? 에 따라서 달라집니다.
이론 설명이 끝났으니 cmdlet을 신나게 쳐 봅시다. 먼저, VPC에 InternetGateway를 연결합니다.
PS> Add-EC2InternetGateway -InternetGatewayId igw-e19ce984 -VpcId vpc-21e2df44
연결되었는지 확인 해 볼까요?
PS> Get-EC2InternetGateway -InternetGatewayId igw-e19ce984
VPC에 InternetGateway와 연결하였으니 RouteTable을 수정해 봅시다.
PS> New-EC2Route -DestinationCidrBlock 0.0.0.0/0 -GatewayId igw-e19ce984 -RouteTableId rtb-449c9121
PS> (Get-EC2RouteTable -RouteTableId rtb-449c9121).Routes
내부 통신 이외의 모든 트래픽은 InternetGateway를 통해 외부로 통신하도록 설정하였습니다. EC2 Instance에 공인 IP만 Mapping 시킨다고 해서 외부와 통신할 수 있는 환경이 아니라는 부분 다시 한번 확인하시면 좋겠습니다.
모든 준비는 끝났습니다. 이제 드디어 Instance(VM)을 만들어 컴퓨팅을 구현해 봅시다♬
참고 자료 : http://docs.aws.amazon.com/ko_kr/AmazonVPC/latest/UserGuide/VPC_Introduction.html
'AWS > 파워쉘로 배우는 AWS' 카테고리의 다른 글
#9 [Tag] 리소스에 태그를 달아보자 (0) | 2015.12.22 |
---|---|
[쉬어가기] 잡설(+AWS 나빠요) (0) | 2015.12.21 |
#7 [VPC] Route Tables 알아보기 (0) | 2015.12.18 |
#6 [VPC] Subnet 만들기와 AvailabilityZone 알아보기 (0) | 2015.12.18 |
#5 [VPC] VPC 알아보기 (0) | 2015.12.18 |