AWS의 IP 주소
- IPv4 프로토콜
1. Public IPv4 : 인터넷에서 사용할 수 있는 IP주소 (EC2 인스턴스를 생성하면 공인 IPv4를 얻는다)
2. Private IPv4 : 192.168.1.1 과 같은 형식으로 AWS VPC 와 같은 private network(사설 네트워크) 에서만 사용 가능 - 탄력적 IP :고정된 공인 IPv4 주소를 EC2 인스턴스로 가져오는 것(인스턴스를 중지했다가 다시 시작해도 동일한 IP)
모든 IP 는 시간당 요금 부과
VPC (Virtual Private Cloud)
- 가상 사설 클라우드: 사설 네트워크를 통해 인스턴스에 리소스를 배포할 수 있다.
- 특정 리전과 연결되어 AWS 에 여러 리전이 있으면 여러 VPC 를 갖게 된다.
- VPC 에는 Subnet이 존재 (VPC의 일부) : 네트워크의 파티션이며, 가용 영역과 연결
- 공용 서브넷이 인터넷과 연결되어 잇어서 인터넷을 공용 서브넷을 통해 바로 연결할 수 있다.
- 사설 서브넷은 인터넷을 통해 액세스 하지 않는 서브넷
- 즉, 인터넷으로의 액세스와 서브넷 간의 액세스를 정의해 리소스와 통신하려면 라우팅 테이블을 사용한다.
그렇다면 이 서브넷에 관한 인터넷 액세스는 어떻게 정의할까?
- 예를 들어 인터넷에 액세스 할 수 있는 공용 서브넷에 EC2 인스턴스가 있고 여기에 Internet Gateways 를 생성
- InternetGateways : VPC 인스턴스가 인터넷에 바로 연결되도록 한다. -> 인터넷게이트웨이와 라우트가 있으면 서브넷이 공용 서브넷이 된다.
- 두번째 예시(Private Subnet에 인터넷 연결) : 사설 서브넷에 인스턴스가 있고, 인터넷에서 액세스할 수 없지만 인터넷 액세스 권한을 부여할 수도 있음. >> ex. 운영체제를 업데이트하거나, 파일을 다운로드 하기 위해서 -->> 이때 NAT Gateways 생성
- NAT Gateways : AWS 에서 관리하거나, 인스턴스에에서 자체 관리하여, 사설 서브넷 내의 인스턴스가 사설인 상태를 유지하면서 인터넷에 액세스 하도록 한다. -> 즉, 공용 서브넷에 NAT Gateways 또는 NAT 인스턴스를 생성하고, 사설 서브넷에서 NAT 게이트웨이로의 라우트와 NAT Gateways 에서 Internet Gateways로의 라우트를 생성한다.
VPC 내의 네트워크 보안 (ACL & Security Group)
1. Network ACL (NACL)
- VPC 와 Public Subnet 을 보면 EC2 인스턴스가 있다. EC2 인스턴스를 위한 첫번째 방어선은 NACL 즉 네트워크 ACL 이다.
- 서브넷으로 들어오고 나가는 트래픽을 제어하는 방화벽
- 따라서 서브넷 수준에 연결되어 규칙을 정의, 허용 또는 거부할 수 있다. (규칙에는 IP 주소만 포함)
- ex. 트래픽이 EC2 인스턴스에 도달하기 전에 NACL 이 서브넷 안팎으로 트래픽을 필터링 한다.
2. Security Groups (보안그룹)
- EC2 인스턴스로 들어오고 나가는 트래픽을 제어하는 방화벽이다.
- 보안 그룹은 허용 규칙만 가질 수 있다. (규칙에는 IP주소나 다른 보안 그룹을 참조할 수 있다.)
- ex. EC2 인스턴스 주변에 보안그룹이 있고, 인스턴스를 드나드는 트래픽을 제어한다.
** NACL 과 Security Groups 차이
1. NACL 은 서브넷 수준, Security Groups 은 인스턴스 수준에 있다.
2. NACL 은 허용 규칙과 거부 규칙 지원, Security Groups 은 허용 규칙만 지원
3. NACL 에서는 반환 트래픽이 규칙에 의해 명시적으로 허용되어야 함 (연결 상태 비저장) VS 보안 그룹에서는 어떤 규칙이든 관계없이 반환 트랙픽이 자동으로 허용 (연결 상태 저장)
VPC Flow Logs
- 인터페이스를 통과하는 모든 IP 트래픽에 대한 로그
1. VPC Flow Logs
2. Subnet Flow Logs
3. Elastic Network Interface Flow Logs
>> 이것들을 통해 EC2 인스턴스로 들어오고 나가는 트래픽을 확인할 수 있다. - Flow Logs 를 활성화하면 연결 문제를 모니터링하고 해결할 수 있다.
1. 서브넷이 인터넷에 연결할 수 없는 경우
2. 서브넷이 다른 서브넷에 연결할 수 없는 경우
3. 인터넷이 서브넷에 액세스할 수 없는 경우
>> VPC Flow Logs 에 캡쳐되며 이를 통해 근본 원인을 파악할 수 있다. - EC2 인스턴스에서 정보를 얻는 것 외에도, ELB, ElasticCache, RDS, Aurora 등에 대한 정보도 얻을 수 있다.
- VPC Flow Logs 는 S3, CloudWatch Logs, Kinesis Data Firehose 로 갈 수 있다.
VPC Peering
- AWS 의 네트워크를 사용해 두 VPC를 프라이빗으로 연결함으로써 마치 동일한 네트워크인 것처럼 동작하도록 하는 것
- ex. VPC A 와 VPC B 가 있으면 이것들은 서로 Peering 할 수 있다. >> Peering 이 완료되면 동일한 네트워크에 있거나, 마치 동일한 네트워크에 있는 것처럼 동작한다. (이를 위해서는 IP 주소 범위가 겹치지 않는지 확인해야 한다. 겹치면 VPC Peering 연결을 설정할 수 없다.)
- VPC Peering 은 전이적이지 않다 >> 즉, VPC C 라는 새 VPC 를 추가하고 VPC A 와 VPC C 사이에 Peering 연결을 만들어도 VPC B와 C 는 서로 통신할 수 없다. 서로 Peering 이 안되어 있기 때문
VPC Endpoints
- 지금까지는 모두 Public Network 를 사용하여 Public 으로 VPC 를 연결했다.
- VPC Endpoints 를 사용하면 Private Internet Network 대신 Private AWS Netowork 를 사용한다.
'AWS' 카테고리의 다른 글
AWS Secrets Manager, Artifact, GuardDuty, Inspector, Config, Macie, Security Hub (3) | 2024.10.02 |
---|---|
AWS Shield(Standar / Advanced), WAF, Network Friewall, KMS, cloudHSM (2) | 2024.10.01 |
Route53 라우팅 정책 (3) | 2024.09.30 |
ECS, Serverless 개념, Lambda, API Gateway, Batch, Lightsail (2) | 2024.09.28 |
AWS Databases (2) (1) | 2024.09.27 |