이번 실습에는 커스텀 VPC와 Subnet을 만들고 인터넷이 연결가능한 Public Subnet과 Private Subnet으로 나누어 만들어 주려고합니다. 마지막으로 NACL을 설정하고 만들어진 VPC에 EC2를 띄어보려고 합니다.
1. Custom VPC 만들기
기본 VPC를 제외한 Custom VPC를 한번 생성해보록 하겠습니다.
2. Subnet 생성
저는 CIDR를 16으로 지정하여 16비트의 호스트 주소를 사용하도록 하겠습니다.
VPC망이 잘 생성됐음을 알 수 있고, 하나하나 부품을 생성하여 VPC를 조립해보겠습니다.
먼저 퍼블릭 서브넷과 프라이빗 서브넷을 구성해보록 하겠습니다.
각각의 서브넷을 사용하여 퍼블릭 서브넷은 10.0.0.x의 ip 주소를 프라이빗 서브넷은 10.0.1.x의 ip 주소를 갖도록 CIDR을 설정해주었고 각각의 가용영역을 다르게 설정해주었습니다.
현재 AWS 환경이기 때문에 사용가능한 ip는 서로 256개의 대역중 5개를 제외하여 251개가 가능한 것을 알 수 있습니다.
3.Internet GateWay 생성
인터넷 게이트웨이가 있으면 패킷들이 VPC 밖으로 나갈 수 없기때문에, 이제 VPC 밖으로 나갈 수 있게 인터넷 게이트웨이 통로를 만들어줍니다. IGW를 만들어줬으면 인터넷 게이트웨이 항목에 작업 > VPC 연결을 눌러 VPC에 붙여주도록 합니다.
VPC에 잘 연결된 것을 알 수 있고, 이로서 이제 VPC에서 패킷이 나갈 수 있음을 확인할 수 있습니다.
4. Route Table 생성
이제 라우팅 테이블을 설정해줌으로써 라우트 경로를 알려줄 수 있게 되었습니다. 라우트 테이블을 1개가 아닌 2개로 설정해놓는 이유는 퍼블릭 라우팅 테이블을 한개만 놓게되면 나중에 서브넷을 설정하였을때, 무조건 인터넷으로 연결되기 때문에 라우팅 테이블을 두개 두어서 퍼블릭 서브넷만 인터넷과 통신할 수 있게 설정해주어야 합니다.
저는 퍼블릭 라우팅 테이블을 한개 만들어주었고 기존에 있던 기본 라우팅테이블을 프라이빗 라우팅 테이블로 사용했습니다.
10.0.0.0/16에 대한 트래픽은 로컬로 보내주고 그 외 나머지 트래픽은 인터넷 게이트웨이를 통해 밖으로 보내주도록 설정해줍니다. 또한, 퍼블릭 서브넷을 라우팅 테이블에 붙여주도록 설정합니다.
이렇게 하면, 프라이빗 서브넷은 인터넷과 통신이 안되기 때문에 기본적으로 보안성이 강화됩니다.
5.NACL 설정
기본적으로 VPC를 생성하면 NACL이 하나 제공되고 있습니다. 따라서 기본적인 NACL은 프라이빗 서브넷에 적용시키고 하나를 더 추가하여 퍼블릭 서브넷에 대한 NACL을 만들어 주도록합니다.
기본적으로 NACL을 생성하면 모두 트래픽이 거부되어 있는데, NACL은 요청 정보를 따로 저장하지 않는다는 Stateless 방식을 지니고 있기 때문에 트래픽에 대한 규칙을 허용해줘야 통신이 가능하게 됩니다. 따라서 인바운드 규칙과 아웃바운드 규칙을 편집해주어야 합니다.
퍼블릭 NACL의 규칙 설정입니다. 규칙 번호는 우선순위로 규칙번호가 작을 수록 우선순위로 설정하게 됩니다.
퍼블릭 NACL은 HTTP , HTTPS , SSH의 인바운드 규칙을 가지게 설정해주고 아웃바운드는 랜덤한 임시포트로 나갈 수 있는 범위를 설정해주도록 합니다.
6.인스턴스 실행
퍼블릭 인스턴스를 만들어줄 때, 네트워크에서 방금 만든 VPC와 퍼블릭 서브넷을 설정해주면 되는데 퍼블릭 IP 자동 할당을 반드시 활성화 시켜주어야 합니다. 처음에는 비활성화로 체크되어 있는데, 이는 서브넷에서 자동 IP 할당을 설정해 주면 됩니다.
저는 아마존 리눅스 AMI를 선택해주었고, 웹 서비스 동작을 확인하기 위해 사용자 데이터에 다음과 같은 코드를 추가하여 EC2가 만들어질때, 함께 코드도 작동되도록 작성해줍니다.
#!/bin/bash
yum install httpd -y
service httpd start
프라이빗 인스턴스를 시작할때는, 모든 조건을 동일하되
퍼블릭 IP 자동 할당을 비활성화 시켜주고 서브넷을 프라이빗 서브넷을 골라주도록 합니다.
이때 프라이빗 서브넷을 서울리전의 2b 가용영역을 골랐을 경우 프리티어의 인스턴스 유형을 사용하지 못하는데,
2c로 다시 만들어주면 해결됩니다.
이제 퍼블릭 IP의 주소로 웹사이트를 들어가보면
웹 페이지가 잘 동작함을 알 수 있습니다. 프라이빗 EC2의 경우 퍼블릭 IP를 할당받지 않아 접속할 방법이 현재로선 없는데, 배스천 호스트를 사용 혹은 Nat를 이용하여 접속할 수 있게 만들어주어야 합니다.
'Cloud' 카테고리의 다른 글
[VPC] 3. A-Z까지 Bastion Host NAT GateWay 설정 (0) | 2023.07.31 |
---|---|
[VPC] 1. A - Z까지 VPC의 개념 잡아보기 (0) | 2023.07.18 |
Aws EC2에서 Filezilla 연결하기 (0) | 2023.05.04 |
aws ec2 환경에서 Chrome,ChromeDriver,Selenium 설치하는법 (0) | 2023.05.04 |
AWS Lambda로 게시판 서버 API 만들어보기 ① (0) | 2023.04.26 |