OpenStack 개요
OpenStack은 오픈소스 클라우드 인프라 관리 플랫폼이다. 주로 프라이빗 클라우드 환경에서의 자율적이고 맞춤형 인프라 관리를 위해 사용된다. 보안, 데이터 통제, 맞춤형 설정, 비용 절감 등 여러 측면에서 프라이빗 클라우드에 최적화된 툴이다. 특히 데이터 주권이 중요하거나 퍼블릭 클라우드로 전환이 어려운 산업에서는 OpenStack을 통한 프라이빗 클라우드 구축이 용이할 수 있다.
AWS와 OpenStack, VMware 와 OpenStack 차이
차이점을 알아보기에 앞서 AWS, VMWare, OpenStack의 공통점부터 알아보자. 셋 모두 Iaas라는 공통점이 있다. Iaas란 Infrastructure as a service의 약자로 가상화된 컴퓨팅 자원(예: 서버, 네트워크, 스토리지)을 제공해준다. PaaS와 비교해보자면 PaaS는 No-ops 서비스로 사실상 개발자가 개발만 하면 인프라 관련 서비스를 통째로 제공해준다. (AWS 빈스톡같은 녀석들이 있다.) 반면 IaaS는 가상화된 것 까지만 일품요리로 나오고 그 이상 레이어의 관리부터 책임지게 된다. 그럼 이제 차이점을 알아보자
온프레미스는 Vmware/vCenter, 클라우드는 AWS, Azure 쓰면 되는거 아니야? OpenStack은 왜쓰는거지?
사실 OpenStack을 접했을 때 이런 생각이 가장 먼저 떠올랐다. 이부분에 대해 공부해본 결과 OpenStack의 다른서비스 대비 특징은 "오픈소스"라는 것이었다.
기존 인프라 서비스 경우 모두 하나의 회사에 종속되게 한다. 만약 한 회사에서 온프레미스 환경도 필요하고 AWS와 Azure를 섞어쓰는 멀티 클라우드 환경이 모두 짬뽕되어있다면 이들을 관리할 도구가 필요한데 이때 바로 OpenStack이 다양한 클라우드와 온프레미스 인프라를 일관된 방식으로 관리하게끔 도와주는 것이다.
컨트롤러 역할뿐 아니라 프라이빗 클라우드 환경구축에서도 이용된다. OpenStack을 프라이빗 클라우드로 구축하면 데이터가 회사 내부 데이터센터에만 저장되므로, 데이터 통제를 직접 할 수 있기 때문이다. but.. 개인적으로 "프라이빗하게 할꺼면 그냥 온프레미스로 하지 굳이 "프라이빗 클라우드"를 구축할필요가 있나..?" 라는 생각도 들었는데 온프레미스 환경에서는 새로 서버를 설치할 때마다 사람이 직접 하드웨어를 연결하고 운영체제를 설치한 뒤 설정을 일일이 해주어야한다. OpenStack을 사용하면, 자원 할당과 배포 과정이 자동화된 소프트웨어 프로세스로 처리됩니다. 예를 들어, 사용자가 서버가 필요할 때 버튼 몇 번만 클릭하면 필요한 만큼의 가상 머신(VM)이 즉시 생성되고 필요한 설정도 자동으로 적용된다.
딸깍으로 리소스 가상화가 가능한 이유는 위와같은 구조처럼 하이퍼바이저에서 추상화가 한 번 더 되어서 이전 온프레미스에서 메뉴얼하게 관리했던 리소스 설정 지옥에서 벗어나게 해준다.
OpenStack 과 쿠버네티스 비교
기능 | OpenStack | Kubernetes |
---|---|---|
목적 | 인프라 관리 (VM, 네트워크, 스토리지) | 애플리케이션 관리 (컨테이너) |
관리 단위 | VM, 물리 서버 등 클라우드 인프라 자원 | 컨테이너, 애플리케이션 배포 |
주 사용 사례 | 프라이빗 클라우드, 하이브리드 클라우드 | 클라우드 네이티브, 마이크로서비스 |
격리 방식 | VM 기반 격리 (하이퍼바이저) | 컨테이너 기반 격리 (호스트 OS 커널 공유) |
확장성 | 인프라 확장 (서버, 스토리지, 네트워크) | 애플리케이션 확장 (컨테이너 확장) |
가상화된 환경을 오케스트레이션 한다는 점에서 오픈스택은 쿠버네티스와 비슷한 면이 있었다. 하지만 가장 큰 차이점은 오픈스택은 다양한 종류의 자원들을 가상화해서 클라우드 구축을 위해 오케스트레이션 하고 쿠버네티스는 컨테이너를 오케스트레이션 한다는 것이었다.
OpenStack 구성요소
오픈스택은 6가지 핵심서비스로 구성되어있다. (https://www.redhat.com/ko/topics/openstack)
1. Nova: virtual machine 생성/관리하는 서비스 ,컴퓨터 리소스 가상화 및 확장 역할
2. Neutron: 오픈스택 네트워킹 담당서비스, 가상네트워크, 서브넷, 라우팅 및 NAT 관리
3. Swift: RestfulAPI를 통해 구조화되지 않은 애플리케이션(이미지, 동영상 같은..) 저장 및 검색
4. Cinder: 가상 머신(인스턴스)에 연결 할 수 있는 영구적인 블록 스토리지 제공 서비스
5. Keystone: OpenStack서비스 인증 권한을 관리하며 각 서비스에 대한 엔드포인트 관리
6. Glance: 가상 머신 디스크 이미지 저장 및 검색
OpenStack 과 AWS 구성요소 비교
OpenStack은 프라이빗 클라우드, AWS는 퍼블릭 클라우드로 같은 클라우드라 작동원리와 구성요소가 비슷한 면이 있다. 두 클라우드 서비스 비교를 통해 오픈스택 이해도를 높여보자
기능 | OpenStack | AWS | 설명 |
컴퓨팅 | Nova | EC2 | 가상머신을 생성하고 관리하여 클라우드 상 컴퓨터 리소스 제공 |
네트워킹 | Neutron | VPC(Virtual Private Cloud) | 가상 네트워크 설정, 관리 및 인스턴스간 |
블록 스토리지 | Cinder | EBS(Elastic Block Store) | 인스턴스에 연결할 수 있는 블록스토리지 제공 |
객체 스토리지 | Swift | S3 | 대규모 비정형 데이터 저장할 수 있는 객체 스토리지 서비스 |
이미지 관리 | Glance | AMI | 가상 머신 이미지 관리 및 인스턴스 생성시 사용 |
인증&권한 관리 | Keystone | IAM | 사용자 인증 및 권한 관리 통해 접근제어 |
대시보드 | Horizon | AWS Management Console | GUI기반 대시보드 |
오케스트레이션 | Heat | CloudFormation | 인프라 템플릿을 통해 자동으로 리소스 배포 및 관리 |
모니터링 | Ceilometer | CloudWatch | 리소스 사용량 모니터링 (AWS의 경우 비용관리) |
DB관리 | Trove | RDS | 관계형 DB 인스턴스 생성 및 관리 |
컨테이너 서비스 | Magnum | EKS | 컨테이너 오케스트레이션 및 관리 |
보안 관리 | Barbican | Secret Manager | 비밀 값(예: API 키, 인증서)을 안전하게 저장하고 관리 |
지금까지 오픈스택에 대해 알아보았다. 여기까지만 보면 오픈스택이 클라우드 중의 클라우드고 미쳐버린 갓 툴처럼 보이지만 너무나 치명적인 단점이 하나 있는데 바로 구축이 어렵다. 오픈소스라서 관리가 상대적으로 허술하다. 그리고 무엇보다 "Terraform"이라는 코드기반 클라우드 관리툴이 너무 강력해서.. 일부 기업 혹은 공기관에서 비용 절감등의 이유로 쓰지만 테라폼 같은 대세 툴은 아닌 것 같다.
수정
https://www.youtube.com/watch?v=7u5xBWjN-Cc
https://www.youtube.com/watch?app=desktop&v=G0ipGYKMoys
클라우드의 클라우드, 쿠버네티스등을 프라이빗하게 컨트롤하기 위해 대기업들에서도 많이 쓰는 중이다. 😅😅
'☁️ 인프라 & 클라우드' 카테고리의 다른 글
NAT Gateway 가 단방향임에도 외부 API 요청응답을 가져올 수 있는 이유 (0) | 2024.11.19 |
---|---|
Terraform 테스트 코드 작성하기 (0) | 2024.11.19 |
왜 Cloudflare 를 쓰는걸까? (feat. untangle) (0) | 2024.11.17 |
ESXi와 vCenter를 활용한 온프레미스 인프라 구축 (0) | 2024.11.08 |
Type1, Type2 하이퍼바이저 그리고 Docker (0) | 2024.09.16 |