brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Nov 03. 2019

173. CLI로 VPC와 Subnet 만들기

<1 > 개요 

현황 

신규 서비스가 생기면  vpc와 subnet을 생성해야 한다.


문제점

웹 consol을 이용해 구축하면  2시간 정도 소요된다.


개선방향

aws cli를 통해  30분 이내에 구축하도록 하자.



<2> 구축하려는 vpc



<3> 작업 순서

1. 디폴트 VPC를 삭제한다.

2.  AWS 로그온해서 api 계정 생성과 권한 할당한다.

3.  PC에서 환경설정을 한다.

4. aws  cli로 vpc 생성한다.

5. aws  cli로 subnet  생성한다.




1. 디폴트 VPC를 삭제한다.



2.  AWS 로그온해서 api 계정 생성과 권한 할당한다.

웹 콘솔로 접속해 api 계정 1개는 만들어야 한다.

권한은 임시로 admin을 사용한다.



3.  PC에서 환경설정을 한다.


C:\> aws configure
AWS Access Key ID [****************CY54]: xxxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [****************d4bh]: xxxxxxxxxxxxx
Default region name [ap-northeast-2]:
Default output format [None]:


확인

C:\> aws s3 ls



4. aws  cli로 vpc 생성한다.


C:\> aws ec2 create-vpc --cidr-block 10.10.200.0/22
{
"Vpc": {
"CidrBlock": "10.10.200.0/22",
"DhcpOptionsId": "dopt-39 d17452",
"State": "pending",
"VpcId": "vpc-06c91498e9c849346",
"OwnerId": "645852769336",
"InstanceTenancy": "default",
"Ipv6CidrBlockAssociationSet": [],
"CidrBlockAssociationSet": [
{
"AssociationId": "vpc-cidr-assoc-018eb76d684efbd4c",
"CidrBlock": "10.10.200.0/22",
"CidrBlockState": {
"State": "associated"
}
}
],
"IsDefault": false,
"Tags": []
}
}




5. aws  cli로 subnet  생성한다.


aws ec2 create-subnet --vpc-id vpc-06c91498e9c849346 --cidr-block 10.10.200.0/26

// 서브넷생성시 AZ를 지정하는 설정을 찾아 적용이 필요함.


aws ec2 create-subnet --vpc-id vpc-0dfc4a60454e2a578 --cidr-block 10.10.201.0/26

aws ec2 create-subnet --vpc-id vpc-0dfc4a60454e2a578 --cidr-block 10.10.202.0/26

vpc-0dfc4a60454e2a578


6. IGW 만들기

[root@ip-10-0-0-45 playbook]# aws ec2 create-internet-gateway

{

    "InternetGateway": {

        "Tags": [],

        "Attachments": [],

        "InternetGatewayId": "igw-0911b6d57311e353a"

    }

igw-0911b6d57311e353a


7. IGW 연결

aws ec2 attach-internet-gateway --vpc-id vpc-0dfc4a60454e2a578 --internet-gateway-id igw-0911b6d57311e353a


8.  라우팅 테이블 만들기 

aws ec2 create-route-table --vpc-id vpc-0dfc4a60454e2a578


[root@ip-10-0-0-45 playbook]# aws ec2 create-route-table --vpc-id vpc-0dfc4a60454e2a578

{

    "RouteTable": {

        "Associations": [],

        "RouteTableId": "rtb-0b8a32019ee7fbb3b",

        "VpcId": "vpc-0dfc4a60454e2a578",

        "PropagatingVgws": [],

        "Tags": [],

        "Routes": [

            {

                "GatewayId": "local",

                "DestinationCidrBlock": "10.10.200.0/22",

                "State": "active",

                "Origin": "CreateRouteTable"

            }

        ],

        "OwnerId": "605701001576"

    }

}

[root@ip-10-0-0-45 playbook]#



9. 디폴트로 저정하기

aws ec2 create-route --route-table-id  rtb-0b8a32019ee7fbb3b --destination-cidr-block  0.0.0.0/0 --gateway-id  igw-0911b6d57311e353a



10.  서브넷 확인하기 

aws ec2 describe-subnets --filters "Name=vpc-id,Values=vpc-0dfc4a60454e2a578" --query 

'Subnets[*].{ID:SubnetId,CIDR:CidrBlock}'


[

    {

        "CIDR": "10.10.201.0/26",

        "ID": "subnet-03799d0d960c2203d"

    },

    {

        "CIDR": "10.10.202.0/26",

        "ID": "subnet-029fdb8079535939f"

    },

    {

        "CIDR": "10.10.200.0/26",

        "ID": "subnet-0f022f3097b772437"

    }

]

[root@ip-10-0-0-45 playbook]#



11. 서브넷에 라우팅 붙이기

aws ec2 associate-route-table  --subnet-id subnet-029fdb8079535939f --route-table-id rtb-0b8a32019ee7fbb3b

{

    "AssociationState": {

        "State": "associated"

    },

    "AssociationId": "rtbassoc-04e09de61235a9967"

}

[root@ip-10-0-0-45 playbook]#




참고

https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/vpc-subnets-commands-example.html


연관 자료

AWS CLI로  VPC 만들기 https://brunch.co.kr/@topasvga/747

AWS CLI로 서버 만들기 https://brunch.co.kr/@topasvga/872

AWS CLI로 서버 생성법  https://brunch.co.kr/@topasvga/345

테라폼으로 VPC 만들기 https://brunch.co.kr/@topasvga/780



감사합니다.



브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari