<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
감사합니다.