[AWS 네트워크 지식 02] AWS 네트워크 설계 및 구축하기
1. AWS 네트워크 설계 시 고려 사항
AWS에서 네트워크를 생성하고 서비스를 운영할 때 잘못된 네트워크 설계로 인해 발생하는 문제는 복구가 어려울 수 있습니다. 한 번 생성된 네트워크는 수정되거나 되돌릴 수 있는 기능이 제한 적이므로 신중한 네트워크 설계가 중요합니다. 특히, VPC와 서브넷의 경우 잘못된 네트워크 설계로 인해 IP 주소가 부족하더라도 네트워크 설정을 되돌릴 수 없으며, 이는 서비스 운영에 치명적인 영향을 끼칠 수 있습니다. 이에 따라 초기에 올바르게 구축된 네트워크 아키텍처는 시스템의 안정성과 신뢰성을 유지하는 데 중요한 역할을 합니다. 이번에는 AWS 네트워크 설계 시 고려해야 하는 사항을 알아보겠습니다.
1.1 CIDR는 어떻게 나누어야 할까?
먼저 할당받은 IP 주소를 바탕으로 현재 구축할 환경에 서브넷을 몇 개 생성해야 할지 생각해야 합니다. 예를 들어 VPC에 172.100.16.0/24를 할당하고 이 VPC를 8개의 서브넷으로 나누고 싶다면 다음과 같이 정확하게 8개 서브넷으로 나눌 수 있으며 각 서브넷은 27개 사용 가능한 호스트 ID 즉 IP 주소를 가질 수 있습니다.
하지만 /27로 설정하여 서브넷을 나눈다면 서브넷을 추가할 수 없는 상황이 발생할 수 있으므로, 항상 여유분을 고려하여 CIDR을 설정하는 것이 중요합니다. 다음과 같이/28로 설정하여 여유분을 가지고 만들어두는 것이 좋습니다.
서브넷을 생성할 때는 사용할 IP 주소의 양과 서브넷의 확장 가능성을 고려해야 합니다. 만약 최소 11개 이상의 IP 주소가 필요한 환경이라면, /28로 설정하여 여유분을 가지고 만들어두는 것이 좋습니다. 그러나 서브넷 확장이 불필요하고 IP 주소 수가 중요한 때에는 /27로 서브넷을 생성하는 것이 더 적합할 수 있습니다. 이렇듯 서브넷을 나눌 때 IP 주소를 우선시할지, 서브넷 확장을 우선시할지 결정하는 것이 중요합니다. 또한 AWS에서 서브넷의 CIDR 중 다음 5가지는 사용할 수 없습니다.
10.94.4.0 : 네트워크 주소입니다.
10.94.4.1 : AWS가 VPC 라우터용으로 예약했습니다.
10.94.4.2 : AWS에서 예약
10.94.4.3 : 향후 사용을 위해 AWS에서 예약합니다.
10.94.4.255 : 네트워크 브로드캐스트 주소입니다.
이 외, IP 사용이 필요하게 되는 케이스는 다음과 같습니다.
EC2 인스턴스 생성
탄력적(Elastic) IP 할당
NAT 게이트웨이 생성
VPC 엔드포인트 생성
로드 밸런서(Load Balancer) 생성
ELB를 배치하는 서브넷은 /27이상의 CIDR이며, 적어도 빈 IP를 8개 준비해야 합니다. 서브넷 여유분까지 고려했다면 VPC CIDR를 생각할 차례입니다. 복수의 VPC를 생성할 때에도 VPC CIDR의 중복에 주의해야 합니다. 예를 들어 VPC CIDR가 172.100.16.0/20으로 설정된 경우, 이는 172.100.16.0부터 172.100.31.255까지의 IP 주소 범위를 포함합니다. 만약 두 번째 VPC의 세 번째 옥텟을 16 ~ 31 사이로 지정한다면 IP 주소 범위가 중복됩니다. 따라서 VPC를 생성할 때는 이미 생성된 다른 VPC의 CIDR 범위와 겹치지 않는지를 확인해야 합니다.
1.2 VPC 분할 패턴
AWS를 사용함에 있어 복수의 VPC를 구성할 수 있고, 목적에 따라 VPC를 나누거나 계정별로 VPC를 나눌 필요가 있습니다. 이번에는 VPC를 분할하는 패턴을 알아보겠습니다.
단일 계정으로 VPC 분할
단일 계정을 사용한다면 네 가지 패턴으로 나누어볼 수 있습니다.
단일 VPC 구성 : 단일 VPC에 복수의 환경과 시스템을 구성하는 방법입니다.
환경, 시스템별 VPC 구성 : 환경, 시스템에 따라서 VPC를 나누어 구성하는 방법입니다.
시스템별 VPC 구성 : 여러 시스템을 각 VPC로 나누는 방법입니다.
환경별 VPC 구성 : 각 환경(예 : 개발, 테스트, 운영)을 별도의 VPC로 나누어 구성하는 방법입니다.
환경별 AWS 계정 분할
환경별로 AWS 계정을 분할하면 두 가지 패턴으로 나누어볼 수 있습니다.
시스템별 VPC 구성 : 환경별로 AWS 계정을 나누고, 시스템별로 VPC를 나누어 구성하는 방법입니다.
단일 VPC 구성 : 환경별로 AWS 계정을 나누고, 단일 VPC에 시스템을 구성하는 방법입니다.
시스템별 AWS 계정 분할
환경별 VPC 구성 : 시스템별로 AWS 계정을 나누고, 환경별로 VPC를 나누어 구성하는 방법입니다.
단일 VPC 구성 : 시스템별로 AWS 계정을 나누고, 단일 VPC에 환경을 구성하는 방법입니다.
2. AWS 네트워크 구축을 위한 다양한 서비스 알아보기
AWS에서 네트워크를 구축함에 있어 VPC뿐만 아니라 다양한 서비스를 제공하고 있습니다. 온프레미스 환경과 VPC를 연결하고 싶다면 어떻게 해야 할까요? 또, 서로 다른 VPC를 연결하여 송수신을 하고 싶다면 어떻게 해야 할까요? 이번에는 이런 문제를 해결하는 다양한 서비스를 알아보겠습니다.
2.1 VPC 피어링
VPC 피어링Peering은 서로 다른 VPC를 연결하여 데이터 송수신을 도와주는 서비스입니다. 이 서비스는 복수의 VPC를 연결할 수 없으며, 일대일 관계를 가집니다. 같은 계정 내 VPC 간 연결과 계정과 계정 사이의 VPC 연결을 지원합니다. 또한 VPC 피어링 생성에 대한 비용은 무료이며, VPC 피어링을 통한 데이터 전송도 무료로 이용할 수 있습니다.
▼ VPC 피어링 구성 예
2.2 Site to Site VPN
AWS에서는 온프레미스와의 연결을 위한 다양한 방법을 제공하고 있으며, 그중 Site-to-Site VPN은 AWS와 온프레미스 간에 안전한 연결을 생성하는 서비스입니다. 이 서비스를 통해 온프레미스 네트워크와 AWS 클라우드 간에 암호화된 터널을 설정하여 데이터를 안전하게 전송할 수 있습니다. Site-to-Site VPN은 IPsec 프로토콜을 사용하여 터널을 설정하며, 고유한 공인 IP 주소를 사용하여 두 지점 간의 통신을 보호합니다. 이를 통해 민감한 데이터의 안전한 전송과 온프레미스 및 AWS 리소스 간의 확장 가능한 네트워크 연결이 가능해집니다. 2024년 서울 리전 기준으로 시간당 USD 0.05 요금이 발생합니다.
▼ Site to Site VPN 구성 예
2.3 트랜짓 게이트웨이
VPC 피어링은 VPC간 일대일 연결을 지원합니다. 그렇다면 VPC가 점점 늘어난다면 어떻게 될까요? VPC가 늘어나는 만큼 VPC 피어링 생성하여 연결한다면 네트워크 구성이 복잡해집니다. AWS에서는 이런 문제점을 해결할 수 있는 트랜짓 게이트웨이Transit Gateway를 제공하고 있습니다. 트랜짓 게이트웨이를 사용하면 여러 VPC 간의 연결을 중앙 집중화하여 관리할 수 있으며 Site to Stie VPN을 이용하여 다수의 VPC와 온프레미스가 상호작용할 수도 있습니다. 이를 통해 네트워크 관리 및 보안 정책 적용이 간편해지며, 확장성과 유연성을 제공합니다. 따라서 VPC 수가 늘어나더라도 네트워크 구성을 효율적으로 관리할 수 있습니다. 트랜짓 게이트웨이는 시간당 요금이 발생하며, 2024년 서울 리전 기준으로 연결당 0.07 USD이고,, 트랜짓 게이트웨이를 통해 처리된 데이터는 GB당 0.02 USD 요금이 발생합니다.
▼ 트랜짓 게이트웨이 구성 예
2.4 다이렉트 커넥트
다이렉트 커넥트Direct Connect는 Site-to-Site VPN과 유사하게 AWS 환경과 온프레미스를 연결하는 서비스입니다. Site-to-Site VPN은 온프레미스와 AWS 사이에 VPN 터널을 설정하여 안전한 연결을 제공하는 반면, 다이렉트 커넥트는 물리 전용선을 통해 비공개 접속을 시도하며, 고속 네트워크 대역에서 안정적인 통신을 제공합니다. Site-to-Site VPN은 단기간에 도입이 가능하고 비용이 비교적 낮다는 장점이 있습니다. 반면에 다이렉트 커넥트는 물리 전용선을 사용하여 고속 및 안정적인 연결을 제공하나, 초기 설정 및 구축에는 시간과 비용이 더 많이 소요될 수 있습니다. 이런 다이렉트 커넥트의 접속 방식은 두 가지로 나누어볼 수 있습니다.
▼ 단일 가상 프라이빗 게이트웨이를 통한 다이렉트 커넥트 구성
먼저 단일 가상 프라이빗 게이트웨이Virtual Private Gateway를 통한 다이렉트 커넥트 구성입니다. 데이터센터 운영 업체 등 별도의 전문 업체를 통해 전용선을 구성하면 AWS에서는 가상 인터페이스Virtual Interface가 생성됩니다. 가상 인터페이스는 AWS 환경과 온프레미스 환경을 원활하게 연결하게 도와줍니다. 이런 가상 인터페이스와 가상 프라이빗 게이트웨이를 연결하는 것으로 온프레미스와 AWS 환경을 연결할 수 있습니다. 가상 프라이빗 게이트웨이 구성 자체에 비용은 발생하지 않습니다. 단일 가상 프라이빗 게이트웨이의 장단점은 다음과 같습니다.
▼ 다이렉트 커넥트 게이트웨이와 가상 프라이빗 게이트웨이를 통한 다이렉트 커넥트 구성
다음은 다이렉트 커넥트 게이트웨이Direct Connect Gateway와 가상 프라이빗 게이트웨이를 통한 다이렉트 커넥트 구성입니다.
다이렉트 커넥트 구성은 가상 프라이빗 게이트웨이와 유사하게 동작하지만 가상 프라이빗 게이트웨이 앞에 다이렉트 커넥트 게이트웨이를 추가하는 차이가 있습니다. 다이렉트 커넥트 게이트웨이는 가상 인터페이스와 일대일 관계를 갖지만, 최대 20개의 가상 프라이빗 게이트웨이를 연결할 수 있어서 하나의 가상 인터페이스로 여러 VPC를 연결할 수 있습니다. 이를 통해 네트워크 구성을 더욱 유연하게 관리할 수 있습니다. 다이렉트 커넥트 게이트웨이 구성 자체에 비용은 발생하지 않습니다. 다이렉트 커넥트 게이트웨이와 가상 프라이빗 게이트웨이 구성의 장점은 다음과 같습니다.
이 구성에는 이렇다할 단점은 없기 때문에 현재 AWS에서는 다이렉트 커넥트 게이트웨이와 가상 프라이빗 게이트웨이 구성으로 다이렉트 커넥트를 구성하는 것을 권장하고 있습니다.
3. AWS 네트워크 환경 구축하기
이번에는 앞에서 살펴본 내용을 바탕으로 AWS 클라우드포메이션을 이용하여 AWS 상에서 네트워크 환경을 구축하겠습니다.
3.1 클라우드포메이션으로 네트워크 환경 구축하기
01 단계 네트워크 환경 구축을 위한 클라우드포메이션의 yml 파일은 다음과 같습니다.
```네트워크 환경 구축을 위한 클라우드포메이션 yml 파일
파일 이름 : VPC.yml
클라우드포메이션 스택 생성 순서 : VPC.yml
```
클라우드포메이션 전체 코드는 깃허브 리포지터리 「chapter2」→「VPC」 폴더에서 확인할 수 있습니다. 이번에 구축할 네트워크 환경은 다음과 같습니다.
네트워크 구성은 2개의 퍼블릭 서브넷과 4개의 프라이빗 서브넷으로 구성되며, 인터넷 게이트웨이를 배치하여 퍼블릭 서브넷에서 인터넷과 송수신할 수 있도록 합니다.
02 단계부터는 클라우드포메이션 코드에 대해 설명하며, 클라우드포메이션으로 네트워크 환경을 구축하고 결과를 확인하고 싶다면 2.6.2절 ‘UI로 불러와 AWS 네트워크 환경 구축하기’부터 진행하시기 바랍니다.
02 단계 VPC.yml 파일에 네트워크 환경 구축에 사용할 파라미터를 추가하겠습니다.
```VPC.yml
Parameters: # ➊
SystemName: # ➋
Description: “System name of each resource names.”
Type: String
Default: “gr”
EnvName: # ➌
Description: “Environment name of each resource names.”
Type: String
Default: “product”
VPCParam: # ➍
Description: gr-product-vpc
Type: String
Default: 10.0.0.0/24
PublicSubnet1aParam: # ➎
Description: gr-product-public-subnet-1a
Type: String
Default: 10.0.0.0/27
PublicSubnet1bParam:
Description: gr-product-public-subnet-1b
Type: String
Default: 10.0.0.32/27
WebSubnet1aParam: # ➏
Description: gr-product-web-subnet-1a
Type: String
Default: 10.0.0.64/27
WebSubnet1bParam:
Description: gr-product-web-subnet-1b
Type: String
Default: 10.0.0.96/27
DatastoreSubnet1aParam: # ➐
Description: gr-product-datastore-subnet-1a
Type: String
Default: 10.0.0.128/27
DatastoreSubnet1bParam:
Description: gr-product-datastore-subnet-1b
Type: String
Default: 10.0.0.160/27
```
➊ 클라우드포메이션에서는 파라미터를 이용해 각 항목에 사용자 지정 값을 입력할 수 있습니다. 하드 코딩을 피하고 코드를 간결하게 유지하고자 파라미터를 이용합니다. 파라미터 이름은 SystemName과 같이 임의로 지정할 수 있으며 String문자열 , Number정수와 같은 여러 입력 타입을 지원합니다. ➋ 구축할 환경의 시스템 이름을 정의하는 파라미터입니다. ➌ 구축할 환경의 이름을 정의하는 파라미터입니다. ➍ VPCParam이라는 파라미터 이름을 정의하여 VPC의 CIDR를 정의합니다. ➎ 퍼블릭 서브넷의 CIDR를 정의합니다. ➏ 프라이빗 서브넷의 CIDR를 정의합니다. 이 프라이빗 서브넷은 웹 서버를 배치하기 때문에 주로 NAT 게이트웨이의 라우팅을 설정합니다. ➐ DatastoreSubnet이라고 정의한 프라이빗 서브넷은 외부와의 연결이 완전히 차단되어 있으며, 인터넷 게이트웨이, NAT 게이트웨이의 라우팅 설정 또한 없습니다. 이런 서브넷에는 주로 데이터베이스와 같이 외부와의 연결을 완전히 차단하고자 하는 서비스를 배치합니다.
03 단계 VPC.yml 파일에 VPC와 서브넷 생성을 위한 Resources를 추가하겠습니다.
```VPC.yml
Resources: # ➊
VPC: # ➋
Type: “AWS::ec2::VPC” # ➌
Properties: # ➍
CidrBlock: !Ref VPCParam
EnableDnsSupport: “true”
EnableDnsHostnames: “true”
InstanceTenancy: default
Tags: # ➎
- Key: Name
Value: !Sub ${SystemName}-${EnvName}-vpc
- Key: Env
Value: !Sub ${EnvName}
PublicSubnet1a: # ➏
Type: “AWS::ec2::Subnet”
Properties: # ➐
AvailabilityZone:
Fn::Select:
- 0
- Fn::GetAZs: “”
CidrBlock: !Ref PublicSubnet1aParam # ➑
VpcId: !Ref VPC # ➒
Tags: # ➓
- Key: Name
Value: !Sub ${SystemName}-${EnvName}-public-subnet-1a
- Key: Env
Value: !Sub ${EnvName}
```
➊ 클라우드포메이션에서는 Resources를 이용해 생성하고자 하는 리소스를 정의할 수 있습니다. ➋ 생성할 리소스의 이름은 VPC와 같이 임의로 지정할 수 있습니다. ➌ Resources 내에서 Type을 이용해 생성할 서비스를 정의합니다. ➍ Properties에서는 생성할 리소스의 속성을 정의할 수 있습니다. CidrBlock 항목은 VPC의 CIDR를 의미하는 것으로, VPC CIDR를 입력했던 파라미터를 불러와 CIDR를 정의합니다. 불러오는 방법은 !Ref 내장 함수를 사용하여 불러올 수 있는데, Ref는 reference의 약자로 파라미터 혹은 리소스에 대한 정보를 반환할 때 사용합니다. ➎ 생성할 리소스의 이름과 환경 이름을 입력합니다. 태그는 키밸류 형식으로 입력할 수 있습니다. 입력한 파라미터의 문자열 변수를 불러오기 위해서 내장 함수 !Sub를 이용합니다. ➏ 이어서 서브넷을 정의하는 데, VPC와 마찬가지로 PublicSubnet1a라는 임의의 리소스 이름을 지정하고, Type에는 생성할 서비스 즉 서브넷을 정의합니다. ➐ 서브넷 속성을 지정합니다. 먼저 서브넷을 생성할 가용 영역을 지정합니다. 클라우드포메이션에서는 Fn::GetAZs 내장 함수로 간단하게 가용영역을 지정할 수 있으며, 이 내장 함수에는 지정된 지역의 가용 영역을 알파벳순으로 나열하고 있습니다. 예를 들어 서울 리전을 기준으로는 ap-northeast-2a, ap-northeast-2b, ap-northeast-2c, ap-northeast-2d와 같은 가용 영역이 저장되어 있으며 0은 배열의 첫 번째 값을 의미하므로 ap-northeast-2a가 됩니다. ➑ 파라미터를 불러와 서브넷의 CIDR를 정의합니다. ➒ VPC에서 작은 네트워크 단위로 나눈 서브넷은 VPC에 속해 있어야 하기 때문에 속할 VPC를 지정합니다. ➓ 마지막으로 서브넷의 이름과 환경명을 지정합니다. 나머지 서브넷들도 이와 같은 형식으로 정의합니다.
04 단계 VPC.yml 파일에 인터넷 게이트웨이 생성과 연결을 위한 Resources를 추가하겠습니다.
```VPC.yml
InternetGateway: # ➊
Type: “AWS::ec2::InternetGateway” # ➋
Properties: # ➌
Tags:
- Key: Name
Value: !Sub ${SystemName}-${EnvName}-igw
- Key: Env
Value: !Sub ${EnvName}
InternetGatewayAttachment: # ➍
Type: “AWS::ec2::VPCGatewayAttachment” # ➎
Properties: # ➏
InternetGatewayId: !Ref InternetGateway
VpcId: !Ref VPC
```
➊ 인터넷 게이트웨이를 생성하기 위해 임의의 리소스 이름을 지정합니다. ➋ Type을 이용해 생성할 인터넷 게이트웨이를 정의합니다. ➌ 인터넷 게이트웨이는 태그 이외에는 지정할 속성값이 없으므로 태그를 이용해 인터넷 게이트웨이의 이름과 환경명만을 지정합니다. ➍ 인터넷 게이트웨이를 생성했다면 VPC에 연결할 필요가 있기 때문에 연결을 위한 리소스를 별도로 생성합니다. ➎ Type에는 인터넷 게이트웨이 연결을 위해 VPCGatewayAttachment를 정의합니다. ➏ 연결을 위해 인터넷 게이트웨이와 연결하고자 하는 VPC를 입력합니다. 인터넷 게이트웨이는 서브넷 단위가 아닌 VPC 단위에서 생성되는 서비스입니다.
05 단계 VPC.yml 파일에 라우팅 테이블 생성하는 데 사용할 Resources를 추가하겠습니다.
```VPC.yml
PublicRTB : # ➊
Type: “AWS::ec2::RouteTable” # ➋
Properties: # ➌
VpcId: !Ref VPC
Tags: # ➍
- Key: Name
Value: !Sub ${SystemName}-${EnvName}-public-rtb
- Key: Env
Value: !Sub ${EnvName}
```
➊ 라우팅 테이블을 생성하기 위해 임의의 리소스 이름을 지정합니다. ➋ Type을 이용해 생성할 라우팅 테이블을 정의합니다. ➌ 라우팅 테이블은 VPC 단위에서 생성되는 서비스이기 때문에 라우팅 테이블을 생성할 VPC를 지정합니다. ➍ 마지막으로 라우팅 테이블의 태그를 입력합니다.
06 단계 VPC.yml 파일에 생성한 라우팅 테이블에 인터넷 게이트웨이 경로를 추가하는 Resources를 추가하겠습니다.
```VPC.yml
PublicRoute: # ➊
Type: “AWS::ec2::Route” # ➋
Properties: # ➌
RouteTableId: !Ref PublicRTB
DestinationCidrBlock: “0.0.0.0/0"
GatewayId: !Ref InternetGatew
```
➊ 라우팅을 위한 임의의 리소스 이름을 지정합니다. ➋ Type을 이용해 라우팅 작업을 위해 Route를 정의합니다. ➌ 라우팅 설정을 하고자 하는 라우팅 테이블을 입력하고, 목적지 CIDR를 입력하고 마지막으로 게이트웨이에는 인터넷 게이트웨이를 입력합니다.
07 단계 VPC.yml 파일에 라우팅 테이블과 서브넷을 연결하는 Resources를 추가하겠습니다.
```VPC.yml
PublicRTBAssociation1: # ➊
Type: “AWS::ec2::SubnetRouteTableAssociation” # ➋
Properties: # ➌
SubnetId: !Ref PublicSubnet1a
RouteTableId: !Ref PublicRTB
```
➊ 라우팅 테이블과 서브넷 연결을 위한 임의의 리소스 이름을 지정합니다. ➋ Type에는 라우팅 테이블과 서브넷 연결에 사용할 SubnetRouteTableAssociation을 정의합니다. ➌ 속성에는 서로 연결할 서브넷과 라우팅 테이블을 입력합니다. 나머지 서브넷들도 같은 방식으로 서브넷과 연결합니다.
08 단계 VPC.yml 파일에 템플릿의 출력을 반환하는 Outputs를 추가하겠습니다.
```VPC.yml
Outputs: # ➊
# VPC
VPC: # ➋
Value: !Ref VPC # ➌
Export: # ➍
Name: !Sub ${EnvName}-vpc
```
➊ Resources는 클라우드포메이션 템플릿에서 생성할 서비스의 리소스를 생성하는 속성들을 정의하는 것이었다면, Outputs는 템플릿에서 생성한 리소스를 출력하고 반환하는 역할을 합니다. Outputs를 이용하여 리소스를 출력한다면, 출력한 리소스를 다른 템플릿에서 사용할 수 있습니다. ➋ VPC를 출력하기 위해 임의의 이름을 지정합니다. ➌ Value에는 출력할 리소스를 지정합니다. ➍ Export에서는 어떤 이름으로 리소스를 출력할지 지정합니다. 나머지 서브넷을 포함한 리소스들도 같은 방법으로 출력을 진행합니다.
3.2 UI로 불러와 AWS 네트워크 환경 구축하기
다음은 AWS 네트워크 환경 구축을 어떻게 하는지 UI를 통해 확인해봅시다.
01 단계 우선 클라우드포메이션 스택을 생성합니다. ➊ 클라우드포메이션 스택 이름을 입력합니다. ➋ 클라우드포메이션 템플릿에서 입력했던 파라미터들이 UI로 반환되어 자동으로 파라미터가 완성됩니다. 필요에 따라 UI에서 파라미터 값을 변경할 수 있습니다. ➌ 스택 이름과 파라미터 값을 확인했다면 [다음]을 클릭합니다.
02 단계 스택 옵션 구성을 확인합니다.
스택 옵션 구성은 기본값을 유지한 상태로 ➍ [다음]을 클릭합니다.
03 단계 생성할 템플릿을 확인하고 클라우드포메이션 스택을 생성합니다. 검토 및 작성 화면에서 입력한 스택 이름과 파라미터 값을 확인하고 ❶ [전송] 버튼을 클릭하여 스택을 생성합니다.
04 단계 클라우드포메이션 스택 생성을 확인합니다. 스택 생성은 ‘CREATE_IN_PROGRESS’를 거쳐 ‘CREATE_COMPLETE’로 변경되는 과정을 확인할 수 있습니다. 이벤트 탭에서 생성된 리소스를 확인할 수 있으며 출력 탭을 통해서 Outputs를 이용해 출력한 리소스 목록을 확인할 수 있습니다.
05 단계 VPC 콘솔 화면에서 구축한 네트워크 환경을 확인합니다. VPC 콘솔 화면으로 이동하면 생성된 네트워크 리소스를 확인할 수 있습니다.
