-
[1월 4주차-1/22]EBS(Elastic Block Store), ELB(Elastic Load Balancing) 개념 정리 및 실습Why Not SW CAMP 5기/수업 기록 2025. 1. 22. 15:43
EBS란?
Elastic Block Store(EBS)는 AWS에서 제공하는 블록 스토리지 서비스로, EC2 인스턴스에 attach(연결)하여 사용합니다. EBS는 높은 가용성과 내구성을 갖춘 스토리지로, 데이터 손실 위험을 줄이고 안정성을 제공합니다.
- 단일 가용 영역 내에서 동작하며, 여러 서버에 걸쳐 데이터를 복제해 안정성을 확보합니다.
- 특정 시점의 데이터를 스냅샷(snapshot)으로 저장하여 백업하거나 복원을 쉽게 수행할 수 있습니다.
- 한 개의 EBS 볼륨은 여러 개의 EC2 인스턴스에 동시에 attach할 수 없습니다. 즉, 하나의 EBS는 하나의 EC2 인스턴스에만 연결 가능합니다.
주요 용어
- 볼륨(Volume)
- EBS의 가장 기본적인 형태로, EC2 인스턴스에 직접 attach하여 사용할 수 있습니다.
- 스냅샷(Snapshot)
- 볼륨의 특정 시점을 백업 파일처럼 저장한 형태입니다.
- Amazon S3에 저장되며, 스냅샷을 활용해 새로운 볼륨 또는 AMI를 생성할 수 있습니다.
- 스냅샷을 사용하면 데이터 복원 및 재사용이 쉬워져, 데이터 손실 방지와 효율적인 관리가 가능합니다.
- AMI(Amazon Machine Image)
- 운영 체제가 설치된 형태의 이미지 파일로, 이를 기반으로 새로운 EC2 인스턴스를 생성할 수 있습니다.
- 협업 시 중요한 역할을 하며, 동일한 환경을 쉽게 구축할 수 있도록 도와줍니다.
- IOPS(Input/Output Operations Per Second)
- EBS의 성능을 측정하는 단위로, 저장 장치가 초당 처리할 수 있는 입력/출력 작업의 수를 나타냅니다.
- IOPS는 애플리케이션의 요구 사항에 따라 스토리지를 선택하거나 성능을 조정하는 데 중요한 지표로 사용됩니다.
실습
1. EC2 인스턴스 생성
- EC2 대시보드에서 새 EC2 인스턴스를 생성
- 인스턴스를 생성하면 기본 EBS 볼륨이 자동으로 생성되어 연결됩니다.
2. 새로운 EBS 볼륨 생성
- EC2 대시보드에서 Elastic Block Store > 볼륨으로 이동
- 새 볼륨 생성 버튼을 클릭
- 새 볼륨 생성 시, 가용 영역(AZ)을 기존 EC2 인스턴스의 가용 영역과 동일하게 설정
- 예: EC2 인스턴스의 가용 영역이 ap-northeast-2c라면, 새 볼륨도 같은 ap-northeast-2c로 설정
- 필요한 스토리지 크기와 유형을 선택한 후, 볼륨 생성을 클릭
- 새로만든 볼륨 클릭 > 작업 > 볼륨 연결 > 인스턴스 선택 > 볼륨 연결
3. ebs스냅샷 생성 및 삭제
- 볼륨 선택 > 작업 > 스냅샷 생성 > 설명 추가 > 스냅샷 생성
- ec2대시보드 > elastic block store > 스냅샷 가서확인
- 삭제시 : 스냅샷 선택 > 작업 > 스냅샷 삭제 > 삭제
4. ebs볼륨 삭제
- 볼륨 삭제하기 위해서는 연결을 먼저 끊어야됨
- 볼륨 > 삭제할 볼륨 선택 > 작업 > 볼륨 분리 → 연결 끊김. 볼륨의 상세정보에 첨부된 리소스가 없는지 확인 하기.
- 작업 > 볼륨 삭제
ELB(Elastic Load Balancing)란?
AWS의 Elastic Load Balancing(ELB)는 여러 서버에 트래픽을 분산시켜 성능과 안정성을 높이고, 서버 장애를 예방하는 데 도움을 주는 서비스입니다. 이를 통해 시스템의 고가용성을 보장하며 효율적인 리소스 활용이 가능합니다.
Load Balancing(부하 분산)이란?
Load Balancing은 하나의 서버에 과도하게 요청이 몰리지 않도록, 알고리즘에 따라 요청을 여러 서버로 분산시키는 기술입니다. 이 과정에서 서버의 과부하를 방지하고, 서비스의 성능 및 안정성을 향상시킵니다.
ELB를 사용하는 이유
- 성능 향상: 서버 자원을 효율적으로 활용해 빠른 응답 속도를 제공합니다.
- 안정성 향상: 요청 분산으로 특정 서버에 과부하가 걸리는 상황을 방지합니다.
- 서버 장애 예방: 문제가 있는 서버로 트래픽이 몰리지 않도록 조정합니다.
- 고가용성 보장: 여러 서버에 트래픽을 분산해 시스템 중단 시간을 최소화합니다.
- 확장성 지원: 오토 스케일링과 함께 사용하면 동적으로 서버를 추가하거나 제거할 수 있습니다.
관련 용어
1. Load Balancing 알고리즘
트래픽을 각 서버에 어떻게 분배할지를 결정하는 방법입니다. 예를 들어, 아래와 같은 방식으로 트래픽을 나눌 수 있습니다
2. Health Check
ELB가 서버의 상태를 주기적으로 확인하는 기능입니다.
- 만약 서버가 중단되었거나 정상적으로 작동하지 않는 경우, 해당 서버로 트래픽을 분배하지 않습니다.
- 예를 들어, 사용자가 요청한 데이터를 처리할 준비가 안 된 서버는 요청에서 제외됩니다.
3. Connection Draining(등록 취소 지연)
서버를 삭제하거나 비활성화할 때 현재 연결된 사용자 요청이 모두 처리되도록 시간을 주는 기능입니다.
- 이 기능은 오토 스케일링 시 유용합니다.
- 삭제 예정인 서버에 연결된 사용자가 있다면, 요청이 완료될 때까지 기다린 후 서버를 삭제합니다.
4. Latency(지연 시간)
Latency는 Load Balancer와 서버 간의 응답 속도를 나타냅니다.
- 지연 시간이 짧을수록 사용자 경험이 향상됩니다.
- ELB는 지연 시간을 기반으로 최적의 서버에 트래픽을 분배합니다.
ELB의 작동 원리
- ELB는 EC2 인스턴스에 부착되어 트래픽을 관리합니다.
- 사용자의 요청이 ELB에 도달하면, 알고리즘에 따라 서버로 트래픽을 분배합니다.
- ELB는 Health Check로 서버 상태를 확인하여, 문제가 있는 서버로는 트래픽을 보내지 않습니다.
- Connection Draining을 통해 서버 삭제 시 연결된 요청을 안전하게 마무리합니다.
ELB 유형
- Application Load Balancer
- 정교한 라우팅이 필요한 웹 앱에 적합.
- 개별 요청 수준에서 작동.
- HTTP 헤더를 기준으로 트래픽을 분배.
- HTTP, HTTPS
- Network Load Balancer
- 빠른 응답과 대규모 트래픽 처리에 적합.
- 연결 수준에서 작동
- IP 주소와 포트 번호를 기준으로 트래픽을 분배.
- TCP, UDP
- Classic Load Balancer
- 이전에 사용하던 것
- 잘 쓰지 않음
실습
- ec2 wordpress인스턴스 생성
- ec2 > 인스턴스 시작 > 이름 설정 > wordpress bitnami 검색 > 지금 구독하기 > 인스턴스 유형 프리티어 가능한 것으로 변경 > 키 페어 설정 > 인스턴스 시작
- 가용영역 기억하기.
- c영역 선택
- 퍼블릭 IPv4 주소 복사 후 브라우저에 검색 > 블로그 나오는거 확인
- ec2 > 인스턴스 시작 > 이름 설정 > wordpress bitnami 검색 > 지금 구독하기 > 인스턴스 유형 프리티어 가능한 것으로 변경 > 키 페어 설정 > 인스턴스 시작
- ELB Load Balancer 생성
- 로드밸런싱 > 로드밸런서 > 로드 밸런서 생성 > ALB > 이름 입력 > 인터넷 경계 > IPv4 > wordpress 인스턴스가 있는 가용영역 포함해서 선택 > 보안그룹은 wordpress~~ 선택
- 리스너 및 라우팅 부분 대상그룹 생성 클릭(새로운 탭 생김) > 인스턴스 > 이름 설정 > 프로토콜 포트 http 80 > 다른거 건들지 말고 다음 > 인스턴스 선택 > 아래에 보류 중인 것으로 포함 > 대상 그룹 생성
- 원래 탭으로 가서 리스너 및 라우팅에서 만든 대상그룹 선택 > 로드 밸런서 생성
- 로드 밸런서의 상태가 활성으로 바뀌게 되면 대상그룹 의 대상탭에있는 인스턴스 상태가 healthy상태로 돼있음
- 등록한 대상이 health check 까지 통과하여 정상으로 등록됐으며 부하를 분산받을 수 있는 상태가 된 것이라고 보면 됨.요청 → elb → ec2(wordpress) 이렇게 됨.
- 생성된 elb 상세정보에 있는 DNS이름 복사해서 브라우저로 접속하면 블로그가 나옴
- 로드 밸런서의 상태가 활성으로 바뀌게 되면 대상그룹 의 대상탭에있는 인스턴스 상태가 healthy상태로 돼있음
- 다른 가용 영역에 ec2 wordpress 인스턴스 생성
- ec2 wordpress인스턴스 생성할 때 네트워크 설정 편집 들어가서 다른 가용 영역 선택 후 생성.
- a 영역 선택
- elb의 대상 그룹에 새로운 ec2 인스턴스 등록
- 대상 그룹 > 대상 > 대상 등록 > 새로 생성한 wordpress ec2 인스턴스 선택 > 아래에 보류 중인 것으로 포함 > 보류중인 대상 등록
- load balancing 작동 확인
- 첫번째로 생성한 ec2 인스턴스 선택하고 퍼블릭 ipv4주소 복사
- 브라우저에 주소/admin 으로 접속
- ec2 > 첫번째 인스턴스 선택 > 작업 > 모니터링 및 문제 해결 > 시스템 로그 가져오기
- 로그인 후 게시글 작성
- elb를 통해서 접속해보기(dns이름 복사해서 접속해보기)
- 새로고침 계속 하면 게시글이 보였다 안보였다 함
- 부하가 분산된 경우임
- 실습 끝
- 로드 밸런서 삭제
- 인스턴스 삭제
AWS에서 제공하는 EBS와 ELB를 학습하며 서비스 안정성과 가용성의 중요성을 실감할 수 있었습니다. 특히 EBS의 스냅샷 기능은 데이터 손실 예방에 유용하다는 점이 인상 깊었고 ELB를 통해 트래픽을 효율적으로 분배하며 Health Check 기능으로 장애 서버를 자동으로 제외시키는 과정에서 대규모 시스템의 안정성을 유지하는 핵심 기술임을 깨달았습니다. 실습을 통해 이론적으로만 알던 내용을 실제 환경에서 구현해보며 클라우드 서비스의 유용성을 체감할 수 있었습니다.💎
'Why Not SW CAMP 5기 > 수업 기록' 카테고리의 다른 글
[1월 4주차-1/24(2)]Python GUI 프로그래밍: Tkinter로 시작하기 (0) 2025.01.24 [1월 4주차-1/24(1)]파이썬 지도 시각화: Folium으로 간단히 배우는 지도 활용 (1) 2025.01.24 [1월 4주차-1/23] Python 기초 문법과 데이터 분석 기초(데이터 추출, 가공, 시각화) (0) 2025.01.23 [1월 4주차-1/21(2)]AWS 계정 생성부터 EC2 인스턴스 생성과 설정, 그리고 탄력적 IP(Elastic IP) 사용까지 (0) 2025.01.21 [1월 4주차-1/21(1)]클라우드 개념 및 AWS 주요 서비스 정리와 개념 이해 (2) 2025.01.21