모든 스냅샷 목록 보기
서버 전체의 스냅샷 목록을 가져옵니다.
쿼리 매개변수
매개변수
유형
필수의
설명
server_id
integer
아니요
서버 ID로 스냅샷을 필터링합니다.
예시 요청
curl -X GET "https://admin.vps.org/api/v1/snapshots/?server_id=12345" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Copy
import requests
url = "https://admin.vps.org/api/v1/snapshots/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
params = {"server_id": 12345}
response = requests.get(url, headers=headers, params=params)
print(response.json())
Copy
const response = await fetch('https://admin.vps.org/api/v1/snapshots/?server_id=12345', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
});
const snapshots = await response.json();
console.log(snapshots);
Copy
예시 답변
{
"count": 2,
"results": [
{
"id": 801,
"server": {
"id": 12345,
"name": "web-server-01"
},
"name": "pre-migration-snapshot",
"status": "completed",
"size_mb": 5120,
"created_at": "2025-01-15T18:30:00Z",
"description": "Before major migration"
},
{
"id": 798,
"server": {
"id": 12345,
"name": "web-server-01"
},
"name": "weekly-snapshot-2025-01-08",
"status": "completed",
"size_mb": 4856,
"created_at": "2025-01-08T12:00:00Z",
"description": "Weekly snapshot"
}
]
}
응답 상태 코드
200
스냅샷 목록을 성공적으로 가져왔습니다.
401
권한 없음 - 인증 토큰이 유효하지 않거나 누락되었습니다.
스냅샷 생성
Create a snapshot of a server's current state. Snapshots are point-in-time copies of the entire server.
요청 본문 매개변수
매개변수
유형
필수의
설명
server_id
integer
예
스냅샷을 찍을 서버의 ID
name
string
예
스냅샷의 이름(영숫자, 하이픈, 밑줄 포함)
description
string
아니요
스냅샷에 대한 선택적 설명
예시 요청
curl -X POST "https://admin.vps.org/api/v1/snapshots/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"server_id": 12345,
"name": "before-update-snapshot",
"description": "Snapshot before system update"
}'
Copy
import requests
url = "https://admin.vps.org/api/v1/snapshots/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
data = {
"server_id": 12345,
"name": "before-update-snapshot",
"description": "Snapshot before system update"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Copy
const response = await fetch('https://admin.vps.org/api/v1/snapshots/', {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
},
body: JSON.stringify({
server_id: 12345,
name: 'before-update-snapshot',
description: 'Snapshot before system update'
})
});
const snapshot = await response.json();
console.log(snapshot);
Copy
예시 답변
{
"id": 802,
"server": {
"id": 12345,
"name": "web-server-01"
},
"name": "before-update-snapshot",
"status": "in_progress",
"size_mb": null,
"created_at": "2025-01-16T16:15:00Z",
"description": "Snapshot before system update",
"message": "Snapshot is being created. This may take 3-10 minutes depending on server size."
}
응답 상태 코드
201
스냅샷 생성이 성공적으로 시작되었습니다.
400
Bad Request - Invalid parameters or snapshot limit reached
401
권한 없음 - 인증 토큰이 유효하지 않거나 누락되었습니다.
404
Not Found - Server does not exist
메모: You can have a maximum of 5 snapshots per server. Creating a snapshot while the server is running may result in filesystem inconsistencies. For best results, stop the server before creating a snapshot.
스냅샷에서 복원
Restore a server to the state captured in a snapshot. This will overwrite all current data on the server.
경로 매개변수
매개변수
유형
필수의
설명
snapshot_id
integer
예
고유 스냅샷 ID
예시 요청
curl -X POST "https://admin.vps.org/api/v1/snapshots/801/restore/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Copy
import requests
snapshot_id = 801
url = f"https://admin.vps.org/api/v1/snapshots/{snapshot_id}/restore/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
response = requests.post(url, headers=headers)
print(response.json())
Copy
const snapshotId = 801;
const response = await fetch(`https://admin.vps.org/api/v1/snapshots/${snapshotId}/restore/`, {
method: 'POST',
headers: {
'Authorization': 'Bearer YOUR_API_TOKEN',
'Content-Type': 'application/json'
}
});
const result = await response.json();
console.log(result);
Copy
예시 답변
{
"status": "success",
"message": "Server is being restored from snapshot. This may take 5-15 minutes.",
"snapshot": {
"id": 801,
"name": "pre-migration-snapshot",
"created_at": "2025-01-15T18:30:00Z"
},
"server": {
"id": 12345,
"name": "web-server-01",
"status": "restoring"
}
}
응답 상태 코드
200
복원 작업이 성공적으로 시작되었습니다.
400
Bad Request - Server is not in a valid state for restoration
401
권한 없음 - 인증 토큰이 유효하지 않거나 누락되었습니다.
404
찾을 수 없음 - 스냅샷이 존재하지 않습니다.
경고: Restoring from a snapshot will overwrite all current data on the server. This action cannot be undone. The server will be automatically stopped before restoration begins.
스냅샷 삭제
스냅샷을 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다.
경로 매개변수
매개변수
유형
필수의
설명
snapshot_id
integer
예
고유 스냅샷 ID
예시 요청
curl -X DELETE "https://admin.vps.org/api/v1/snapshots/801/" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
Copy
import requests
snapshot_id = 801
url = f"https://admin.vps.org/api/v1/snapshots/{snapshot_id}/"
headers = {
"Authorization": "Bearer YOUR_API_TOKEN",
"Content-Type": "application/json"
}
response = requests.delete(url, headers=headers)
print(response.status_code)
Copy
응답 상태 코드
204
스냅샷이 성공적으로 삭제되었습니다.
401
권한 없음 - 인증 토큰이 유효하지 않거나 누락되었습니다.
404
찾을 수 없음 - 스냅샷이 존재하지 않습니다.
Snapshots vs Backups
Understanding when to use snapshots versus backups:
스냅샷 API
목적: Quick point-in-time recovery
속도: Faster to create and restore (3-15 min)
사용 사례: Before risky operations (updates, config changes)
저장: Stored on same infrastructure
한계: 5 snapshots per server
다음과 같은 경우에 가장 적합합니다: Short-term rollback capability
백업 API
목적: Long-term data protection
속도: Slower to create and restore (varies)
사용 사례: Regular automated data protection
저장: Separate backup storage
한계: 10 manual + automatic backups
다음과 같은 경우에 가장 적합합니다: Disaster recovery and compliance
Best Practices
Before Updates: Create a snapshot before major system updates
Testing: Use snapshots when testing configuration changes
Combined Strategy: Use both snapshots (short-term) and backups (long-term)
Clean Up: Delete old snapshots after successful updates
Server State: Consider stopping the server before creating critical snapshots