✒️ 1. 가상머신 (Virtual Machine)
클라우드 컴퓨팅은 현대 IT 인프라의 근간을 이루는 핵심 기술이다.
이는 가상 머신(Virtural Machine)을 기반으로 하여 유연하고 확장 가능한 컴퓨팅 리소스를 제공한다.
클라우드에 대해 알아보기 전에 클라우드의 기반 기술인 가상머신에 대해 알아보자.
(클라우드에 대해서 질문하면 알아둬야 할 것!)
💡 전통적인 배포방식
전통적인 배포 방식에서는 한 대의 물리적 컴퓨터에 하나의 운영 체제(OS)를 설치하고 여러 프로그램을 운영했다.
이 방식은 리소스 활용도가 낮고 확장성이 제한적이었다.
💡 가상화 배포방식
가상화 기술은 이러한 한계를 극복했다.
가상화를 통해 하나의 물리적 컴퓨터에서 여러 개의 가상 머신(VM)을 운영할 수 있게 되다.
엄청 쉽게 이해하자면, 우리가 알고 있는 그 "컴퓨터의 하드웨어"를 소프트웨어 적으로 하나의 컴퓨터에 여러 대 올려 놓은 것이다.
각 VM은 독립적인 OS를 가지며, 하드웨어 리소스를 효율적으로 공유할 수 있다.
(CPU나 RAM을 갈아끼우는 것이 아니란 뜻)
하이퍼 바이저 1형 2형 등도 있지만 이건 여기서 설명하진 않겠다.
일단, 저렇게 중간에 끼여 있는 하이퍼바이저 란
"하드웨어와 VM 사이의 중간 계층"으로, VM을 생성하고 관리한다.
즉 중요한 것은 "어떤 OS, 어떤 서비스등을 그냥 하나의 하드웨어에서 효율적으로 돌릴 수 있다는 것이다!"
이렇듯 독립적으로 가상머신이 구축되어 서로 전혀 상호작용하지 않으며,
한 VM 위의 프로그램들은 다른 VM위의 프로그램에서 볼 수 없는 형태를 '샌드박스 되었다' 라고도 한다.
(다만, OS가 공유되지 않았다는 것 -> 가상 머신에서 일일히 OS를 설치하여 사용해야 한다는 번거로움은 있다.)
(AWS에서 리눅스 많이 깔아보셨잖아~)
✒️ 2. 오프프레미스, 온프레미스
💡 클라우드
클라우드 서비스는 사용자가 물리적 하드웨어를 직접 소유하거나 관리할 필요 없이 컴퓨팅 자원을 사용할 수 있게 해주며,
다양한 형태로 제공된다.
내가 아닌 다른 회사의 공급자가 호스팅하고 인터넷을 통해 사용자에게 제공되는 인프라, 플랫폼 또는 소프트웨어를 말한다.
(무엇을 제공한다고요!?)
이를 이용하면 자체 인프라나 하드웨어 설치 없이도 애플리케이션과 리소스에 쉽고 싸게 이용이 가능하다.
💡 오프프레미스(off-premise) 방식
이렇듯 회사는 클라우드 제공업체의 인프라를 이용하여 서버를 구축할 수 있다.
그러면, 전력, 서버 세팅, 확장성 등에 큰 고민을 하지 않아도 되며 서비스 운영에만 집중할 수 있다.
💡 온프레미스(on-premise) 방식
오프프레미스와 반대로
기업이나 개인이 자체 시설에서 보유하고 직접 유지 관리하는 프라이빗 데이터 센터(IDC)을 의미한다.
갑자기 그 때가 생각이 난다..
http://www.news-story.co.kr/news/articleView.html?idxno=70103
✒️ 3. IaaS, PaaS, SaaS
클라우드 서비스는 제공하는 리소스의 수준에 따라 세 가지로 분류된다!!
아까 클라우드 제공업체가 어떠한 형태로 소비자들에게 서비스를 제공한다고 했죠!?
사용자에게 인프라, 플랫폼 또는 소프트웨어를 제공한다.
💡 IaaS(Infrastructure-as-a-Service)
가장 기본적인 형태의 클라우드 서비스이다.
가상화된 컴퓨팅 리소스를 제공하며, 사용자가 OS부터 프레임워크, DB까지 모두 직접 구성하고 설치하여 사용해야 한다!
(특정 서비스에 종속되어 있지 않아요!)
예: Amazon EC2, Google Compute Engine
개발자라면 모를 수가 수가 절대 없는 AWS EC2가 바로 가상 컴퓨터를 통으로 제공하는 서비스이다.
💡 PaaS(Platform-as-a-Service)
애플리케이션 개발, 실행, 관리를 위한 플랫폼 제공
개발자는 인프라 관리 없이 애플리케이션 개발에 집중 가능
(이미 Node.js, MongoDB등이 설치되어 있으며, 클릭만으로 해당 서비스들을 이용할 수 있다.)
예: Heroku, Google App Engine
💡 SaaS(Software as a Service)
완성된 소프트웨어를 서비스로 제공
사용자는 소프트웨어 설치나 관리 없이 바로 사용 가능
놀랍게도 구글 DOCS 같은 것도 "클라우드를 통해 다른 컴퓨터에서도 쉽게 작업할 수 있는 공유 작업을 제공하며"
이것도 SaaS의 일종이다.
예: Google Workspace, Salesforce
📝 면접 예상 질문
(본문에 있는 내용은 따로 답 달지 않음)
1. 가상 머신이란 무엇인가요? 전통적인 배포 방식과 어떻게 다른가요?
2. 가상화 배포 방식의 장점은 무엇인가요?
답변 예시:
여러 가상 머신이 하나의 물리적 자원을 공유하여 하드웨어 활용을 극대화합니다.
또한 자원을 동적으로 할당하여 필요에 따라 쉽게 확장할 수 있으며,
각 가상 머신이 독립적으로 운영되므로 보안과 안정성이 향상됩니다. (확장성과 이식성이 좋다.)
3. 가상 머신을 운영하기 위해 필요한 하이퍼바이저란 무엇인가요? 하이퍼바이저의 역할을 설명해 주세요.
답변 예시:
하이퍼바이저(Hypervisor)는 가상화를 가능하게 하는 소프트웨어 계층으로, 물리적 하드웨어를 추상화하여 여러 가상 머신이 독립적으로 실행될 수 있도록 합니다.
4. 클라우드 서비스란 무엇인가요?
답변 예시:
클라우드 서비스는 사용자가 물리적 하드웨어를 직접 소유하거나 관리할 필요 없이 인터넷을 통해 컴퓨팅 자원을 사용할 수 있게 해주는 서비스입니다.
5. IaaS, PaaS, SaaS의 차이점은 무엇인가요?
6. 어떤 상황에서 오프프레미스 방식을 선택하는 것이 더 유리할까요?
답변 예시:
물리적 인프라를 구축할 필요가 없어 초기 비용을 절감할 수 있습니다.
사업 성장에 따라 자원을 쉽게 확장할 수 있습니다.
하드웨어 유지 관리, 전력, 보안 등을 클라우드 제공업체에 맡겨 관리 부담을 줄일 수 있습니다.
클라우드 제공업체의 데이터 센터를 이용하여 재해 복구 계획을 쉽게 구현할 수 있습니다.
7. 어떤 상황에서 IaaS를 선택하는 것이 유리할까요?
답변 예시:
사용자가 특정 운영 체제나 소프트웨어 환경을 직접 설정해야 할 때,
필요에 따라 자원을 동적으로 조정할 수 있어 비용 효율적입니다.
또한, 확장성과 유연성이 중요한 경우에도 고려해볼 만 한 것 같습니다..
8. 그럼 기업 수준에서 고려해야 할 SaaS의 보안 문제가 있을까요?
답변 예시:
- 클라우드 애플리케이션 내에 어떤 데이터가 있는지에 대한 가시성 부족
- 악의적인 공격자에 의한 클라우드 애플리케이션의 데이터 도난
- 민감한 데이터에 액세스할 수 있는 사용자에 대한 불완전한 제어
- 클라우드 애플리케이션으로 전송되는 데이터를 모니터링할 수 없음
- IT 가시성 외부에서 프로비저닝되는 클라우드 애플리케이션(예: 섀도 IT)
- 클라우드 애플리케이션의 보안을 관리할 수 있는 기술을 갖춘 직원 부족
- 악의적인 내부자의 데이터 도용 또는 오용을 방지할 수 없음
- 클라우드 애플리케이션 제공업체에 대한 지능형 위협 및 공격
- 클라우드 애플리케이션 제공업체의 운영 보안을 평가할 수 없음
- 규정 준수를 유지할 수 없음
9. 그럼 이를 해결하기 위한 방법은 무엇인가요?
답변 예시:
민감한 데이터 접근을 제어하기 위해 강력한 인증과 접근 제어를 구현해야 합니다.
데이터를 전송 시와 저장 시 모두 암호화하여 보호해야 합니다.
해당 산업의 규제와 표준을 준수하는 SaaS 제공업체를 선택해야 합니다. (컴플라이언스 준수)
SaaS 제공업체의 보안 상태를 정기적으로 평가하고, 취약점을 발견하면 즉시 대응해야 합니다.
사용자에게 보안 인식 교육을 실시하여 피싱 및 소셜 엔지니어링 공격에 대한 방어력을 높여야 합니다.
AWS EC2, S3, Lambda, RDS, VPC, IAM ... 관련해서도 물어볼 수 있겠지만, 이번 내용은 아니라 패스