AWS-VPC
1. VPC에 대한 이야기
AWS를 처음 접하면 가장 처음 접하게 되는게 VPC입니다.
VPC는 Virtual Private Cloud의 약자이고 AWS의 클라우드 환경을 구성할때 가장 처음 접하게됩니다.
알고나면 쉬운내용일 수 있지만 처음 접하면 어려울수있습니다.
전체적인 네트워크 내용을 빼고 설명하자면 AWS에서 사용하려는 인터넷의 대역대를 설정해준다고 생각하고 접근해보겠습니다.
우선 CIDR 표기법에 대해서 먼저 알아야합니다.
Resources:
AWSVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
Tags:
- Key: Name
Value: AWS-vpc
위 내용을 보면 CidrBlock: 10.0.0.0/16
으로 설정해놨습니다.
이는 10.0.0.0부터 10.0.255.255까지의 주소를 사용하겠다고 정의한 부분입니다.
즉, 이렇게 설정한 VPC내의 네트워크는 지정한 범위내의 IP주소를 할당하여 진행됩니다.
그리고 Tags로 Key: Name
, Value: AWS-vpc
를 지정하여 AWS내에서 AWS-vpc라는 이름으로 설정하여 리소스를 구분하는데 사용됩니다.
2. VPC - Console(콘솔)
AWS Console창에서 VPC를 검색하여 VPC 대시보드로 들어갑니다.
그럼 VPC 생성을 할 수 있는데 위 내용을 잘 이해하셨으면 따라가기 쉽습니다.
이후 Subnet부터 하나씩 설명할테니 지금은 VPC만 생성하시면됩니다.
위에 설명한대로 추후 리소스를 구분하기 위해 이름 태그 자동생성에 aws를 넣어줍니다.
IPv4 CIDR 블록을 확인하는데 기본적으로 10.0.0.0/24로 되어있으며 이 경우 10.0.0.0~10.0.0.255
의 IP주소를 사용가능합니다. 테스트만 하실거면 그대로두셔도 됩니다. 별도의 VPC구성이 필요할 경우 대역대를 달리하여 설정하시면됩니다.
설정을 마친 후 VPC 생성을 누르면 생성이 완료됩니다.
생성할 리소스 : vpc만
이름 태그 : aws-vpc
IPv4 CIDR 블록 : 10.0.0.0/16
삭제
VPC 대시보드에서 Virtual Private Cloud - VPC로 들어가면 생성된 VPC목록이 나옵니다.
내가 생성한 VPC의 Name을 확인하고 리스트 좌측의 체크박스를 클릭, 상단 작업 버튼을 누르면 VPC 삭제가 가능합니다.
3. VPC - CloudFormation(클라우드포메이션)
단순히 테스트만 하기위해 VPC만 생성하고 나면 추후 전체적인 구조도가 헷갈릴 수 있습니다. 그래서 Console에서 생성하고 삭제한 내용을 CloudFormation을 이용하여 진행해보겠습니다. CloudFormation을 이용하면 생성시점에 S3에 해당 코드기반의 yaml파일도 같이 백업되서 이용되는 점도 있고 가시적인 구조도도 확인이 가능하며 복구나 복제등에도 용이합니다.
cloudformaion에서 스택메뉴를 들어가게되면 스택을 생성할 수 있습니다. 기존 리소스는 스택을 만들면서 백업된 S3의 yaml파일 또는 직접 백업한 yaml 파일로 이용할 수 있으며, 신규 리소스로 진행해보겠습니다.
인프로 컴포저에서 서비스를 직접 생성해보겠습니다.
스택생성에서 인프로 컴포저에서 빌드를 선택하시고 인프라 컴포저에서 생성을 누르면 인프라 컴포저화면으로 이동합니다. 좌측에 AWS서비스 리스트가 있고 우측의 캔버스와 템플릿을 확인할수있게 구현되어있습니다. 이번 글에서는 AWS::EC2::VPC
를 좌측에 검색해줍니다.
리스트를 캔버스화면이로 드래그앤 드랍을 하면 해당 서비스가 추가되며 기본 상태이기때문에 템플릿에서 확인해보면
Resources:
VPC:
Type: AWS::EC2::VPC
Properties: {}
이렇게 기본 내용만 있습니다.
JSON이 편하신분들은 JSON으로 하시면되고 저는 YAML로 진행하겠습니다.
VPC를 선택하여 datails로 들어가면 우측에 특성창이 나타납니다.
현재 VPC:
로 되어있는 Logical ID
부분을 AWSVPC
로 변경하면 캔버스와 템플릿이 동기화되어 함께 바뀝니다.
특성창 하단의 Resource reference를 이용하면 어떤 속성을 사용할 수 있는지 잘나와있습니다. 이런식으로 직접 서비스를 콘솔에서도 만들어보고 그것을 cloudformaion을 이용해 진행하면서 본인이 이해하기 쉬운방식으로 사용하기 쉬운방식으로 선택하여 배워가시면됩니다.
CidrBlock과 tag 속성을 확인하고 직접 작성해보겠습니다. Properties까지는 작성이 되어있음으로 특성안에 들어갈 내용을 details창 또는 templates창에서 직접 추가해봅니다.
- details
CidrBlock: 10.0.0.0/16
Tags:
- Key: Name
Value: AWSVPC
- Templete
Resources:
AWSVPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/16
Tags:
- Key: Name
Value: AWSVPC
주의할점은 details는 templete내의 Properties내부의 값을 의미함으로 띄워쓰기를 그와 고려하여 위 처럼 잘 작성해주시면됩니다.
Validate기능을 이용하여 유효성을 검사하면서 작성해봅니다.
작성이 완료되었으면
create template를 눌러 생성을 마무리합니다. 이때 지정되는 S3가 없으면 자동으로 S3를 생성하여 백업됩니다. 별도로 S3를 이용하시는 분은 Use a different bucket으로 설정하여 사용하시면됩니다.
그럼 다시 스택생성화면으로 돌아오고 다시 확인하려면 인프라 컴포저에서 편집을 이용하여 수정하시고 다음을 눌러봅니다.
스택이름은 스택메뉴에서 확인가능한 이름이니 편하게 작성해줍니다. 다음 화면인 스택 옵션 구성은 현재는 딱히 건들게 없음으로 다음으로 넘어갑니다.
그리고 전송을 누르면 스택으림으로 스택 세부 정보에서 해당 스택이 진행사항을 확인할 수 있습니다.
CREATE_COMPLETE 되었다면 VPC 콘솔에서 생성되어있는 VPC를 확인해봅니다.
여기서도 작성한 Logical ID로 확인이 가능합니다. 이처럼 네이밍에 신경써서 스택에 연관된 서비스를 같은 네이밍으로 지어주면 확인이 쉽고 다른 리소스와 분리하여 확인가능하며 전체 인프라를 cloudformation으로 생성하고 이후 별도로 리소스 관리가 용이합니다.
이제 스택을 삭제해보겠습니다.
삭제할 스택이름을 선택한 후 삭제를 실행하면 마찬가지로 스택세부정보에서 확인가능하며 완료되고나면 스택이 사라지고 VPC에서도 사라짐을 확인가능합니다.
s3에 백업되어있으니 이를 이용하여 복구를 해보셔도 좋습니다.
cloudformation - stack
스택생성 - 인프라 컴포저에서 빌드 - 인프라 컴포저에서 생성
AWS::EC2::VPC 추가
Logical ID 설정
CidrBlock, Tags 작성
create template
스택이름 정의
전송, VPC 생성 확인
삭제, VPC 삭제 확인
S3 백업파일 이용한 복구
4. Next
- Subnet
Related Pages
- 1. VPC
- 2. Subnet
- 3. InternetGateway
- 4. RouteTable
- 5. SecurityGroup
- 6. EC2