클라우드 기본 개념
region
- 국가
- 인프라를 생성할 국가를 선택
zone
- region안에 있는 data center
- region안에는 여러개의 zone이 있다.
제시된 그림은 하나의 region안에 2개의 zone으로 구성되어 있어, multi zone 이다.
- multi zone을 활용하면 하나의 zone이 무너지더라도 지속적으로 서비스가 제공될 수 있도록 하는 서비스를 설계할 수 있다.
Availability-zone
- region내 물리적으로 분리되어 있는 데이터 센터 및 네트워크로 구성되어 있는 지점
- 각 zone들은 전용회선 베이스의 사설 통신 가능
- 사용자는 서비스 가용성 및 연속성을 위해 복수 개의 zone에 걸쳐 서비스를 설계하고 배포 필요
- 서로 다른 가용 영역 내 리소스 배포를 통해 zone 자체 이슈로부터 고가용 서비스 설계 가능
네이버 클라우드에서 제공하는 서비스
- Load Balancer는 하나의 zone에 종속되는 것이 아닌, 어떤 zone에 종속되는 개념은 아니다.
- Load Balancer는 서로 다른 zone에 배치되어 있는 서버와 바인딩이 가능하기 때문에 외부의 traffic을 서로 다른 zone에 배치되어 있는 서버로 traffic을 마운팅 해줄 수 있는 기능을 기본적으로 제공
- multi zone이 고려되어 있는 설계를 할 때는, 각각의 서비스들이 zone에 종속적인지 아님 region에 종속적인지를 알면 인프라를 설계할 때 도움이 된다.
클라우드에서 인프라 구축 시 고려사항 6가지
가용성
- 가용성이란, 시스템이 중단없이 계속 서비스가 가능함을 의미
- 시스템을 구성하는 각 구성요소들을 Compute, Storage, Network 레이어 별로 살펴보고 단일 지점(single-point)를 이중화하여 가용성을 유지하는 것이 일반적임
- 가용성을 유지하기 위한 인프라 구성은 Active-Active 구성이나, Active-Standby 형식으로 이중화를 구성할 수 있음
성능
- 성능적인 측면은 시스템 상의 요구사항을 충족하고 서비스에 대한 수요 증가 혹은 감소에 발맞춰 인프라를 효율적으로 운영할 수 있는지를 의미함
STEP 1. 적절한 용량 산정
- 서비스 설계 시, 적절한 용량을 산정하기 위해서는 시스템의 요구사항을 파악하고 이에 맞춰 인프라를 구성하는 것이 중요
- 특히 On-prem 환경에서 클라우드 환경으로의 이관일 경우, 기존 On-prem 환경과 동일한 구성이 아닌 오토스케일링 기능을 통해서 트래픽이 많을 때 인프라를 확장하여 대응할 수 있도록 구성하는 것이 효율적임
STEP 2. 사전 테스트
- nGrinder, Apache bench와 같은 툴을 사용하여 웹서비스에 부하를 발생하고 서비스가 안정적으로 제공되는 지 사전 테스트가 가능함
STEP 3. 지속적인 모니터링
- 지속적인 모니터링을 수행하면, 예상했던 성능과 실제 성능의 차이를 인식할 수 있으며 리소스의 변화를 감지하여 Sale-out 혹은 Scale-up 정책을 통해 리소스를 확충할 수 있음
신뢰성
1) 백업
- 서비스 장애 및 오류, 잘못된 조작 등으로 인한 데이터나 정보의 손상에 대비하여, 인프라 운영 관리 담당자는 주기적(일/주/월 등) 으로 백업을 할 수 있도록 백업을 수행
- 백업 대상을 선정하고 그에 맞는 백업 주기와 방법, 보관 주기, 소산 백업 여부 등에 대한 백업 계획을 수립하고 이를 수행
2) 보안
- 책임 공유 모델에 따라 클라우드 제공업체는 ‘클라우드의 보안’을 책임지고, 고객은 ‘클라우드에서의 보안’을 책임진다.
- 클라우드 제공업체 : 모든 서비스를 실행하는 인프라를 보호할 책임
- 여기서의 인프라는 클라우드 서비스를 구성하는 하드웨어, 네트워크 및 시설을 의미
- 고객 : 게스트 운영 체제의 관리(업데이트, 보안 패치 등), 고객이 인스턴스에 설치한 모든 애플리케이션 소프트웨어, 유틸리티의 관리, 고객의 데이터, 인스턴스 별로 클라우드 제공업체에서 제공한 방화벽(ACG, NACL)의 구성 관리에 대한 책임
- 클라우드 제공업체 : 모든 서비스를 실행하는 인프라를 보호할 책임
확장성
클라우드 인프라를 유연하게 관리할 수 있는 기능이 오토스케일링이다.
- 오토스케일링은 기능을 통해, 미리 등록한 설정에 따라 서버 수를 자동으로 증가 또는 감소시켜 안정적인 서비스를 유지할 수 있다.
- 오토 스케일링 : 외부에서 트래픽이 몰릴 때는 서버를 늘리고, 트래픽이 줄어들 때는 서버를 줄이는 방식으로 인프라를 유연하게 관리하게 할 수 있도록 함
- Alarm 방식 : 운영 중인 서버를 모니터링해 서버가 투입되기를 원하는 자원 조건에 도달하면 자동으로 서버를 증가시키고 조건이 해소되면 자동으로 서버를 반납할 수 있음
- On-demand 방식 : 미리 트래픽 예측이 가능한 경우, 트래픽이 많이 발생할 시간에 서버를 증가시켰다가 줄어드는 시간에는 서버를 반납할 수 있다. 서버 운용 기준을 최대 트래픽이 발생하는 순간으로 두는 것이 아닌, 필요할 때만 증가시켜 서버 운영 비용을 효율적으로 관리할 수 있음
관리성
- 관리성은 클라우드 서비스에 대한 지속 상태를 확인하기 위해 모니터링 체계를 구축하는 것
- 이를 통해 잠재적인 문제나 장애 발생 시 예방 혹은 빠르게 조취를 취할 수 있으며, 서비스 가용성을 유지 혹은 개선할 수 있음
- 또한, 서비스되고 있는 웹사이트에 대한 지속적인 모니터링 체계를 추가 구축한다면 더욱더 안정적인 서비스 운영이 가능할 것
data를 수집하고 통보 알람을 받아야 되는 항목들
- 디스크 사용량과 inode 사용량 : 누군가 데이터를 대량으로 업로드하거나 로그를 정기적으로 압축하지 않으면 두 가지 모두 사용량이 100% 도달할 수 있음
- 이렇게 되면, 더 이상 파일을 생성할 수 없기 때문에, 메일 송수신 오류가 발생하거나 로그를 추가 저장할 수 없기 때문에 통보 알람 설정을 통해 디스크 사용량과 inode 사용량을 모니터링 하는 것이 좋음
- 읽기 평균 : 읽기 평균은 서버 스펙과 애플리케이션에 따라 적절한 값이 변경됨
- 따라서 스왑 영역에 읽고 쓰는 횟수가 많으면 서비스 전체 성능에 영향을 줄 수 있기 때문에 메모리의 스왑 사용량에 대해 지속적으로 모니터링 하는 것이 좋음
비용
- 클라우드는 사용한 만큼 과금 되는 구조로서 시간 당 혹은 월 단위 비용이 청구되며 짧은 시간 동안 서버를 사용할 시에는 편리하지만 ‘얼마만큼 과금될 지 알기 어렵다’ 라는 특징이 있음
- 클라우드 서비스 제공업체마다 과금 구조가 다르기 때문에 각 과금 구조를 정확하게 파악하고 장기 할인 플랜 등 요금을 절약할 수 있는 방안을 살펴보는 것이 중요
- 대규모 웹 서비스 운영 시에는 트래픽이 늘었을 시에는 서버를 확장했다가, 트래픽이 줄었을 시에는 불필요한 서버를 반납처리 함으로써 인프라를 비용 효율적으로 운영할 수 있음
본 글은 [웨비나] Follow me! 클라우드 인프라 구축하기 기본편을 정리하고 공부한 내용입니다.
[영상링크] : https://www.youtube.com/watch?v=Br2Z5wCk98o
'개발 > 클라우드' 카테고리의 다른 글
클라우드 보안 - Zero Trust 모델 (0) | 2023.07.09 |
---|---|
도커와 쿠버네티스 (0) | 2023.07.07 |
클라우드 네이티브 애플리케이션 개발 (0) | 2023.07.07 |
IT 서비스와 클라우드 (0) | 2023.07.06 |
클라우드 서비스 AWS (1) (0) | 2023.05.29 |