AWS 기초와 VPC
AWS VPC?
Amazon Virtual Private Cloud(Amazon VPC)를 이용하게 되면, 사용자가 정의한 가상 네트워크로 AWS 리소스를 시작할 수 있다.
이 가상 네트워크로 AWS 리소스를 시작할 수 있다.
이 가상 네트워크는 AWS의 확장 가능한 인프라를 사용한다는 이점과 함께 고객의 자체 데이터 센테에서 운영하는 기존 네트워크와 매우 유사하다.
VPC 의 특징
- 계정 생성 시 default VPC를 만들어준다
- EC2, RDS, S3 등의 서비스 활용 가능
- 서브넷 구성
- 보안 설정(IP block, inbound outbound 설정)
- VPC Peering(VPC 간의 연결)
- IP 대역 지정 가능
- VPC는 하나의 Region 에만 속할 수 있다(다른 Region으로 확장 불가)
Availablity Zone
- 물리적으로 분리되어 있는 인프라가 모여 있는 데이터 센터
- 각 AZ는 일정 거리 이상 떨어져 있음
- 하나의 리전은 2개 이상의 AZ로 구성됨
- 지역에 천재지변을 대비하는 백업 용 AZ
- 각 계정의 AZ는 다른 계정의 AZ와 다른 아이디를 부여 받음
VPC 전체 구성 요소
Subnet
- VPC의 하위 단위(subnet+network)
- 하나의 AZ에서만 생성 가능하다.
- 하나의 AZ에는 여러개의 subnet을 생성 가능하지만, 왼쪽의 예시는 불가능하다.
Private subnet
- 인터넷에 접근 불가능한 subnet
Public subnet
- 인터넷에 접근 가능한 subnet
크게 본다면
Regin(VPC(AZ(Subnet)))
의 개념으로 생각하면 된다.
Ex)
CIDR
- 하나의 VPC 내에 있는 여러 IP주소를 각각의 Subnet으로 분리/분배하는 방법
- 1번째 서브넷 : 211.11.124.0/26 (211.11.124.0 ~ 211.11.124.63)
- 2번째 서브넷 : 211.11.124.64/26 (211.11.124.64 ~ 211.11.124.127)1[[]]
- 3 번째 서브넷 : 211.11.124.128/26 (211.11.124.128 ~ 211.11.124.191)
- 4 번째 서브넷 : 211.11.124.192/26 (211.11.124.192 ~ 211.11.124.255)
Internet Gateway (IGW)
- 인터넷으로 나가는 통로
- Private subnet은 IGW로 연결되어 있지 않다.
- 말 그대로 private 하기 때문에, 외부 공용 망에 연결되어 있으면 이 subnet은 private이 아닌 public subnet이다.
Route table
- 트래픽이 어디를 가야 할지 알려주는 테이블
- VPC 생성 시 자동으로 만들어준다.
- 10.0.0.0/16(10.0.0.0 ~ 10.0.255.255까지) → Local로 연결해준다.
- 나머지는 IGW(인터넷으로 연결해준다.)
Public Route Table
- Local or Internet or Inner 인지 알려주는 신호등과 비슷한 역할을 한다.
Private Route Table
- private route table일 경우에는 외부 IP가 접근 할 때는 Route Table에서 막힌다.
NACL(Network Access Control List)/Security Group
- 보안 검문소
- NACL → Stateless, SG → Statefull
- Access Block은 NACL에서만 가능하다.
Statefull, Stateless
Statefull
- 상태 유지라는 뜻을 가진다.
- 네트워크에서 상태를 유지한다는 뜻은, Port를 기억한다는 뜻으로 해석된다.
- 접근하려는 Port가 인바운드 혹은 아웃바운드 둘 중 한개라도 접속에 성공해서 응답을 받거나 혹은 요청을 했다면,
- 그에 Port를 기억하여 다시 요청 혹은 응답을 허가해주는 것을 의미한다.
- 즉 유동적으로 접속된 Port에 한해서 요청 응답을 풀어주는 것이다.
Stateless
- 무상태라는 뜻을 가진다.
- 네트워크에서 상태가 없다는 뜻으로 Statefull과는 달리 Port를 기억하지 않는다.
- 접근하려는 Port가 인바운드에 설정되어있어, 요청을 보내도,
- 아웃바운드가 설정 되지 않는 Port라면 응답을 해주지 않는다.
NAT(Network Address Translation) instance/gateway
NAT의 필요성
- Private 한 인스턴스에 예를 들면, DB를 설치하였다.
- 이때 DB에 대한 업데이트 혹은 DB설치를 해야한다. 하지만, 외부망에 연결되어 있지 않기 때문에, 이에 대한 문제가 생긴다.
- 외부 망이 매일 필요한 것은 아니지만, 위의 상황이 생길수도 있기 때문에 가끔은 필요하다.
- 그래서 Route Table 잠깐 IGW를 설정해주면 안되나?
- 안된다. 그렇게 설정할거면 Private Subnet을 설정한 이유가 전혀 없다.
- 그렇기 때문에 이때를 위해서 NAT을 사용한다.
- 위 그림을 보면 이해가 쉽다.
- Private Subnet에서는 인테넷이 접근이 되지 않기 때문에 내부 망인 Public Subnet을 이용한다.
- 이를 이용해서 원하는 DB 프로그램 등을 대신 다운 받게한다.(public subnet에 접근 후 ssh 등과 같이 private으로 접근 후에 다운 받게 하면 된다.)
Request
Response
- Pricate subnet안에 있는 pricate instance가 외부의 인터넷과 통신하기 위한 방법
- NAT gateway는 우회에 특화된 서비스 이며, AWS에서 제공하는 서비스이다.
- NAT instance는 EC2 instance 이기 때문에 private instance하나, public instance하나 총 두대의 인스턴스로 활용하는 것이다.
- NAT instance는 Public Subnet에 위치해 있어야한다.
Bastion host
이번에는 반대로 관리자가 private subnet으로 접근하는 방법인 bastion host이다.
- private subnet은 외부에 있는 관리자가 접근 할 수 없다.
- Bastion host를 이용하게 되면 접근 가능해진다. NAT과 유사한 점이 많이 있다.
- Private Instance에 접근하기 위한 수단이다.
- Public subnet 내에 위치한 EC2를 거쳐서 내부 망으로 접근 후에 Private Subnet에 있는 Private Instance를 접근한다.
VPC EndPoint
- VPC 엔드포인트를 통해 인터넷 게이트웨이, NAT 디바이스, VPN 연결 또는 AWS Direct Connect 연결을 필요로 하지 않고
- AWS Private Link 구동 지원 AWS 서비스 및 VPC 엔드포인트 서비스에 비공개로 연결 가능하다.
- VPC의 인스턴스는 서비스의 리소스와 통신하는데 퍼블릭 IP 주소를 필요로 하지 않는다.
- VPC와 기타 서비스 간의 트래픽은 Amazon 네트워크를 벗어나지 않는다.
VPC Endpoint
- AWS의 여러 서비스들과 VPC를 연결 시켜주는 중간 매개체
- AWS에서 VPC 바깥으로 트래픽이 나가지 않고 aws의 여러 서비스를 사용하게끔 만들어주는 서비스
- Private subnet 같은 경우는 격리된 공간인데, 그 상황에서도 aws의 다양한 서비스들(s3, dynamodb, athena 등)
연결할 수 있도록 지원하는 서비스
Interface Endpoint
Private IP를 만들어 서비스를 연결해줌(SQS, SNS, Kinesis, Sagemaker 등 지원)
Gateway Endpoind
라우팅 테이블에서 경로의 대상으로 지정하여 사용(S3, Dynamodb 지원)
aws s3 ls --region ap-northeast-2
# 현재 내가 가지고 있는 aws s3 를 ls 해달라
'DevOps > AWS' 카테고리의 다른 글
AWS CodeDeploy (0) | 2025.04.14 |
---|---|
AWS CodeBuild (1) | 2025.04.14 |
AWS Elastic Beanstalk (0) | 2025.04.14 |
AWS RDS (0) | 2025.04.14 |
AWS IAM (0) | 2023.08.05 |