주요 개념
인스턴스
인스턴스(Instance)는 가상화된 하드웨어 리소스로, 일반적으로 컴퓨팅 파워, 메모리, 스토리지 공간, 네트워킹 기능 등을 내장한 가상 머신을 의미합니다. 이러한 가상화된 환경은 사용자가 필요에 따라 리소스를 확장하거나 축소할 수 있게 해주며, 물리적 하드웨어에 대한 비용과 유지 관리 부담을 크게 줄여줍니다.
Virtual Machine(VM) 인스턴스는 클라우드 컴퓨팅 서비스에서 가상 컴퓨터를 생성하는데 사용되며, 인스턴스의 비용은 일반적으로 사용된 만큼만 청구됩니다. 클라우드 컴퓨팅 서비스는 물리적 서버의 하드웨어 리소스을 가상화하여 여러 개의 독립적인 가상 머신을 동시에 실행하는 것을 가능하게 합니다. 이를 통해 사용자는 하나의 물리적 서버에서 여러 가상 머신을 운영함으로써 효율성과 확장성을 높일 수 있습니다.
각 VM 인스턴스는 일반적으로 CPU, 메모리, 스토리지, 네트워크 인터페이스 등의 리소스를 할당 받습니다. 이 리소스는 가상 머신의 성능과 용량을 결정하는 중요한 요소이며, 사용자의 요구에 따라 조정될 수 있습니다. 이를 통해 사용자는 자신의 애플리케이션 및 서비스에 가장 적합한 인스턴스 유형과 크기를 선택할 수 있습니다.
리소스 | 설명 |
---|---|
CPU | 가상 CPU가 인스턴스에 할당되며, 이는 물리적 CPU의 일부 또는 전체를 활용함 |
메모리 | 인스턴스에 가상 메모리가 부여되며, 이는 물리적 메모리의 일부나 전체를 이용하여 운영됨 |
스토리지 | 각 인스턴스는 가상 블록 스토리지를 가지며, 이는 물리적인 하드 디스크의 저장 공간을 효율적으로 분배하여 사용 가능 |
네트워크 인터페이스 | 인스턴스에는 가상의 기본(Primary) 네트워크 인터페이스가 기본적으로 연결되며, 이 인터페이스를 통해 통신 |
인스턴스 유형
카카오클라우드는 다양한 사용 사례에 최적화된 인스턴스 유형을 제공하며, 사용자가 자신의 워크로드 및 요구 사항에 가장 잘 맞는 인스턴스를 선택할 수 있도록 지원합니다. 또한 인스턴스 유형은 컴퓨팅 리소스와 스토리지 리소스 요구사항을 충족하도록 설계되었습니다.
사용자는 인스턴스 생성 시 특정 인스턴스 유형을 선택할 수 있으며, 사용한 리소스의 양에 비례하여 비용이 청구됩니다. 이는 효율적인 리소스 관리를 가능하게 하며, 고객이 실제로 사용한 리소스만큼만 비용을 지불하도록 보장합니다.
카카오클라우드에서 제공하는 인스턴스 유형에는 범용(General purpose), 컴퓨팅 최적화(Compute optimized), 메모리 최적화(Memory optimized), 가속 컴퓨팅(Accelerated computing), 비디오 트랜스코딩(Video transcoding) 등이 있습니다.
인스턴스 유형의 구체적인 사양 및 비용 정보는 카카오클라우드 공식 웹사이트를 참고하시기 바랍니다.
인스턴스 수명주기
인스턴스의 수명주기는 생성에서 반납까지의 일련의 과정을 포함하며, 이 과정은 상태값을 통해 확인할 수 있습니다. 이러한 상태값은 인스턴스의 현재 상황을 나타내는 지표로써, 실행, 반납, 삭제 등 다양한 상태를 포함합니다.
모니터링 기능을 통해 해당 인스턴스의 상태값을 조회하고, 이를 통해 적절한 관리 작업을 수행할 수 있습니다.
상태값과 수명주기를 확인하는 것은 인스턴스의 전체 수명주기, 즉 생성부터 종료와 삭제에 이르기까지의 모든 과정을 이해하고 관리하는 데 중요합니다.
인스턴스 수명주기
명령어/기능명
기능 이름(CLI 명령어) | 설명 | 실행 후 인스턴스 상태 |
---|---|---|
시작(start ) | 인스턴스 시작 | Active |
정지(stop ) | 인스턴스 정지 | Stopped |
종료(shelve ) | 인스턴스 종료 | Shelved_offloaded |
재시작(soft reboot ) | 인스턴스 재시작 | Active |
강제 재시작(hard reboot ) | 인스턴스 강제 재시작 | Active |
인스턴스 유형 변경(resize ) | 인스턴스 유형을 변경하기 위한 팝업창 실행 | - |
인스턴스 삭제(delete or terminate ) | 인스턴스 완전히 삭제 | - |
인스턴스 상태별 과금
다음 표는 각 인스턴스 상태에 대한 간략한 정보와 청구 여부를 설명합니다.
상태 | 설명 | 청구 여부 |
---|---|---|
Active | 인스턴스 실행 중 | 청구 |
Shelved_offloaded | 인스턴스가 종료되어, 하이퍼바이저 상에 할당했던 리소스를 반납한 상태 | 미청구 |
Stopped | 인스턴스가 정지되었으나, 하이퍼바이저 상에 리소스는 그대로 할당된 상태 | 청구 |
Error | 인스턴스에 오류가 발생하여, 인스턴스를 사용할 수 없는 상태 | 미청구 |
Building | 인스턴스를 생성하기 위해 하이퍼바이저 상에 리소스를 할당 중인 상태 | 미청구 |
Starting | 인스턴스를 구성하기 위한 작업을 시작한 상태 | 미청구 |
Scheduling | 인스턴스의 스케줄링을 진행 중인 상태 | 미청구 |
Block_device_mapping | 인스턴스의 볼륨 구성을 위한 작업 진행 중 | 미청구 |
Networking | 인스턴스의 네트워크 구성을 위한 작업 진행 중 | 미청구 |
Spawning | 인스턴스 생성 중 | 미청구 |
Rebooting | 인스턴스 재시작이 시작됨 | 청구 |
Reboot_started | 인스턴스를 재시작 중 | 청구 |
Rebooting_hard | 인스턴스 강제 재시작이 시작됨 | 청구 |
Rebooting_started_hard | 인스턴스 강제 재시작 중 | 청구 |
Shelving | 인스턴스를 종료 중 | 청구 |
Unshelving | 종료된 인스턴스를 재시작 중 | 미청구 |
Powering-off | 인스턴스 정지 중 | 청구 |
Powering-on | 정지된 인스턴스를 재시작 중 | 청구 |
Resize_prep | 인스턴스 유형 변경 작업 준비 중 | 미청구 |
Resize_migrating | 대상 인스턴스 유형으로의 전환을 위한 사전 작업 진행 중 | 미청구 |
Resize_migrated | 대상 인스턴스 유형으로의 전환을 위한 사전 작업 완료 | 미청구 |
Resize_finished | 인스턴스 유형 전환을 위한 사전 작업이 완료되어, 확인 작업으로 전환 | 미청구 |
Resized | 인스턴스 유형 전환 작업이 끝나 해당 작업을 최종 완료할지 작업을 되돌릴지 확인하는 중 | 미청구 |
Resize_confirm | 인스턴스 유형 전환 작업이 끝나 해당 작업을 최종 완료하는 중 | 미청구 |
Resize_revert | 전환 작업을 취소하고 기존 인스턴스 유형으로 되돌아감 | 미청구 |
Deleting | 인스턴스를 완전히 삭제하기 위한 작업 진행 중 | 미청구 |
인스턴스 구성
VM은 클라우드 서비스의 핵심이며, 확장성과 탄력성을 갖추고 있어 변동성이 높은 워크로드 처리에 뛰어난 선택지가 될 수 있습니다. 사용자는 비즈니스 상황에 맞춰 가상 인스턴스라고 불리는 가상 서버를 동적으로 시작, 중지, 삭제할 수 있습니다.
VM을 사용 시 먼저 인스턴스 유형을 선택해야 하는데, 해당 인스턴스 유형에 따라 인스턴스가 실행되는 컴퓨팅 리소스가 결정됩니다. 사용자는 Virtual Machine의 인스턴스 규모를 자유롭게 조정할 수 있으며, 이는 다양한 상황에 따라 스케일 업(Scale-up) 또는 스케일 아웃(Scale-out)을 선택할 수 있음을 의미합니다.
인스턴스의 스케일 업(Scale-up)은 기존 인스턴스의 리소스를 증가시켜 성능을 향상시키는 것을 의미합니다. 이는 단일 인스턴스 내에서 추가 CPU, 메모리 또는 스토리지 등을 할당하여 처리 능력을 강화하는 방식입니다. 반면, 스케일 아웃(Scale-out)은 새로운 인스턴스를 추가하여 워크로드를 분산시키는 것을 의미합니다. 이는 인스턴스의 개수를 증가시켜 부하를 분산시키고 가용성을 향상시키는 방식입니다. 여러 개의 인스턴스가 병렬로 작업을 처리하므로 성능과 확장성을 높일 수 있습니다.
또한, Virtual Machine 서비스에서는 네트워크 설정을 통해 인스턴스, 이미지, 블록 스토리지, 보안 그룹 등 다양한 기능과 구성 요소를 네트워크에서 사용할 수 있도록 제공합니다. 이때, 인스턴스는 서로 격리되어 안전하게 운영됩니다. 일반적으로 VM 인스턴스는 다음의 요소로 구성됩니다.
- 인스턴스 유형: 인스턴스 유형은 CPU, 메모리, 네트워크 대역폭, 스토리지 등 Virtual Machine의 성능과 크기를 결정합니다. 각각의 인스턴스 유형은 다른 요금으로 제공됩니다.
- 운영 체제: VM 인스턴스는 다양한 운영 체제에서 실행될 수 있습니다. 카카오클라우드에서는 크게 Windows, Linux 운영 체제로 구분되며, Unix 등 다양한 운영 체제를 지원합니다.
- 스토리지 유형: VM 인스턴스는 다양한 스토리지 유형을 사용할 수 있습니다. 일반적으로 Block Storage, Object Storage, File Storage 등을 지원합니다.
- 네트워크: VM 인스턴스는 인터넷 또는 기업 내부 네트워크에 연결될 수 있습니다. 사용자는 보안 그룹, 가상 네트워크, IP 주소 등을 구성하여 네트워크 연결을 제어할 수 있습니다.
이미지
Virtual Machine 서비스는 이미지를 활용하여 인스턴스를 생성하고 제공합니다. 이 이미지는 인스턴스를 시작하는 데 필요한 소프트웨어 구성 요소, 즉 운영체제와 애플리케이션 등을 포함하고 있습니다. 사용자는 자신의 요구 사항과 용도에 맞는 운영체제와 애플리케이션을 포함한 이미지를 선택하여 인스턴스를 구동할 수 있습니다. 선택한 이미지는 인스턴스의 수명주기를 따르며, 인스턴스 사용 시간에 따라 비용이 청구됩니다.
이미지를 선택할 때, 사용자의 필요에 따라 운영체제(OS)와 애플리케이션을 적절히 고려해야 합니다. 사용 가능한 이미지 유형은 여러 가지가 있으므로, 사용자의 요구 사항에 가장 잘 맞는 유형을 선택해야 합니다. VM 서비스에서 제공하는 이미지는 다음과 같습니다.
이미지 유형 | 설명 |
---|---|
기본 | - 카카오클라우드에서 기본적 으로 제공하는 기본 이미지로 Linux 및 Windows 이미지를 제공 - 기본적으로 모든 사용자가 이 기본 이미지를 액세스하고 인스턴스를 생성 가능 - 사용자들은 안전하고 보안적으로 신뢰할 수 있는 클라우드 인스턴스를 쉽게 구축 가능 |
내 이미지 | - 해당 프로젝트에서 사용할 수 있는 커스텀 이미지를 생성 - 생성한 내 이미지를 사용하여 새로운 인스턴스 생성 가능 |
Virtual Machine 서비스에서는 카카오클라우드에서 제공하는 기본 이미지와 사용자가 직접 생성한 내 이미지를 통해 VM을 생성할 수 있습니다.
제공되는 기본 이미지
구분 | kr-central-2 리전 |
---|---|
Linux | Ubuntu 20.04 |
Ubuntu 20.04 (GPU) | |
Ubuntu 22.04 | |
Ubuntu 22.04 (GPU) | |
Ubuntu | 24.04 |
CentOS Stream 9 | |
Rocky Linux 8.10 | |
Rocky Linux 9.4 | |
Alma Linux 8.10 | |
Alma Linux 9.4 | |
Windows | Windows Server 2019 |
Windows Server 2019 (+ MSSQL 2019) | |
Windows Server 2022 |
볼륨
VM 인스턴스는 부팅을 위해 루트 디바이스 볼륨에 포함된 이미지를 사용합니다. 이 루트 디바이스 볼륨은 Block Storage 서비스를 통해 제공되며, VM 인스턴스 생성 시 루트 볼륨에 대한 설정을 완료하면 자동으로 생성됩니다. 사용자는 루트 볼륨에 운영체제를 설치하거나 파일 시스템을 구성하고 데이터베이스를 실행할 수 있습니다.
볼륨은 실제 데이터가 저장될 공간으로, 카카오클라우드의 Block Storage는 블록 스토리지 디바이스인 볼륨을 제공합니다. 볼륨은 현재 SSD
유형만 지원하고 있으며, Block Storage를 통해 볼륨을 만들고 VM 인스턴스에 연결하여, 운영체제를 설치하거나 파일 시스템을 구성하고 데이터베이스를 실행할 수 있습니다.
볼륨 상태값
볼륨에 대한 정보는 Virtual Machine > 볼륨 목록에서 확인이 가능하며, 아래와 같이 상태를 제공합니다.
볼륨 상태 | 설명 |
---|---|
Creating | 볼륨 생성 중 |
Available | 볼륨이 구성되어 사용 가능한 상태 |
In-use | 볼륨이 인스턴스에 연결된(attached) 상태 (인스턴스가 active , stopped 상태) |
Reserved | 볼륨이 인스턴스에 연결된(attached) 상태(인스턴스가 shelved_offloaded 상태) |
Attaching / Detaching | 볼륨이 인스턴스에 연결/해제(attachment/detachment) 되는 중 |
Extending | 볼륨의 크기 증설 중 |
Backing-Up | 볼륨의 스냅샷 생성 중 |
Uploading | 인스턴스를 이미지로 생성 후 볼륨으로 저장 중 |
Deleting | 볼륨이 삭제되고 있는 중 |
Error | 볼륨에 오류가 발생하여 사용할 수 없는 상태 |
볼륨 크기 제한
볼륨의 크기 제한은 선택한 운영체제의 이미지 환경에 따라 변동할 수 있습니다. 즉, 각 운영체제 이미지는 볼륨에 할당할 수 있는 최대 크기를 가지며, 이는 사용자가 선택하는 운영체제에 따라 다르게 적용됩니다. 따라서 원하는 운영체제의 볼륨 크기 제한을 미리 확인하고, 적절한 볼륨 크기를 설정하는 것이 중요합니다.
항목 | 크기(GB) |
---|---|
최소 크기 | 1 |
최대 크기 | 5,120 |
키 페어
키 페어(Key Pair)는 VM 인스턴스에 접속할 때 사용되는 자격 증명으로, 인스턴스의 접근 보안을 강화하는 데 중요한 역할을 합니다. 키 페어는 퍼블릭 키(public key)와 프라이빗 키(private key)로 구성되어 있습니다. 사용자는 키 페어의 유지보수를 철저히 관리하고, 퍼블릭 키와 프라이빗 키를 안전하게 보관해야 합니다.
일반적으로 퍼블릭 키를 클라우드 플랫폼에 등록하여 보관하면, 사용자는 특정 인스턴스에 접속할 때마다 프라이빗 키를 사용한 인증 과정을 거치게 됩니다. 이러한 방식으로 키 페어는 인스턴스 접속을 제한하고 보안을 강화할 수 있습니다. 키 페어는 한 번 등록하면 해당 퍼블릭 키만을 사용할 수 있습니다. 인스턴스를 생성하거나 이미 생성된 인스턴스에 연결할 경우에는, 키 페어를 생성하거나 기존의 키 페어를 연결할 수 있습니다.
퍼블릭 키뿐만 아니라, 사용자는 프라이빗 키의 유출이나 분실로 인해 발생할 수 있는 문제를 최소화하기 위해 프라이빗 키를 안전하게 관리해야 합니다. 즉, 프라이빗 키는 철저히 암호화되어야 하며, 타인과 공유하거나 복사하여 사용해서는 안 됩니다. 또한 프라이빗 키를 분실하거나 삭제하면 인스턴스에 접속할 수 없게 되므로 이 점에 유의하시기 바랍니다.
네트워크 및 보안
Virtual Machine의 모든 인스턴스는 VPC 환경에서 제공합니다. Virtual Private Cloud (VPC)는 클라우드 환경에서 가상의 프라이빗 네트워크를 구성할 수 있는 서비스이며, VPC를 활용하면 인스턴스의 네트워킹 설정을 세밀하게 관리하고 보안성을 강화할 수 있습니다. 인스턴스 생성 시 VPC와 서브넷을 선택할 수 있으며, 인스턴스에 퍼블릭 IP를 연결할 수 있습니다.
퍼블릭 IP
퍼블릭 IP 주소는 클라우드 환경에서 인스턴스 또는 VM이 인터넷과 통신할 수 있는 공용 IP 주소를 나타냅니다. 사용자는 특정 인스턴스가 퍼블릭 IP 주소 풀에서 퍼블릭 IP 주소를 수신하는지 여부를 제어할 수 있습니다.
인스턴스의 퍼블릭 IP 주소는 인스턴스가 중지되거나 종료될 때까지만 인스턴스와 연결됩니다. 영구 퍼블릭 IP 주소가 필요한 경우 퍼블릭 IP 주소를 할당하고 이를 인스턴스 또는 네트워크 인터페이스에 연결할 수 있습니다. 퍼블릭 IP 주소는 사용자가 해제할 때까지 계정에 연결되며, 지속해서 요금이 부과됩니다. 또한, 계정에 할당된 퍼블릭 IP 주소는 이전 인스턴스에서 다른 인스턴스로 연결을 변경할 수 있습니다. 이 경우, 이전 인스턴스에서는 연결 해제(detachment) 작업을 수행하고, 다른 인스턴스로 연결(attachment) 작업을 수행해야 합니다.
IAM 역할 관리
Virtual Machine의 IAM(Identity and Access Management)은 역할 기반 액세스 제어(RBAC)를 제공하여 사용자 및 그룹에 대한 관리를 수행합니다. 이를 통해 프로젝트 내에서 역할을 정의하고 해당 역할에 대한 액세스 권한을 할당하여 인스턴스에 대한 접근을 효과적으로 관리할 수 있습니다.
모든 VM 리소스는 프로젝트의 하위로 생성되어 관리됩니다. 프로젝트 권한을 가진 사용자(프로젝트 관리자/프로젝트 멤버)는 프로젝트 내에서 생성된 모든 리소스에 대한 생성, 수정, 삭제 등의 작업을 수행할 수 있습니다. 하지만, 키 페어는 키 페어를 생성한 소유자만이 삭제할 수 있습니다.
IAM을 사용함으로써 인스턴스에 대한 액세스를 효율적으로 관리하고 보안을 유지하고, 적절한 권한 부여 및 제어를 통해 인스턴스의 보안과 안정성을 확보할 수 있습니다.
IAM 역할 관리 | 프로젝트 관리자(Admin) | 프로젝트 멤버(Member) | 프로젝트 리더(Reader) |
---|---|---|---|
프로젝트 멤버 관리 | ✓ | ||
퍼블릭 IP 연결 설정 | ✓ | ||
인스턴스 관리 | ✓ | ✓ | △(조회만) |
볼륨 | ✓ | ✓ | △(조회만) |
이미지 | ✓ | ✓ | △(조회만) |
키 페어 | ✓ | ✓ | △(조회만) |