학습주제
VPC
학습내용
VPC는 Virtual Private Cloud의 약자로, AWS(Amazon Web Services)에서 제공하는 가상 네트워킹 환경입니다. VPC를 사용하면 사용자는 AWS 클라우드에서 자신만의 가상 네트워크를 정의하고, 제어할 수 있습니다.
VPC는 사용자가 AWS 리소스를 실행할 수 있는 가상 네트워크이며, 사용자가 선택한 IP 주소 범위를 가집니다. 사용자는 VPC의 서브넷 설정, 라우팅 테이블, 네트워크 게이트웨이, 보안 설정 등을 통해 네트워크 환경을 자세히 제어할 수 있습니다.
사용자가 정의한 가상의 네트워크
IDC 센터, 데이터 센터에서 운용하는 네트워크와 유사한 개념
실질적으로 데이터센터는 장비, 스위치로 네트워크를 구성
클라우드 안에서 VPC 가상의 네트워크 망으로
전체적인 어플리케이션을 관리함.
여러개의 VPC를 둘 수 있고, 각각의 VPC를 연결할 수 있는 peering connection이 있어서 VPC 간의 연결에서 사용ㄹ
VPC 안에는 여러가지 서브넷을 둬서 운용할 수 있는데 Private 서브넷, 퍼블릭 서브넷이 있을 수 있음. 각각의 네트워크나 장비를 운용할 수 있다.
VPC를 생성하면, 이 VPC는 사용자가 정의한 IP 주소 범위를 가지게 됩니다. 예를 들어, 10.0.0.0/16 이라는 CIDR 블록을 가질 수 있습니다.
이 VPC 내에서 서브넷을 생성할 수 있습니다. 각 서브넷은 VPC의 IP 주소 범위 중 일부를 사용합니다. 예를 들어, 10.0.1.0/24 라는 서브넷을 생성할 수 있습니다.
EC2 인스턴스를 생성하고, 이를 위에서 생성한 서브넷에 연결합니다. 이 인스턴스는 서브넷의 IP 주소 범위 내에서 IP 주소를 할당받게 됩니다.
보안 그룹을 생성하고, 이를 EC2 인스턴스에 연결합니다. 보안 그룹의 인바운드 및 아웃바운드 규칙을 설정하여, 인스턴스에 대한 네트워크 트래픽을 제어할 수 있습니다.
네트워크 주소와 호스트 주소는 IP 주소에서 각각의 역할을 나타내는 부분이에요.
네트워크 주소는 IP 주소에서 해당 네트워크를 식별하는 역할을 합니다. 예를 들어, 192.168.0.0/24라는 CIDR 주소를 생각해봅시다. 여기서 192.168.0.0은 네트워크 주소입니다. 네트워크 주소는 네트워크를 대표하는 주소로, 같은 네트워크에 속한 장치들은 이 주소를 가지고 있게 됩니다.
호스트 주소는 네트워크 내에서 각각의 장치를 식별하는 역할을 합니다. 이는 네트워크 주소를 제외한 나머지 부분을 말합니다. 예를 들어, 192.168.0.1은 위에서 언급한 CIDR 주소에서 호스트 주소에 해당하는 부분입니다. 호스트 주소는 특정 장치를 식별하기 위해 사용되며, 같은 네트워크 내에서는 고유한 값이어야 합니다.
네트워크 주소와 호스트 주소는 IP 주소의 구성 요소로, 네트워크 주소는 특정 네트워크를 식별하고 호스트 주소는 해당 네트워크 내에서 각각의 장치를 식별하는 역할을 합니다. 이해하기 쉽게 말하면, 네트워크 주소는 주소록의 그룹 이름이고 호스트 주소는 개별적인 전화번호라고 생각할 수 있습니다.
네트워크 주소는 네트워크를 식별하고, 브로드캐스트 주소는 네트워크 내의 모든 장치에게 메시지를 보내는 역할을 합니다.
/24 라면 192.168.0까지가 네트워크고 그 후 0이 1~254까지의 호스트 주소를 갖게 된다. 즉 /8, 16, 24 등에 따라 뒤의 호스트 주소의 범위가 달라진다.
서브넷은 VPC(CIDR)의 IP 주소범위. 서브넷은 단일 가용 영역에 상주해야함.(다른 서브넷끼리 달리 상주) 고가용성, 리소스의 격리 보장.
VPC와 서브넷에 IPv4, IPv6 할당 할 수 있다.
라우팅 테이블을 사용하여 서브넷 또는 게이트웨이의 네트워크 트래픽이 전달되는 위치를 결정
요약하자면, 게이트웨이는 서로 다른 네트워크를 연결하고 패킷을 전달하여 네트워크 간의 통신을 가능하게 하는 장치입니다. 이는 데이터의 전송, 주소 변환, 프로토콜 변환, 보안 기능 등을 수행하며, 네트워크의 효율성과 보안을 유지하는 데 중요한 역할을 합니다.
일반적으로 VPC 내의 리소스는 인터넷을 통해 AWS 서비스와 통신합니다. 하지만 VPC 엔드포인트를 사용하면 VPC 내의 리소스가 퍼블릭 인터넷을 거치지 않고 AWS 서비스와 직접 통신할 수 있습니다. 이는 보안 및 네트워크 성능 측면에서 이점을 제공합니다.
VPC 엔드포인트는 다양한 AWS 서비스 (예: S3, DynamoDB, SNS 등)에 대한 프라이빗 연결을 제공합니다. VPC 내에 엔드포인트를 생성하면 해당 서비스의 리전 내에 있는 프라이빗 IP 주소를 사용하여 VPC 내의 리소스와 해당 서비스 간의 통신이 이루어집니다.
NAT(네트워크 주소 변환) 장치는 프라이빗 IP 주소와 퍼블릭 IP 주소 간의 통신을 가능하게 하는 장치입니다.
일반적으로 사설 네트워크에서는 프라이빗 IP 주소를 사용하여 내부 디바이스들이 통신합니다. 그러나 외부 네트워크나 인터넷과의 통신을 위해서는 퍼블릭 IP 주소가 필요합니다. 이때 NAT 장치는 프라이빗 IP 주소를 퍼블릭 IP 주소로 변환하여 네트워크 간의 통신을 가능하게 합니다
트래픽 미러링은 일반적으로 네트워크 스위치나 라우터에서 수행됩니다. 트래픽을 복제하고 전송하기 위해 미러 포트, 스패닝 트리 포트, 가상 머신 등의 기술이 사용될 수 있습니다.
요약하자면, 트래픽 미러링은 네트워크에서 발생하는 트래픽을 복사하여 모니터링, 보안 분석 또는 성능 최적화를 위해 다른 장치나 시스템으로 전송하는 기술입니다. 이를 통해 네트워크 동작을 실시간으로 감시하고 분석할 수 있습니다.
Transit Gateway는 AWS 클라우드 환경에서 복잡한 네트워크 구성을 간소화하고, 다양한 VPC 및 온프레미스 네트워크 간의 연결을 통합하여 중앙에서 관리할 수 있는 편리한 서비스입니다. 이를 통해 기업은 확장성과 효율성을 높이면서 안전하고 유연한 네트워크 인프라를 구축할 수 있습니다.
요약하자면, VPN 연결은 온프레미스 네트워크와 VPC를 안전하게 연결하는 기술입니다. VPN을 통해 인터넷을 통한 데이터 전송이 암호화되고 안전한 터널을 통해 온프레미스 네트워크와 VPC 간의 통신이 이루어집니다. 이를 통해 클라우드와 온프레미스 인프라의 통합이 가능해지며, 데이터의 보안성과 안정성을 유지하면서 확장성과 유연성을 제공하는 하이브리드 네트워크 환경을 구성할 수 있습니다.
온프레미스 네트워크에는 기업의 중요한 데이터, 내부 시스템, 서버, 애플리케이션 등이 저장되고 운영됩니다. 이러한 정보와 시스템은 기업의 경영 비밀, 고객 정보, 재무 데이터 등 중요한 자산을 포함할 수 있습니다.
CIDR, 사이더라고 부른다
서브넷팅을 통해
Newtwork Bits
Host Bits
8자리씩 끊어서 10진수로 변환한다. 전환하면 우리가 아는 아이피 주소가 나온다
본격적으로 사이더 표현
어디까지 네트워크/호스트로 표현할지
24라면 앞에서 24번째까지 네트워크 주소, 나머지 8자리는 내가 사용할 아이피 대역
26이라면 나머지 6자리는 호스팅 영역 2~31까지, 1은 게이트웨이, 32는 브로드캐스트
IP 대역을 많이 쓰고 싶다고 하면 /26보단 /24로, IP 대역을 줄이고 싶다면 네트워크 영역을 더 늘리면 된다.
VPC 영역을 줄때 CIDR 표기법으로 부여함
리전 안에 여러개의 가용영역이 있고 가용영역 안에 각각의 서브넷을 넣게 되어 있다
VPC 영역은 172.31.0.0/16의 대역을 갖게 되면 서브넷은 그보다 작은 대역의 서브넷을 갖게 된다
이에 172.31.0.0/24, 172.31.2.0/24 네트워크 범위는 24로 잡고 호스트범위가 더 작은 것을 확인 할 수 있다.
각각의 서브넷은 가용영역에 들어가 있다
우리는 프라이빗 서브넷과, 퍼블릿 서브넷으로 나눌 수 있는데, 퍼블릭 서브넷은 외부와 인터넷을 할 수 있을 서브넷. -> 인터넷 게이트웨이가 설정되어 있음
프라이빗 서브넷 -> Nat gateway를 설정해 야함
퍼블릭 서브웨이는 인터넷 게이트웨이가 할당되어 있다 자유롭고 통신이 가능함.
인스턴스와 서비스를 하기 위해서 ELB로 다이렉트로 연결해서 사용할 수 있음
앞단에 보면 개발자, 사용자 인터넷을 타고오면 프론트로 만나는데 Cloudfront나 s3 버킷 호스팅 정보를 받고, 인터넷 게이트웨이를 통해 안쪽으로 들어온다. 이는 퍼블릭 서브넷과 연결되어 있고 퍼블릭 서브넷은 다시 Nat 게이트웨이를 통해 프라이빗 서브넷에 연결됨.
VPC CIDR: 10.0.0.0/16
각 서브넷들은 10.0.1~6.0/24 로 할당되어 있음. VPC 영영 안쪽으로 잡혀 있다.
기본적인 프로젝트를 할때 이정도만 세팅해서 된다
내 화면의 VPC 생성으로 들어가보았다. 강의와 조금 다름
VPC만 선택
이름 넣고
CIDER 영역 수동으로 잡아봄
Private IP 대역은 다음과 같다.
VPC등을 누르면 VPC 외에, 서브넷 라우팅 테이블, 네트워크 연결, Nat Gateway까지 자동적으로 세팅해줄 수 있는 환경이 나온다. (이게 더 쓰기 좋아보인다)
굉장히 편리해졌다고 한다. 예전엔 서브넷, 라우팅 테이블 등을 따로 만들어줬었음
기본 VPC 화면이다. 저번에 my-server를 만들면서 기본 vpc를 생성했었다.
VPC 1개 생성함
VPC는 내부적으로 각 서브넷이 있어야한다
서브넷으로 들어가
위의 방법대로 만드는 것보다는
일단 새로운 VPC를 만들어본다
자동적으로 생성해준다. 서브넷을 퍼블릭, 프라이빗으로 나누는 것도 일이다.
보면 간단하게 제공을 하고 있다.
하단에 이렇게 몇개를 설정할건지만 만들어주면 알아서 생성해준다.
각 가용영역에는 퍼블릭과 프라이빗이 각각 생성된 것을 볼 수 있다.
마찬가지로 서브넷의 종류에 따른 갯수로 설정할 수 있다.
퍼블릭을 선택하면 자동적으로 인터넷을 할수 있는 인터넷 게이트웨이가 설정된다.
Private 서브넷은 Nat 게이트웨이가 필요하다
Nat Gateway를 1개 설정하니 두 프라이빗 서브넷에 대한 Nat 게이트웨이가 연결되었다
VPC를 생성해본다
맞습니다. S3 버킷은 외부 인터넷과 연결되어 있더라도 프라이빗 서브넷에서는 직접적인 액세스가 불가능합니다. 프라이빗 서브넷은 외부와의 통신이 차단된 환경으로, 인터넷을 통한 외부 접근이 제한됩니다.
프라이빗 서브넷에서 S3 버킷에 접근하기 위해서는 다른 방법을 사용해야 합니다. 예를 들어, VPC 엔드포인트를 설정하여 VPC 내에서 S3에 접근하거나, 프라이빗 서브넷에서 NAT 게이트웨이나 프록시를 사용하여 인터넷을 통해 간접적으로 S3 버킷에 액세스할 수 있습니다. 이러한 방법을 통해 프라이빗 서브넷에서 S3 버킷에 안전하게 연결할 수 있습니다.
VPC가 정상적으로 생성되었다.
서브넷이 자동으로 생성된 것을 볼 수 있다.
IP 대역이 임의로 설정되어 있다.
만일 직접 만든다고 하면 IP대역도 직접 설정
라우팅을 살펴보면 igw 로 시작하는게 인터넷이다
이 인터넷 게이트웨이가 있는건 퍼블릭이다.
프라이빗 서브넷에서 외부 인터넷에 연결하기위한 nat 게이트웨이
네, 프라이빗 서브넷에 NAT 게이트웨이를 배치하면 인터넷에 액세스할 수 있도록 하는 기능이 추가됩니다. 일반적인 게이트웨이와 NAT 게이트웨이 사이에는 몇 가지 기능적인 차이가 있습니다.
통신 방향: 일반적인 게이트웨이는 외부로부터 들어오는 요청을 내부로 전달하거나 내부에서 외부로 나가는 트래픽을 처리합니다. 반면에 NAT 게이트웨이는 내부에서 외부로 나가는 트래픽만을 처리하며, 외부에서 내부로 직접적인 접근은 차단됩니다.
IP 주소 변환: NAT 게이트웨이는 내부 리소스들이 인터넷에 액세스할 때 내부 IP 주소를 공용 IP 주소로 변환하는 역할을 합니다. 이를 통해 내부 리소스들은 공용 IP 주소를 사용하여 인터넷과 통신할 수 있게 됩니다.
보안: NAT 게이트웨이는 내부 리소스들을 외부에 감추고 보호하기 위해 네트워크 주소 변환을 수행하므로, 내부 리소스들의 보안을 강화할 수 있습니다. 외부에서 직접적으로 내부 리소스에 접근할 수 없으므로 추가적인 보안 측면을 제공합니다.
요약하면, NAT 게이트웨이는 프라이빗 서브넷의 인스턴스들이 인터넷에 안전하게 연결될 수 있도록 IP 주소 변환과 보안 기능을 제공하는 반면, 일반적인 게이트웨이는 내부와 외부 간의 트래픽을 전달하는 역할을 합니다.
탄력적 IP가 세팅되어 있음. 고정 IP임. 외부에서 IP를 열어주거나 포트 열어줄 때 유용하게 쓰임.
이전까진 디폴트 VPC를 썼었으나
이제 서비스를 할때 지금 만든 VPC로 서비스를 해본다.
일전에 만든 SSL 인증서 요청이 하도 안돼 다시 보니 data-hamster을 data.hamster로 했다.
다시 신청함.