article thumbnail image
Published 2023. 5. 17. 08:13

프라이빗 vs 퍼블릭 vs 탄력적 IP

참고) aws는 ipv6도 지원한다

Private vs Public

  • public ip가 있으면 외부 인터넷 전역에 엑세스 할 수 있다.
    • public ip의 의미는 기기가 인터넷 상에서 독자적으로 식별될 수 있음을 나타낸다
    • 전체 웹상에서 중복되어서는 안된다
    • 지리적 위치를 알 수 있다
  • private ip는 사설 네트워크 내부에서만 엑세스할 수 있다.
    • IP가 사설 네트워크 내부에서만 유일한 것으로 식별되면 된다
    • 기기가 사설 네트워크 안에 있을때 NAT 장치와 프록시 역할을 할 인터넷 게이트 웨이를 통해 외부 인터넷과 연결될 수 있다
    • 지정된 범위의 IP만 사설 IP로 사용될 수 있다

Elastic IPs

  • EC2를 시작하고 중지할 때 공용 IP를 바꿀 수 있다.
  • 인스턴스에 고정된 공용 IP를 사용하면 탄력적 IP가 필요하게 된다
    • 삭제하지 않는 한 계속 가지고 있을 수 있다.
  • 하나의 인스턴스에 하나만 대응
  • 계정 당 5개의 탄력적 IP까지 지원
  • 결론적으로 탄력적 IP는 사용하지 않는 것이 좋다
    • 매우 좋지 않은 구조적 결정으로 종종 언급됨
    • 대신 임의의 공용 IP를 써서 DNS 이름을 할당하는 것이 좋다
    • DNS는 route53 → 훨씬 더 많은 제어와 확장가능성도 크다
  • 로드밸런서를 통해 public ip를 아예 사용하지 않을 수도 있다
    • AWS에서 취할 수 있는 최상의 패턴이라고 한다

Private vs Public In AWS EC2

  • 내부 aws 네트워크엔 사설 ip
  • 외부 www과 연결되는 네트워크엔 공용 IP
  • EC2 기기를 사용할 때 SSH를 할땐 사설 ip를 사용할 수 없다
    • 같은 네트워크에 있는 게 아니기 때문. VPN을 쓰지 않는 이상 불가능함
  • 기기가 멈췄다가 실행하면 공용ip는 바뀔 수 있다

IP 동작 실습

  • 공용 ip가 계속 바뀌는 것을 막는 것이 탄력적 ip이다
  • 탄력적 IP를 가지고 있는데 사용하지 않는다면 요금이 부과된다

Placement Group

  • EC2 인스턴스가 aws 인프라에 배치되는 방식을 제어하고자 할 때 사용
  • 하드웨어와 직접적인 상호작용을 하지 않지만 aws에게 ec2 인스턴스가 각각 어떻게 배치되어야하는지 알려주는 것
  • 세 가지 전략이 있다

Cluster

  • 하나의 가용 영역 안에서 지연 시간이 짧은 인스턴스를 그룹화하는 Cluster
    • 높은 성능 높은 위험도
    • 모든 인스턴스는 동일한 하드웨어에 있다
    • 하드웨어에 문제가 발생하면 모든 ec2 인스턴스가 동시에 문제가 생김
    • 빅데이터 작업에 사용, 짧은 지연시간과 높은 네트워크 처리량을 요구하는 작업에 유용

 

Spread

  • 인스턴스가 다른 하드웨어에 분산하여 실패 위험을 최소화
    • 모든 ec2 인스턴스가 다른 하드웨어, 다른 가용 영역에 있다
    • 동시 실패의 위험이 감소
    • 가용 영역별로 분산된 배치 그룹당 7개의 ec2 인스턴스만 가질 수 있다는 제한이 있음
      • 배치 그룹에 규모가 제한
      • 따라서 너무 크지 않고 적당한 애플리케이션에서 사용 가능
    • 가용성 극대화, 위험도 감소 → 크리티컬 에플리케이션의 경우
      • 서로 다른 AZ에 위치한다

Partition

  • spread와 비슷하게 여러 가용 영역의 파티션에 인스턴스를 분산할 수 있다
  • 가용 영역당 최대 7개의 파티션이 있을 수 있다
  • 각 파티션에는 최대 수백 개의 인스턴스를 가질 수 있고 이러한 방식이 spread와 비교되는 차이임
  • 각 파티션은 aws의 랙을 나타낸다 → 파티션이 많으면 인스턴스가 여러 하드웨어 랙에 분산되었다는 의미이고 서로의 랙 장애로부터 안전하다
    • 인스턴스와 파티션은 다른 파티션의 인스턴스와 물리적인 랙을 공유하지 않아 장애로 부터 격리됨
  • 인스턴스가 어떤 파티션에 속해있는지 메타 데이터 서비스를 사용하여 정보 엑세스도 가능
  • 파티션들 전반에 걸쳐 데이터와 서버를 퍼뜨려 파티션 인식 가능한 애플리케이션
    • 일반적으로 HDFS, HBase, Cassandra, Kafka같이 파티션을 인식하는 빅데이터 애플리케이션

배치그룹 실습

  • 인스턴스를 만들 때 Advanced details에서 Placement group name을 설정할 수 있다

 

Elastic Network Interface ( ENI )

  • VPC의 논리적 구성요소로 가상 네트워크 카드를 나타냄
  • ec2 인스턴스가 네트워크에 연결될 수 있게 해준다
  • 주요 사설 IPv4와 하나이상의 보조 IPv4를 가질 수 있으며 얼마든지 ENI 추가가능
  • 하나 이상의 보안 그룹 연결 가능
  • ENI를 ec2와 분리할 수 있고, 장애 조치를 위해 ec2 인스턴스간 IP를 이동시킬 수 있다
    • ENI를 장애가 없는 인스턴스로 옮겨 ip가 해당 인스턴스에 연결될 수 있게 해준다
  • 가용 영역에 묶인다 해당 AZ에서만 사용 가능

ENI 실습

따로 만든 ENI는 인스턴스를 종료시켜도 삭제되지 않으며 언제든지 다시 연결할 수 있다.

EC2 Hibernate ( 절전모드)

  • RAM에 있던 메모리 상태는 그대로 보존
  • 인스턴스 부팅이 더 빨라진다 → 완전히 중지하거나 다시 시작한게 아니라 멈춰둔 것
  • 실행중인 인스턴스를 절전 모드 상태로 전환
    1. 인스턴스는 중지 상태로 전환
    2. RAM은 EBS 볼륨에 덤프됨(씌워진다)
    3. 이후 인스턴스를 종료하면서 RAM 데이터가 날아감
    4. 다시 실행하면 ec2 인스턴스로 다시 가져옴
  • 마치 중지되지 않은 것처럼 보인다
  • 오래 실행되는 프로세스, RAM 상태를 저장하고 싶을 때, 빠르게 재부팅하고 싶을 때 사용함
  • 지원하는 인스턴스 종류가 많다, 인스턴스 렘 사이즈는 최대 150GB (참고)
  • 베어 메탈 인스턴스에 적용 불가
  • 여러 운영체제 사용가능
  • EBS에만 저장 가능하며 암호화가 필요함 + 충분한 용량
  • 모든 종류의 인스턴스에 사용 가능하며 최대 60일까지 절전모드 상태를 유지할 수 있다

Hibernate 실습

Advanced details에서 Hibernate 옵션을 켜야한다.

절전모드를 활성화 할 경우 루트 EBS 볼륨의 암호화를 켜야하고 용량을 확인해야한다

복사했습니다!