본문 바로가기
DevOps/AWS

AWS IP, EC2 배치그룹, ENI, EC2 Hibernate

by 계범 2023. 11. 18.

Private IP(사설IP) vs Public IP(공용 IP)

네트워크 IP에는 IPv4와 IPv6가 존재.

현재 IPv6는 IoT에 많이 사용중.

 

IPv6가 나온 이유는 IPv4의 주소가 거의 고갈되어가기 때문.(37억개 정도 존재)

사설IP가 나온 이유도 비슷함. (주소 부족의 문제를 해결하기 위함)

 

공용IP를 통해 인터넷과 통신하구, 사설 IP를 통해 사설 네트워크 내에서 통신함.

 

공용ip는 곧 기기가 인터넷상에서 식별될 수 있음을 의미.

사설 IP는 사설 네트워크 안에서만 유일.

NAT장치와 프록시 역할을 할 인터넷 게이트웨이를 통해 인터넷에 연결.

 

Elastic IP (탄력적 IP)

인스턴스에 고정된 공용IP를 사용하려면 탄력적 IP가 필요.

(쓰지 않으면, 인스턴스가 중지되었다가 시작할 경우 공용IP주소가 바뀜)

IPv4 IP를 할당해줄 수 있음.

 

계정당 5개의 탄력적 IP를 사용 가능. (AWS에 개수 증가 요청할 수 있긴 함)

결론적으로 탄력적 IP는 사용하지 않는 것을 추천함. (너무 적음)

 

대신 임의의 공용 IP를 써서 DNS 이름을 할당하는 것이 좋음.(Route 53)

또는 로드 밸런서를 사용해서 공용 IP를 전혀 사용하지 않을 수도 있음.

 

인스턴스와 IP

기본값으로 EC2 기기는 내부 AWS 네트워크엔 사설 IP를 쓰고,

WWW(World Wide Web)에선 공용 IP를 사용.

 

EC2 기기에 SSH를 할 땐 사설 IP 사용 불가.

VPN을 쓰지 않는 이상 같은 네트워크에 있는게 아니기 때문.

VPN이 없다면 공용 IP만 사용 가능.

 

Placement Groups(배치 그룹)

EC2 인스턴스가 AWS 인프라에 배치되는 방식을 제어하고자 할 때 씀.

 

  • Cluster 그룹
    • 단일 가용 영역 내 지연시간이 짧은 하드웨어 설정
    • 높은 성능 제공. 위험 높음.
  • Spread(분산 배치) 그룹
    • 인스턴스가 다른 하드웨어에 분산.
    • 가용 영역별로 분산된 배치 그룹당 7개의 EC2인스턴스만 가질 수 있음.
  • Partition(분할 배치) 그룹
    • 분산과 비슷하게 인스턴스를 분산.
    • 여러 파티션에 인스턴스 분할. 이 파티션은 가용 영역 내의 다양한 하드웨어 렉 세트에 의존.
    • 그룹 당 수백개의 ec2  인스턴스를 둘 수 있음.
    • Hadoop, Kafka 같은 애플리케이션을 실행 가능.

 

Placement Groups - Cluster

모든 EC2 인스턴스가 동일 랙에 존재. 동일한 하드웨어와 동일한 가용 영역에 존재.

지연 시간이 매우 짧기 때문에 성능이 좋음.

하지만 하드웨어(랙)에 실패가 발생하면 동시 실패.

 

위험도 증가.

성능 증가(높은 대역폭. 짧은 지연시간). 빅데이터 같은 작업에 쓰임.

 

Placement Groups - Spread

여러 가용영역과 서로 다른 하드웨어에 존재.

동시 실패 위험성을 최소화.

 

단점은 배츠 그룹의 가용 영역 당 7개의 인스턴스로 제한.

크기가 적당한 어플리케이션에서 사용 가능.

 

Placement Groups - Partition

가용영역 당 최대 7개의 파티션 가능.

각 파티션엔 많은 인스턴스 포함 가능.

 

파티션은 동일한 리전의 여러 가용 영역에 걸쳐 있을 수 있음.

파티션 간은 다른 하드웨어를 사용함.

즉, 각 파티션으로부터 실패는 격리 됨.

 

Hbase, kafka 등에 사용됨.

 

Elastic Network Interfaces (ENI)

탄력적 네트워크 인터페이스( ENI)는 VPC의 논리적 구성 요소이며 가상 네트워크 카드를 나타냄.

ENI는 인스턴스가 서비스, 인스턴스, 서버, 인터넷 등과 통신할 수 있게 해줌.

따라서 모든 인스턴스는 ENI를 가지고 있어야 통신이 가능함.

 

ENI가 가지는 주요 특징

  • 주요 사설 IPv4와 보조IPv4를 가질 수 있음.
  • 사설IPv4당 탄력적 IPv4를 갖거나 하나의 공용IPv4를 가질 수 있으므로 사설,공용IP를 1개씩 가짐.
  • ENI에 하나 이상의 보안 그룹을 연결할 수 있음.
  • EC2인스턴스와 독립적으로 생성하고 즉시 연결하거나 장애 조치를 위해 EC2인스턴스에서 이동 가능.
    • 사설 IP를 붙인 인스턴스1이 고장나면 인스턴스2로 옮겨서 사용 가능.
  • ENI는 특정 가용 영역(AZ)에 지정됨.

 

EC2 Hibernate(절전 모드)

절전모드는 보다 빠른 부팅을 원할 때 사용된다.

 

인스턴스는 중지나 종료를 할 수 있다.

인스턴스를 중지시키면, EBS 디스크 데이터는 유지되고,

인스턴스 종료시엔 삭제되지 않게 설정하면 EBS 데이터는 유지된다.

 

그리고 인스턴스를 다시 시작하면,

운영체제 부팅 -> EC2 User data script 실행 -> 애플리케이션 실행 -> 캐시 구성 형태이므로

시간이 꽤 걸림.

 

인스턴스 절전모드를 사용하면 RAM에 있던 인 메모리 상태는 그대로 보존.

인스턴스 부팅이 더 빨라진단 얘기!

운영 체제를 완전히 중지하거나 다시 시작하지 않고 그대로 멈춰두게 함.

 

절전모드가 되고 백그라운드에서 RAM에 기록되었던 인 메모리 상태는

루트 경로의 EBS 볼륨에 기록되고 다시 킬 때 RAM으로 다시 옮겨서 사용!

 

EX) 실행중 EC2 인스턴스. RAM에 데이터 존재.

절전모드 ON.

실행중인 인스턴스는 중지 상태로 전환되고 RAM의 내용은 EBS 볼륨에 덤프된다.

그리고 인스턴스를 종료하면 RAM이 사라짐.

 

하지만, EBS 볼륨에는 여전히 RAM이 덤프된 게 있으니

인스턴스를 다시 실행하면 디스크에서 기존 RAM 데이터를 불러와 EC2 인스턴스 메모리로 가져감.

이렇게 하면 EC2 인스턴스를 중지한 적이 없는 것처럼 됨.

 

즉, 절전모드는 아래와 같을 때 사용됨.

 

  • 빠른 재부팅을 원할 때
  • RAM 상태를 저장하고 싶을 때
  • RAM 데이터를 유지한 채 인스턴스를 중지나 종료하고 싶을 때

 

베어 메달 인스턴스 적용 불가.

EBS에만 저장 가능. 암호화 필요.

덤프된 RAM을 포함할 만큼 충분한 용량 필요.(t2.micro의 경우 1GIB 메모리 사용)

절전 모드는 최대 60일까지 사용할 수 있음..

댓글