과거 현업에서 elasti cache
를 local pc에서 접근하고 싶은 필요가 생겼지만 접근이 불가능하다.
예전 기억으로는 당시에 검색을 해보니 elasti cache는 VPC안의 Private Subnet안에 존재하여 외부에서 접근이 불가능
하다는 답변이 있었다.
문제를 겪었으면 문제를 없애기 위해 학습해보자
IGW, Routing Table, VPC, Subnet, Instance를 사용해서 SSH 터널링을 했다.
(내부에는 기본으로 연결되는 보안 그룹같은 요소들이 있을 것 이다.)
진행 과정은 인터넷에 검색하면 많은 자료가 나와 간단하게 SSH 터널링을 하기 위해 알아야 하는 각 AWS 요소들의 특징만 상기시키기 위해 적는다.
아래는 직접 구현한 구조(사용 서비스, CIDR...)를 다이어그램화 시켰다.
퍼블릭 서브넷
이라고 함프라이빗 서브넷
이라고 합니다.인터넷 게이트웨이로 향하는 라우팅을 설정하려면 "0.0.0.0/0 -> IGW"을 추가합니다.
그러면 VPC 내부의 트래픽을 VPC 외부로 보낼 수 있음
결론적으로 서브넷의 라우팅 테이블에 IGW 연결 여부가 퍼블릭/프라이빗
서브넷을 결정한다.
요금
!! IGW 자체의 요금은 없으나 IGW를 사용한느 EC2에는 데이터 전송 요금이 부과 !!
IGW Docs https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Internet_Gateway.html
라우팅 테이블은 목적지 및 대상
을 지정한다.
예를 들어 서브넷이 인터넷 게이트웨이를 통해 인터넷에 엑세스할 수 있도록 하려면 서브넷 라우팅 테이블에 아래와 같이 추가한다.
0.0.0.0/0 -> igw-id
모든 라우팅 테이블에는 VPC 내부 통신을 위한 로컬 라우팅이 포함(기본 값)
로컬 경로(VPC)보다 더 구체적인 경로를 추가할 수도 있음
또한 라우팅 테이블에 라우팅이 여러 개 있는 경우, 트래픽에 일치하는 가장 구체적인 라우팅 사용
VPC를 만들면 기본 라우팅 테이블이 바로 생성되며 서브넷이 라우팅 테이블과 연결하지 않은 경우 기본 라우팅 테이블을 사용함
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Route_Tables.html#RouteTables
서브넷은 단일 가용 영역 내에서만 존재하며, 여러 영역으로 확장할 수 없다.
서브넷의 유형은 4가지가 존재
퍼블릭 서브넷
: 서브넷에 인터넷 게이트웨이로 직접 연결되는 경로가 존재, 해당 서브넷 리소스는 인터넷에 엑세스가 가능프라이빗 서브넷
: 인터넷에 직접 연결되 경로가 존재하지 않음, 경유해야 인터넷에 엑세스가 가능하다.VPN 서브넷
: 서브넷에 가상 프라이빗 게이트웨이를 통해 Site-to-Site VPN 연결로 연결되는 경로가 존재격리된 서브넷
: 서브넷에 VPC 외부 대상에 대한 경로가 없음, 격리된 서브넷의 리소스는 동일한 VPC의 다른 리소스와만 서로 액세스 가능각 서브넷은 서브넷 외부로 나가는 아웃바운드 트래픽에 대해 허용된 경로를 지정하는 라우팅 테이블이 연결되어야 함(자동으로 기본 라우팅 테이블과 묵시적으로 연결)
AWS 리소스 보안을 위해서는 프라이빗 서브넷을 사용해야 좋다.
리소스 보안 강화를 위해 보안 그룹
, ACL
를 사용할 수 있다.
보안 그룹
은 EC2같은 리소스에 대한 인 바운드, 아웃 바운드 트래픽을 제어하고
ACL
은 서브넷 수준에서 인 바운드, 아웃 바운드 트래픽을 제어함
각 서브넷에는 ACL
이 연결되어야 하고 모든 서브넷은 기본 ACL
과 자동으로 연결한다.
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/configure-subnets.html
피어링 서비스
를 사용해야 함요금
VPC에 따르는 추가 요금은 없음.
https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/what-is-amazon-vpc.html
AWS NAT Gateway 대신에 사용, VPC 내부의 다른 리소스에 트래픽을 전달해줄 수 있다.
EC2로도 동일한 역할을 할 수 있고 이 때 NAT Instance라고 한다.
(NAT Gateway의 비용이 비싸다고 하여 제일 저렴한 EC2를 학습에서 사용)