AWS(Amazon), Azure(Microsoft), GCP(Google), NCP(네이버) 등 유수의 CSP 업체 중 어떤 서비스를 이용할지 결정했다면, 이제 자원을 생성하고 관리해야 합니다. 이번 글에서는 CSP 업체들이 제공하는 다양한 클라우드 서비스를 이용하기 위해, 초기에 인프라를 구축하는 스타트업이 반드시 알아야 할 용어들을 정리해보았습니다.
1) 서버
- 클라우드 상에서 서버를 대여할 때의 장점 중 하나는 가상화 된 서버를 필요한 양만큼만 할당 받아 작업을 처리하고, 사용량만큼의 비용만을 지불함으로써 고정비를 절감할 수 있다는 점입니다. AWS의 EC2, GCP의 Compute Engine 서비스 등을 통해 사용자는 본인이 원하는 서버의 크기 (CPU, 메모리), 운영체제 (Linux, Windows, Mac) 등을 선택하여 이용하고, 본인의 사용량에 대한 비용만을 납부합니다.
- 클라우드에서 서버를 대여하는 것의 또 다른 장점은 사이즈 조정이 자유롭다는 점입니다. 직접 컴퓨터를 구매해서 이용했을 때와 달리 퍼블릭 클라우드 환경에서 서버를 대여할 경우, CPU 및 메모리 리소스가 부족할 때 인스턴스를 일시 중지하여 사이즈를 재조정한 이후 재가동함으로써 부하 증가에 탄력적으로 대응할 수 있습니다.
2) 디스크 (볼륨)
- 서버를 선정하는 것만큼이나 어떤 사이즈의 디스크를 이용할지 선택하는 것도 중요합니다. 특히 서버와 달리 디스크는 한 번 생성한 이후 삭제 또는 추가 생성만 가능할 뿐, 이미 생성된 디스크에 대한 사이즈 조정은 불가하기에 더욱 신중하게 선택해야 합니다.
- 또한 클라우드 서비스 이용자는 본인의 서비스에 읽기 동작이 많은 지 혹은 쓰기 및 수정 동작이 많은 지에 따라, 그리고 IOPS(초당 입출력 작업 수)에 따라 상이한 볼륨 유형을 선택해야 하기에 이를 유의하며 결정해야 합니다.
3) 스토리지
- AWS S3로 유명한 클라우드 환경 스토리지는 비용이 저렴할 뿐만 아니라 저장 가능한 객체 수 및 전체 저장 용량에 대한 제한이 없어 오토 스케일링이나 부하 분산에 신경 쓸 필요도 없다는 점에서 매우 매력적인 서비스입니다.
- 파일 저장에 특화 되어있는 만큼, 클라우드 환경에서 스토리지 서비스를 이용하게 될 경우, 서버를 대여해서 이용했을 때 정적 웹페이지를 보다 높은 성능으로, 더 저렴하게 호스팅 할 수 있습니다.
4) 데이터베이스
- 데이터베이스 서버는 각종 민감한 정보를 담고 있을 뿐만 아니라 서비스 운영에 치명적이기에 생성 및 관리가 매우 중요합니다.
- AWS RDS와 같은 관계형 데이터베이스 서비스 및 DynamoDB와 같은 NoSQL 서비스를 이용할 경우, 1) DB서버를 직접 설치해야 하는 번거로움을 덜 수 있을 뿐만 아니라, 2) 언제든 용량을 키울 수 있는 확장성, 3) 다중 리전 구성을 통한 안정성 및 고가용성 확보, 4) 보안성 등 다양한 측면에서의 이점을 누릴 수 있습니다.
5) 보안 [네트워크]
- 서버 또는 데이터베이스 서비스를 이용하는 과정에서 VPC, Subnet등을 설정했다면 보안성 강화를 위해 방화벽을 설정하는 것도 매우 중요합니다.
- AWS의 보안그룹, GCP의 방화벽 규칙을 통해 클라우드 서비스 사용자는 본인이 지정한 IP대역 및 포트 번호에서만 접속을 허용하고, 이외의 접근은 모두 차단할 수 있습니다. 클라우드 서비스 제공업체들은 이러한 방화벽 서비스를 무료로 제공하기에 기존 로컬 환경에서 써드파티 방화벽 서비스를 구매 또는 구독하여 이용했을 때에 비해 많은 비용을 절감할 수 있습니다.
6) 보안 [사용자]
- IAM(Identity and Access Management) 서비스를 통해 관리되는 사용자는 클라우드 서비스를 사용할 수 있는 권한을 가진 개인입니다. 클라우드 관리자는 개별 사용자에게 최소 권한 할당의 원칙에 따라 필요한 만큼의 권한만을 할당함으로써 보안성을 강화할 수 있습니다.
- 많은 기업의 클라우드 운영과정 리스크의 대부분이 바로 이 사용자의 Access Key가 공개적으로 노출됨으로 인해 발생하는 만큼 1) 최소 권한만을 할당하고, 2) 미사용 사용자는 제거하며, 3) Access Key가 공개적으로 노출되지 않도록 관리하는 것은 매우 중요합니다.
7) 모니터링
- 그래서는 안되겠지만, 클라우드를 운영하는 과정에서 서버가 해킹을 당했거나 과도한 사용으로 인해 서버가 다운됐다면 이를 어떻게 감지해야 할까요?
- 클라우드 서비스의 메트릭(지표)를 통해 관리자는 CPU 및 메모리 가용률, 네트워크 IO 등을 파악할 수 있습니다. 이를 통해 이상이 발생했을 경우 어떤 시점에 이상이 발생했는지 탐지할 수 있습니다. 또한, 발견한 시점과 로그 정보를 대입해 봄으로써 해당 시점에 구체적으로 어떤 행위로 인해 문제가 발생했는지, 문제의 원인이 내부에 있는지 외부에 있는지 등을 파악할 수 있습니다.
이번 글을 통해 꼭 알아야 할 기본 용어들을 정리해보았습니다. 그러나 여전히 클라우드에 관한 서비스와 정보는 너무 다양하고 어려운 것이 사실입니다. ☁Team vaCANCY☁는 스타트업들이 어떻게 하면 클라우드를 잘 운용하고, 이익을 취할 수 있을 지 고민하는 팀입니다. 이번 글 이외에도 클라우드와 관련해 다양한 고민을 가진 스타트업들에게 더 많은 도움을 드리고 싶습니다.
☕ 커피챗을 요청하시면 클라우드에 관한 질문과 고민에 대해 전문가가 답변해드리고 있습니다. 또한, MSP 컨설팅 비용이 부담스러운 스타트업들을 위해 무료로 컨설팅도 도와드리고 있습니다. 부담 없이 커피챗 신청해주세요. 같이 이야기를 나누고, 함께 성장하길 바랍니다.
“We make cloud industry light!”
vaCANCY 커피챗 신청 링크: https://tally.so/r/woD4Ve