클라우드가 무엇을 제공해야 하는지에 대해 자세히 읽어본 적이 있나? 필자는 중소기업들이 아마존웹서비스의 장점을 충분히 얻을 수 있도록
지난 몇 년 동안 클라우드 컴퓨팅 기술은 크게 발달했으며, 이제는 특히 서버와 기타 하드웨어 장비를 구매할 자금이 없는 소규모 기업과 신생벤처들이 온프레미스로 구축할 때에 비해 주목할 만한 이점까지도 제공하고 있다.
가격은 차치하더라도 퍼블릭 클라우드는 확장성과 탄력성 등의 안정된 기능을 제공한다는 장점이 있다. 더욱 중요한 것은 기업들이 퍼블릭 클라우드를 이용해 물리적인 인프라를 구성하는데 필요한 수 주 또는 수 개월의 시간 대신에 분 단위로 측정할 수 있는 시간 안에 신속하게 인프라를 구성할 수 있다는 점이다.
현재 가장 인기 있는 클라우드 서비스인 AWS(Amazon Web Services)를 살펴보고 소규모 기업이 활용할 수 있는 방법을 검토해 보도록 하자.
AWS 생태계와 기본 전제 조건
기본적인 수준에서 클라우드 배치 구성이 아주 이해하기 힘든 것은 아니지만 모든 것을 올바르게 구성하기 위해서는 IT 배경지식이나 일정 수준의 기술 역량이 요구된다. 예를 들어, CMS 또는 PHP 기반의 웹 사이트를 구성할 때는 이미 LAMP(Linux Apache MySQL PHP) 스택 구성에 익숙한 사람이 유리할 것이다.
전반적인 이점을 고려할 때 모두 말대로 된다면 AWS는 비전매 특허 클라우드 이행이다. 따라서 일부 개념은 여러 클라우드 제공 서비스들 사이에서 보편적으로 발견되지만 AWS에 적용할 수 있는 특정 전문지식은 일반적으로 마이크로소프트의 애저나 구글의 컴퓨트 엔진(Compute Engine)에 적용할 수 없으며 현장 배치 시 손쉽게 재현할 가능성도 낮다.
아마존웹서비스의 주요 콘솔
AWS는 기업들이 보편적인 도입 시나리오로 신속하게 운용하는데 도움이 되는 다양한 방법을 제공하고 있다. 실제로 특정 솔루션을 이행하는 방법이 여러 가지인 경우가 많다. 하지만 AWS 클라우드를 이해하려면 가장 많이 사용하고 있는 구성요소들부터 간단하게 살펴보는 것이 좋다.
웹호스팅을 위한 핵심 구성요소
EC2(Elastic Compute Cloud) 가상 서버는 AWS에서 클라우드 설치의 근간을 형성한다. 이런 가상 서버는 CPU, 메모리, 저장소, 네트워크 성능 등이 서로 다른 다양한 구성으로 제공되고 있으며 시간제 기준으로 요금을 청구한다. 일부 구형 인스턴스(Instance) 유형은 시간이 지나면서 자취를 감추게 된다.
S3(Simple Storage Service)는 객체 스토리지 시스템으로 단일 객체에 최대 5TB를 저장할 수 있으며 필수 명령줄 연산자, API 호출, 호환되도록 설계된 데스크톱 앱 등을 통해 웹의 아무 곳에서나 접근할 수 있다.
EBS(Elastic Block Store)는 전통적인 파일 시스템 역량을 제공하며 비용이 더 높다. 서버에 장착되는 EBS 볼륨은 디스크 드라이브의 기능을 제공하며 저장장치와 마찬가지로 연산 인스턴스를 종료한 후에도 그대로 유지된다 (EC2 인스턴스를 구성하여 종료 시 EBS 용량을 제거할 수 있다).
RDS(Relationship Database Service)은 관계형 데이터베이스 관리 시스템(Relational Database Management System, RDBMS)을 손쉽게 구성, 운영, 확장할 수 있는 웹 서비스이다. MySQL, 오라클, SQL 서버, PostgreSQL, 아마존 오로라(Amazon Aurora) 등의 적절한 데이터베이스 엔진을 선택할 수 있다.
루트 53(Route 53)은 DNS와 도메인명 등록을 위한 것이다. 루트 53은 일부 도메인명 등기소에서 제공하는 가격보다 저렴할 수 있는 경쟁력 있는 가격을 제공한다. 한편, 웹호스팅 기업들도 무료 도메인명이나 첫 수 년 동안의 할인 등의 패키지 상품을 제공하는 것으로 알려져 있다.
마지막으로 AWS 클라우드에 관심이 있다면 AWS가 최대 1년에 상응하는 연산 인스턴스 시간으로 구성된 무료 티어(Tier)뿐 아니라 상기 다양한 제품과 서비스의 여러 무료 사은품을 제공하고 있으니 확인해 보기 바란다.
보안을 잊지 말라
AWS는 보안을 중요하게 여기며, 단 한 번의 마우스 클릭으로 말 그대로 수백 대의 생산 서버를 구성하거나 해체할 수 있다는 점을 고려할 때 당연한 현상이라 할 수 있다. 예를 들어, 해커가 아마존 EC2 제어판에 침입한 이후에 최소 1곳의 유망한 신생벤처가 삭제되고 기본적으로 인프라 전체가 사라질 수 있다.
보안을 더욱 잘 관리하기 위해서 AWS는 사용자들이 무제한 접속이 가능한 ‘루트(Root)’ 사용자 대신에 자신의 책임 하에 자원을 관리할 수 있는 제한적인 권한을 구성하도록 권장한다. 일반적인 리눅스 시스템과 마찬가지로 사용자를 그룹에 할당할 수 있으며 추가적인 역할을 구성해 사용자나 그룹에 할당할 수 있다.
또 AWS는 MFA(MultiFactor Authentication)을 하드웨어와 가상 옵션 형태로도 제공하고 있다. 하드웨어 MFA의 경우 AWS는 제 3 제공자인 젬알토가 제조한 보안 폽(Fob)을 지원한다. 또는 가상 MFA 앱을 지원하여 안드로이드, 아이폰, 블랙베리에서 GA(Google Authenticator)를 지원함과 동시에 안드로이드에서 AWS 가상 MFA(Virtual MFA) 앱을 지원한다.
머신 이미지부터 시작하여 지역 선택하기
AWS는 새롭게 생성한 인스턴스로 불러올 수 있도록 사전에 개발된 광범위하고 최적화된 AMI(Amazon Machine Image)를 제공하기 때문에 첫 연산 인스턴스를 손쉽게 구성할 수 있다. 또 AWS 마켓플레이스(Markeplace)가 활성화 돼 있어 외부 개발 이미지를 확보할 수 있고, AWS 커뮤니티 또한 공유 공개 AMI를 개발하고 활용한다.
클라우드 인프라를 구성하기 전에 자신의 가상 인프라를 어디에 둘 지 지역이나 위치를 선택해야 한다. 여기에서 핵심은 많은 사용자들에게 가깝거나 개발자들이 물리적으로 위치하는 곳에 가장 가까운 위치를 선택하는 것이다. 후자의 경우 데이터를 업로드하며 웹사이트를 개발할 때 로딩 시간과 속도가 약간 향상될 수 있다. 개발자와 데이터베이스 관리자들은 비동기식 복제는 가능하지만 여러 지역에서 동기화된 데이터 복제는 불가능하다는 점을 유념해야 한다. 마지막으로 일부 새로운 서비스나 베타 제공물의 경우 특정 지역에서만 사용할 수 있다.
물론, 웹사이트의 설계 방식에 따라 대부분의 경우에 좋은 CDN(Content Delivery Network)를 사용하면 배치 지역을 굳이 고려하지 않아도 될 수 있다. AWS 클라우드프론트(CloudFront) CDN을 사용할 수 있으며, 다른 것도 선택할 수 있다. 또한 AWS는 여러 지역들 사이에서 손쉽게 이행하기 위한 툴을 제공한다.
마지막으로 대부분의 AWS 서비스의 비용이 일반적으로 여러 지역에서 동일하긴 하지만 반드시 그런 것은 아니라는 점에 유의해야 한다. AWS 비용 구조에 관한 추가 설명은 아래 ‘비용 모니터링’을 참조한다.
가동시간 설계
클라우드 컴퓨팅이 안전하다고 생각한다면 오산이다. AWS의 많은 서비스가 신뢰성이 높으며 AWS는 문제 발생 시 더 쉽게 복구할 수 있는 특정 기능을 제공하기는 하지만 반드시 배치의 일환으로 신뢰성을 위한 계획을 수립하고 대비해야 한다.
예를 들어, 최근 AWS가 사용하는 기초적인 젠(Xen) 하이퍼바이저에서 버그가 발견되었으며, 일부 AWS 머신은 패치 과정의 일환으로 재부팅해야 했다. 또 백엔드에서 동작하는 물리적인 서버도 문제가 발생할 수 있으며 실제로 발생하고 있다. 내장된 자동 보호 장치가 없다면 서버가 충돌을 일으키거나 백엔드에서 재부팅할 때 AWS에 구축한 웹 사이트가 예상과 다르게 동작하거나 접속이 불가할 수 있다.
일반적으로 중요한 사이트는 한 지역 안에서 하나 이상의 AZ(Availability Zone)에서 운용할 수 있도록 하는 것이 중요하다. 일반적으로 이를 위해서는 처음부터 다중 AZ 배치를 위한 데이터베이스 백엔드 구성을 마련해야 한다. 현장 배치 시 하나 이상의 데이터베이스 서버를 갖추면 비용이 높아지는 것과 마찬가지로 다중 AZ 데이터베이스 옵션이 비용이 높을 수 있다.
가장 일반적인 구성은 복수의 연산 인스턴스에 유입되는 애플리케이션 트래픽을 분산시키기 위한 ELB(Elastic Load Balancer) 구성이 수반된다. 트래픽은 건전하지 못한 인스턴스에서 건전한 인스턴스로 자동 전환이 가능하며 특정 AZ의 치명적인 문제 발생 시 복수의 AZ로 확대 적용할 수 있다.
보안을 잊지 말라
AWS는 보안을 중요하게 여기며, 단 한 번의 마우스 클릭으로 말 그대로 수백 대의 생산 서버를 구성하거나 해체할 수 있다는 점을 고려할 때 당연한 현상이라 할 수 있다. 예를 들어, 해커가 아마존 EC2 제어판에 침입한 이후에 최소 1곳의 유망한 신생벤처가 삭제되고 기본적으로 인프라 전체가 사라질 수 있다.
보안을 더욱 잘 관리하기 위해서 AWS는 사용자들이 무제한 접속이 가능한 ‘루트(Root)’ 사용자 대신에 자신의 책임 하에 자원을 관리할 수 있는 제한적인 권한을 구성하도록 권장한다. 일반적인 리눅스 시스템과 마찬가지로 사용자를 그룹에 할당할 수 있으며 추가적인 역할을 구성해 사용자나 그룹에 할당할 수 있다.
또 AWS는 MFA(MultiFactor Authentication)을 하드웨어와 가상 옵션 형태로도 제공하고 있다. 하드웨어 MFA의 경우 AWS는 제 3의 제공자인 젬알토가 제조한 보안 폽(Fob)을 지원한다(왼쪽 사진). 또는 가상 MFA 앱을 지원하여 안드로이드, 아이폰, 블랙베리에서 GA(Google Authenticator)를 지원함과 동시에 안드로이드에서 AWS 가상 MFA(Virtual MFA) 앱을 지원한다.
비용 모니터링
마지막으로 클라우드 컴퓨팅의 특징 중 인프라 비용을 낮출 수 있는 기능에 관해 가장 많이 들어보았을 것이다. 하지만 기업들의 속도가 느리기 때문에 이에 따른 운영 비용의 증가가 특정 상황에서는 상대적으로 짧은 시간 안에 직접설치 배치의 비용을 초과할 수 있다.
사용자가 클라우드 배치에 대한 비용을 더욱 잘 파악할 수 있도록 돕기 위해 AWS는 월간 계산기를 고안하여 사용자가 예상되는 디스크 및 네트워크 사용 수준에 기초하여 사용하고 있는 서비스에 기초한 배치 비용을 계산할 수 있도록 했다. 이는 기업들이 특정 수준의 신뢰성 또는 서비스 없이도 괜찮은지를 파악하는데 도움이 된다.
기존 배치에 기초하여 비용을 최적화하고자 하고 자체 사용 수준을 확실히 파악하고 있는 기업들은 ‘스팟(Spot)’ 또는 ‘예약(Reserved)’ 연산 인스턴스 구매를 결정할 수 있다. 한 마디로 전자를 통해 기업들은 사용하지 않는 연산 능력을 낮은 가격으로 활용할 수 있으며 후자의 경우 기업들은 이를 사전에 예약하고 비용도 지불할 수 있다. 하지만 지역에 따라 스팟 인스턴스가 항상 가능한 것은 아니다.

3년치 용량을 예약할 수 있으며 상황에 따라 바뀌는 비용을 사전에 지불하기 때문에 더 나은 가격을 확보할 수 있다.
AWS는 자체적으로 보안과 비용 최적화 유지를 포함하여 AWS 도입의 다양한 측면을 변경하기 위해 TA(Trusted Advisor)를 제공하고 있다. 단, 유로 지원 요금제는 모든 권장 사항을 이용해야 한다.
AWS의 가능성에 대해 빙산의 일각만을 다뤘지만 AWS 선택 여부를 결정한 후 다음 단계로 넘어가기 위해 적절한 질문을 던질 수 있는 기반을 제공했으리라 생각한다.
*Paul Mah는 전직 IT전문가로, 현재 ‘www.TechBlogger.io를 운영하고 있다. dl-ciokorea@foundryco.com