이번 글에서는 컴퓨팅 노드가 외부망으로 어떻게 연결이 되는지와, OSI 4계층에서의 방화벽 장비에 대해 알아본다.
Elastic IP와 NAT Gateway
컴퓨팅 노드가 외부망과 연결이 되려면 두 가지 방법이 있다.
우선 컴퓨팅 노드가 Internet Gateway 정책이 반영된 Routing Table을 가진 Subnet (Public Subnet) 에 있을 경우 Elastic IP(EIP)를 연결하면 된다. EIP는 Public IP라 생각하면 된다.
무료 서비스이지만 EIP를 할당 받고 연결하지 않을 경우 과금이 발생한다. (대부분 이걸 몰라서 연습할 때 비용이 나간다..)
그렇다면 Internet Gateway 정책이 반영되지 않은 Routing Table을 가진 Subnet (Private Subnet) 에 배치된 컴퓨팅노드는 외부망 연결이 안되는 걸까? 방법은 NAT Gateway다.
NAT Gateway를 Public Subnet에 배치하고, EIP를 할당한다.
그리고 Private Subnet에 연결된 Routing Table에 NAT Gateway 정책을 반영하면 Private Subnet 안에 있는 컴퓨팅 노드도 외부망과 연결이 가능하다.
EIP와 NAT Gateway를 반영한 네트워크 예시는 아래와 같다.
NACL(Network ACL) 과 Security Group
이 둘은 온프레미스에서 방화벽이라고 생각하면 편하다.
NACL는 패킷 IP와 Port 정보를 기반으로 트래픽을 허용할지 거부할지 결정하는 정책 리스트이다.
특이한 점은 Subnet 당 NACL 1개 정책 설정이 가능하다는 것이다. 특정 IP를 가진 서버별로 제어하는 것이 아니다.
VPC 생성 시 자동으로 Default NACL이 만들어지며, Default NACL는 인바운드/아웃바운드가 모두 허용이다.
NACL에는 Rule Set (정책별 번호)이 있는데, 낮은 번호 정책부터 우선 평가가 진행된다.
큰 범위에서는 정책 설정이 가능하나, 컴퓨팅 노드 단위별로 정책 설정이 안되어서 실무에서는 잘 안쓰는 것 같다.
NACL의 단점인 노드 별 정책 설정은 Security Group (SG) 가 한다.
SG는 NACL과 달리 우선 순위가 없어서 만든 순서와 무관하게 모두 적용된다.
또 하나 특이한 점은 Deny Rule이 없고, 설정된 모든 Rule은 Allow로 인식한다는 점이다.
Network ACL과 Security Group의 차이점은 아래 표와 같다.
Stateless와 Stateful은 인바운드된 정책을 아웃바운드 시에 기억을 못 하느냐/하느냐의 차이다.
NACL는 Stateless 방식이므로 아웃바운드에 대한 정책도 고려를 하여야 한다.
Network ACL | Security Group |
Subnet 기반 | Instance 기반 (ENI) |
Allow / Deny | Allow Only |
Rule Order | Rule Orderless |
Stateless | Stateful |
그러면 AWS에서 네트워크 트래픽 통제를 하는 Routing Table, NACL, Security Group을 큰 그림에서 보면 아래와 같다.
- 우선 Routing Table에서 1차적으로 통제한다.
- NACL에서 2차적으로 통제한다.
- 마지막으로 Security Group 까지 통과하면 최종적으로 컴퓨팅 노드에 패킷이 온다.
'IT 공부 > AWS' 카테고리의 다른 글
[AWS 고가용성] ELB / ASG (0) | 2023.04.16 |
---|---|
[AWS 관리] Cloud Watch / Cloud Trail (0) | 2023.04.16 |
[AWS 스토리지] EBS/EFS/S3 (0) | 2023.04.16 |
[AWS 컴퓨팅 노드] EC2 (0) | 2023.04.04 |
[AWS 네트워크] VPC, Subnet, Internet Gateway, Routing Table (0) | 2023.04.04 |
댓글