Linux 환경에서 사설 클라우드(Private Cloud) 구축하기
Openstack은 미국의 호스팅 업체인 Rackspace와 미 항공우주국 NASA가 함께 개발하여 2010년 릴리스한 오픈소스 기반의 플랫폼이다. 내부망에 클라우드를 구축하는 Openstack은 외부에서의 접근이 폐쇄되어 있는 사설 클라우드(Private Cloud) 서비스이다. 반면에 Amazon이나 Microsoft의 Azure 같은 공용 클라우드(Public Cloud) 서비스는 고객의 데이터를 외부의 데이터센터에서 관리하는 플랫폼을 제공한다. 둘 다 '보안에 대한 구성 및 책임'은 클라우드 서비스를 사용하는 고객이 부담하여야 한다.
한국 IDG 조사에 따르면, 국내 보안담당자들은 신기술을 불신하고 있지만 클라우드 보안에 대해서는 관심이 높다고 한다. 특히, 클라우드 도입 이유가 비용 절감에서 보안으로 바뀌고, 도입 시 고려 사항에서 가장 높은 우선순위가 보안이 될 정도로 클라우드에서 보안이 이슈화 된다는 것은 클라우드에서 보안의 가치가 높다는 의미이다.
IaaS(서비스로써의 인프라) 클라우드 서비스에 해당하는 Openstack은 AWS의 EC2, S3와 같이 클라우드 소비자에게 모든 IT 자원에 대한 설정과 관리의 책임을 제공하는 것이 목적이다. 사용자는 Openstack을 이용해 호스트 내부망에 사설 클라우드(private cloud)를 구축할 수 있는데 이때 보안 서비스도 자체적으로 구축해야 한다. 접근성과 서비스 가용성도 함께 고려해야 하는데, 이것은 클라우드 호스팅 업체에서 예상치 못하는 문제에 대한 관리적 비용을 사용자가 직접 부담하여야 하기 때문에 기업의 입장에서는 비용이 더 들 수도 있다. 하지만 보안 정책을 자체적으로 신경 쓰고 유지 관리해야 하기 때문에 리스크 관리 측면에서는 예상치 못하는 위험 대비 자산 보호에 앞장설 수도 있다.
IDG 설문조사에서도 현재 클라우드의 우선순위가 비용 절감에서 보안으로 바뀌고 있듯이 클라우드 보안 위협에 대한 이슈를 정확히 파악하고 사설 클라우드와 공용 클라우드를 적절히 섞어서 기업의 환경에 맞게끔 구축해야 한다. 2013년에 다음카카오는 이미 이기종 클라우드(Heterogeneous Cloud)라는 멀티 클라우드 형태로 프라이빗 클라우드와 퍼블릭 클라우드를 혼용하는 하이브리드 클라우드 그리고 다수의 퍼블릭 클라우드를 사용하는 멀티 클라우드를 합친 개념으로 클라우드 환경을 도입한 사례를 가지고 있다.
다음 세션부터 Openstack을 Linux CentOS 7.1 가상 서버 환경에 packtack으로 설치한 다음, Openstack의 대시보드 환경(horizon)에서 아래 각 메뉴명(괄호 안은 서비스 프로젝트명임)대로 가상의 네트워크 토폴로지를 구성하는 실습을 진행하겠다.
1. Flavor ( 프로젝트 : Nova )
Compute라는 오픈스택의 컴포넌트 기반의 모듈 중 하나를 이용하여 인스턴스(가상 머신, 서버)의 생성과 이 인스턴스가 어디에서 실행할지 결정하며, 또한 중지와 스케쥴링을 계산하기 위한 메뉴. 대시보드의 Flavor라는 메뉴에서 H/W의 할당량을 정의하는 프로파일을 설정할 수 있다. 실제 물리적 컴퓨터의 자원의 사이즈에 따라 할당량을 정해야 한다. 많이 설정하면 인스턴스를 적게 만들어야만 한다. 즉 실제 H/W 용량에 따라 가상의 논리적 인스턴스의 사용량이 제한된다.
2. Image ( 프로젝트 : Glance )
Disk 파일의 형태(템플릿)의 이미지를 제공해줌. 직접 사이트(고객)의 사용량에 따라 조정이 가능하다. OS가 포함된(부팅이 가능한) 파일(Image)을 업로드하면 업로드한 공간을 확보하고 관리해줌. 설정 파일의 위치는 '/var/lib/glance/glance-api.conf'이다. 주의할 점은 디스크와 메모리(RAM) 설정 시, Flavor에서 설정한 값보다 적어야 생성이 가능하다는 점이다.
3. Networking ( 프로젝트 : Neutron )
1) Internal Network
- 가성 서버 환경으로 NAT로 구성할 시, 해당 NAT IP(공인 IP)의 내부망으로 사설 IP 대역의 네트워크를 말한다.
2) External Network
- 실제 호스트 PC의 IP 대역의 외부망을 말한다.
3) Router
- 외부와 내부를 연결하기 위한 Gateway의 용도
4) Floating
- 실제 외부의 IP 대역에서 접근 가능하도록 만들려면 필요한 인스턴스임.
4. Security Group (F/W)
- 일종의 방화벽 역할을 하는 메뉴
5. Key Pair
- 다른 네트워크에서 내부망 인스턴스(가상 머신)로 SSH 원격 접속을 하기 위해서 설정해야 한다.
참조
1) "클라우드에서도 보안 책임은 기업 스스로", 클라우드 보안 과제와 기업의 대응 전략 (https://drive.google.com/open?id=1zKY6Cta1dqtqqoZW7Dbv91mS-5QdKdN5)
2) [공개 SW 활용사례] 사례로 보는 공개 SW 클라우드의 구축과 활용
3) 오픈스택 - 위키백과