오늘은 AWS계정을 생성하고나서 제일 처음으로 해야할 VPC설정을 하려고한다.
VPC가 는 Virual private colud 의 약자로 가상의 네트워크 를 만드는 것이다.
가상 네트워크를 왜 만드는지 알아보려고 한다.
1. 보안 및 제어
2. 스케일링 및 유연성
3. 비용 절감
4. 사설 네트워크 연결
5. 복잡성 감소
위의 내용은 chatGPT가 답변해준 내용이다. 결론으로 말하자면 네트워크를 구분해줘야하는데, A 사무실과 B 사무실이 있으면
이 두 사무실은 다른 네트워크를 사용하도록 분리해주는 것이 유연하고, 보안에 용이하다.
하지만 이를 분리하려면 물리적으로 서버를 따로따로 두는 것도 방법이긴하나, 이를 가상으로 분리할 수 있다. 이를 VLAN이라고 한다.
아마 컴퓨터를 전공한 사람이면 컴퓨터 네트워크 시간에 배웠을 것이다.
이 VLAN을 AWS에서 설정 해줄 수 있는데, 이는 AWS VPC서비스에 들어가면 된다.
또한 AZ(Available-Zone) 별로 네트워크를 할당해 줄 수 있다.
aws에 vpc 탭에 들어가면 기본적으로 생성된 vpc가 존재한다. 우리는 우리만의 vpc를 만들기 위해 생성버튼을 눌러준다.
위 사진은 리전이 오래곤이지만, 실제 생성은 서울 리전에서 진행했다.
VPC 이름을 적어주고 CIDR표기법으로 VPC영역을 정해준다.
우리는 172.16.0.0/24로 172.16.0.0 ~ 172.16.0.255 까지 지정해주었다.
작업 탭을 누른 다음에 VPC 설정 편집을 눌러준다.
그리고 DNS 설정에서 DNS 호스트 이름 활성화를 체크 해준다. 그리고 저장버튼을 눌러준다.
그리고 왼쪽 탭에서 서브넷 탭을 들어가서 서브넷을 생성해준다.
우리가 만든 VPC안에 서브넷을 지정해줄것이다.
VPC ID에 방금 만든 VPC를 선택 해주고
서울리전은 가용역역(AZ)가 4개이다. 4개를 다 쓸 필요는 없지만 4개의 서브넷으로 구분해주기 위해 우리는 4개의 서브넷을 만들 것이다.
아까 우리의 VPC가 172.16.0.0/24 이기 때문에 서브넷마스크가 11111111.11111111.11111111.00000000 이다.
그래서 실제 우리가 VPC안에 영역은 172.16.0.0 ~ 172.16.0.255가 되는 것이다.
이 VPC안에 서브넷을 4개로 나눌 거기 때문에.
11111111.11111111.11111111.11000000 -> /26 으로 해주면 4개로 구분이 된다.
00xxxxxx, 01xxxxxx, 10xxxxxx, 11xxxxxx이므로 총 4개를 구분해주게 된다.
* VPC안에서 서브넷을 나누는 거기 때문에 VPC안에있는 IP로 지정해한다.
그래서 결론적으로 우리의 VPC에서는 다음과 같이 서브넷을 나눌 수 있다.
1. 172.16.0.0/26 -> 2a
2. 172.16.0.64/26 -> 2b
3. 172.16.0.128/26 -> 2c
4. 172.16.0.192/26 -> 2d
이렇게 서브넷을 나눌 수 있다.
이렇게 2d까지 만들어 주었다.
나는 연습을 위해 여러개 만들었는데, 여기서 방금 만든 my-subnet-0n을 다 서브넷 설정 편집에 들어가서
위와 같이 퍼블릭 IPv4 주소 자동 할당 활성화를 체크 해준다. 4개 다!!
다음으로는 인터넷게이트웨이를 설정 해주어야한다.
지금 우리가 만든거는 가상의 네트워크에 영역을 지정해주었으므로 인터넷이 연결이 안되어있다. 이를 인터넷 연결하기 위해 인터넷 게이트웨이 (IGA)에 연결해야한다.
인터넷 게이트 웨이 탭에서 생성하기 버튼을 누른다.
인터넷 게이트웨이 생성 버튼을 눌러준다.
이렇게 아까 만은 VPC를 연결해주고 연결버튼을 눌러준다.
그럼 상태가 Attached 로 바뀐것을 알 수 있다.
다음으로는 라우팅테이블에 등록해야한다.
라우팅 테이블 탭에 들어가면 내가 아까 만든 VPC를 선택한다.
아까 만든 IGA를 라우팅 테이블에 등록해야하므로 밑에 라우팅 탭에 들어가서 라우팅 편집을 눌른다.
그럼 여기서 라우팅 추가를 하는데 인터넷과 연결해야될 대상을 선택해야한다.
172.16.0.0/24를 제외한 나머지 ip들을 인터넷게이트웨이로 보내라는 뜻이다.
그럼 활성화 된것을 확인할 수 있다. 그다음으로 서브넷 연결을 해주어여한다.
그럼 명시적 서브넷연결이 지금 비어있는데, 내가만든 인터넷게이트웨이에 서브넷을 연결안해서 그렇다.
인터넷과 연결될 서브넷 1개를 정해준다. 나는 mysubnet01을 인터넷 게이트웨이에 연결해주려고한다.
쓰다보니까 my-subnet-04를 my-vpc-04라고 써버렸다,,, 이는 양해를 부탁한다..
명시적 서브넷 연결 에서 서브넷 연결 편집을 누른다.
그럼이제 my-subnet-01서브넷이 인터넷게이트에 연결 된 것이다.
명시적 서브넷 연결에 들어간 서브넷은 public이 된것이고, 명시적 연결이없는 서브넷은 pirivate이 된것이다.
아래는 어떨 때에 인터넷 게이트웨이를 연결해야하는지 chatGPT에게 물어봤다.
- 인터넷에서 접근 가능한 자원이 필요할 때: 예를 들어, 웹 서버를 호스팅하거나 인터넷에서 직접 다운로드가 필요한 경우에는 인터넷 게이트웨이가 필요합니다.
- 인스턴스가 인터넷에 접근해야 할 때: 패키지 업데이트, 소프트웨어 설치, 웹 서비스 API 호출 등을 수행해야 하는 경우에 인터넷 게이트웨이를 통한 연결이 필요합니다.
그러나 모든 서브넷이 인터넷에 직접 연결되어야 하는 것은 아닙니다. 보안이 중요한 애플리케이션, 중요한 데이터를 처리하는 서버 등은 인터넷과 직접 연결되지 않는 것이 좋을 수 있습니다. 이러한 인스턴스는 보안을 위해 프라이빗 서브넷(인터넷 게이트웨이에 연결되지 않은 서브넷)에 위치시키고, 필요한 경우에만 특정 서비스(예: NAT 게이트웨이 또는 VPC 엔드포인트를 통한 S3 액세스 등)에 접근하도록 구성할 수 있습니다.
* DB나 S3같은 경우는 인터넷이없어도 연결이 가능하기 때문에 보안상 인터넷연결을 안하고 사용게 구성하는게 좋다고한다!!
참고자료
https://my-studyroom.tistory.com/entry/AWS-VPC-%EC%83%9D%EC%84%B1%ED%95%98%EA%B8%B0
'AWS' 카테고리의 다른 글
ECR 스프링 부트 GitHub Action 설정하기 (0) | 2023.08.20 |
---|---|
AWS - IAM이란(1) (0) | 2023.07.05 |