AWS EBS, ELB, ASG

이수빈·2024년 1월 31일
0

AWS

목록 보기
4/5
post-thumbnail

EBS

EBS VOLUME

  • Elastic Block Store => ec2 인스턴스 저장소라고 생각하면 됨, 인스턴스가 종료된 이후에도 데이터를 지속할 수 있음.

  • 인스턴스를 재성성하고 EBS Volumne을 마운트하면 데이터를 다시 받을 수 있다.

  • ccp 레벨의 ebs volumne은 하나의 ec2 인스턴스에만 마운트 가능함.

  • EBS Volume을 생성할 때 특정 가용역역에서만 가능함. us-east-1a에서 생성된 경우 us-east-1b에는 연결이 불가능

  • 네트워크 드라이브, 물리적 드라이브가 아님. 네트워크 연결된 환경에서 사용 가능함.

  • 스냅샷을 이용한다면 다른 가용영역으로도 볼륨을 옮길 수 있다, 용량을 미리 결정해야한다.

  • 인스턴스 하나에 2개의 ebs volume 연결 가능

  • EC2 인스턴스를 생성할 때 콘솔에서 EBS 볼륨을 생성하면 끝에서 두 번째 열에 종료 시 삭제 옵션이 존재

  • 기본 설정으로는 루트 볼륨에 체크되어 있고 새로운 EBS 볼륨에는 체크가 되어 있지 않음

  • 이 옵션을 통해 EC2 인스턴스 종료 시 EBS 행동을 제어할 수 있습니다

  • 기본적으로 루트 EBS 볼륨은 인스턴스 종료와 함께 삭제되도록 설정이 되어 있죠

EBS SNAPSHOT

  • EBS VOLUME의 특정시점에 대한 백업임.

  • 스냅샷을 통해 EBS VOLUME을 다른 가용영역으로 전달 가능함.

  • FSR (FAST SNAPSHOT RESTORE) : 스냅샷을 완전 초기화해 첫 사용에서의 지연 시간을 없애는 기능, 비용이 많이 발생, 빠르게 EC2 인스턴스 초기화 가능.

AMI

  • Amazon Machine Image : 아마존 머신 이미지 => ec2 인스턴스를 통해 만든 이미지를 통칭함.

  • ec2인스턴스를 시작하기 위해 소프트웨어, 설정파일, 운영체제 추가 가능(설정을 도와주는 파일이라고 생각하면됨)

EC2 Instance Store

  • EC2인스턴스 하드웨어 성능을 높히고 싶을 때 사용. EC2 인스턴스는 가상 머신이지만 실제로는 하드웨어 서버에 연결되어 있음.

  • 이와 같은 서버에는 해당 서버에 물리적으로 연결된 디스크 공간을 가짐.

  • 특정유형의 instance는 ec2 instance store라고 불리며, 이는 해당하는 물리적 서버에 연결된 하드웨어 드라이브를 가리킴.

  • I/O 성능 향상을 위해 사용함. 주의점 즉 인스턴스 스토어를 중지 또는 종료하면 해당 스토리지 또한 손실된됨.

  • 장기적인 스토리지로는 사용 X => 필요에 따라 데이터를 백업해두거나 복제해놓아야함.

EBS VOLUME TYPE

  • GP2/GP3 : 범용 SSD 볼륨 => 비용효과적, GP3는 IOPS와 처리량을 독자적으로 설정 가능하지만, GP2는 둘이 연결되어 있음.

  • IO1/IO2 : 최고성능 SSD 대용량, 지연시간 낮음

  • ST1 : 저비용의 HDD 볼륨 잦은접근과 처리량이 많은 워크로드용

  • SC1 : 가장 비용이 적게듬, 접근빈도가 낮은 워크로드용

EBS 다중연결

  • 하나의 EBS 볼륨을 같은 가용 영역에 있는 여러 EC2 인스턴스에 연결할 수 있게 해 줌.

  • EBS VOLUME 중 IO1, IO2제품군에서만 사용가능함. 동시에 일고 쓰기 가능함.

  • 해당 가용 영역 내에서만 사용할 수 있습니다 한 AZ에서 다른 AZ로 EBS 볼륨을 연결할 수 없음.

  • 다중 연결의 또 다른 제한은 한 번에 16개의 EC2 인스턴스만 같은 볼륨에 연결할 수 있다는 점임.

EBS 암호화

  • VOLUME 생성 => 데이터, 전송데이터, 스냅샷.. 등등 암호화됨.

  • KMS에서 암호화 키를 생성해 AES-256 암호화 표준을 갖음.

EFS

  • Elastic File System : 관리형 NFS 네트워크 파일 시스템 많은 EC2인스턴스에 마운트 가능(EC2 인스턴스는 서로 다른 가용영역에 있을 수 있기 때문) => 파일 공유가능함.

  • EBS VOLUME은 기본적으로 하나의 인스턴스에만 연결가능함.

  • 사용량에 따라 비용지불(프로비저닝 할 필요 X)

  • 인스턴스 스토어 : EC2에 첨부되어있음. EC2 인스턴스가 손실되면 스토리지도 손실됨.

ELB, ASG

고가용성, 스켈일링성

  • 확장성 : APP이 조정을 통해 더 많은 트래픽을 처리가능

  • 수직확장성 : 인스턴스 크기 확장하는것을 의미함.
    EX) EC2를 쓸 때 애플리케이션이 t2.micro로 구동된다면 이 애플리케이션을 확장해서
    t2.large에서 구동하게끔 만들고자 함.

  • 데이터베이스와 같이 분산되지 않은 시스템에서 흔히 사용됨. RDS나 ElastiCache 등의 데이터베이스에서 쉽게 찾아볼 수 있음, 하드웨어 리미트가 존재함.

  • 수평확장성(탄력성) : APP에서 인스턴스나 시스템의 수를 늘리는 방법

  • 클라우드 제공 업체덕분에 수평적인 확장이 수월해짐.

  • 고가용성 : APP을 적어도 둘 이상의 AWS의 AZ(가용영역)나 데이터센터에서 가동중이라는 걸 의미함. => 고가용성의 목표는 데이터 센터에서의 손실에서 살아남는 것으로 센터 하나가 멈춰도 계속 작동이 가능하게끔 하는 것.

  • EC2에서 고가용성은 수직확장

  • 스케일 아웃 : 인스턴수의 수가 늘어남

  • 스케일 인 : 인스턴스의 수를 줄임.

ELB

로드밸런싱이란?

  • 로드 밸런서는 서버 혹은 서버셋으로 트래픽을 백엔드나 다운스트림 EC2 인스턴스 또는 서버들로 전달하는 역할을 함.

  • EC2인스턴스 3개, ELB, 서버가 존재. 유저들은 ELB로 바로 연결됨 => 각각의 인스턴스에 어느정도의 유저가 연결되어있는지를 측정하고, 유저를 EC2 인스턴스에 분배

  • EC2 인스턴스의 부하를 줄이는 용도

  • 애플리케이션에 단일 액세스 지점(DNS)을 노출하게 되고 다운스트림 인스턴스의 장애를 원활히 처리할 수 있음.

  • 관리형 로드밸런서라고도 함. AWS가 관리하며 어떤경우에도 작동할 것을 보장함, 다른 AWS 서비스들과 연동됨.

  • 상태확인 : ELB가 EC2 인스턴스의 작동이 올바르게 되고 있는지의 여부를 확인하기 위해 사용됨.

  • 상태확인은 포트와 라우터에서 이뤄짐.

  • AWS에서는 4가지의 LOAD BALANCER가 존재함.

  • 현재 CLB는 AWS에서 지원되지 않음.

ALB(Application Load Balancer)

  • 7계층 http 전용 로드 밸런서임. => 머신간 다수 http app 라우팅에 사요ㅗㅇ됨.

  • 이런 머신들은 대상그룹이라는 그룹으로 묶임.

  • 컨테이너와 ECS를 사용하게 됨. HTTP/2와 WebSocket을 지원하며 리다이렉트도 지원하므로 HTTP에서 HTTPS로 트래픽을 자동 리다이렉트하려는 경우 로드 밸런서 레벨에서 가능. 경로 라우팅도 지원함.

  • 대상그룹, url 호스트이름, 쿼리등에 따른 라우팅 가능함.

  • 마이크로 서비스나 컨테이너 기반 app에 가장 좋음. (도커나, amazon ecs) => 포트 매핑기능이 존재

  • 하나만으로 다수의 어플리케이션 처리가능함.

  • 대상그룹 => EC2인스턴스, ECS작업, IP주소, 람다함수...가 가능함.

  • 로드 밸런서를 사용하는 경우에도 고정 호스트 이름이 부여됩니다

  • 애플리케이션 서버는 클라이언트의 IP를 직접 보지 못하며 클라이언트의 실제 IP는 X-Forwarded-For라고 불리는 헤더에 삽입됩니다 => PORT, PROTO로 넣음

  • EC2 인스턴스가 클라이언트의 IP를 알기 위해서는 HTTP 요청에 있는 추가 헤더인 X-Forwarded-Port와 Proto를 확인해야 합니다

profile
응애 나 애기 개발자

0개의 댓글