AWS CLI 명령을 사용하여 스냅샷을 관리하고 Lightsail 인스턴스에 대한 백업을 생성하려면 어떻게 해야 하나요?

4분 분량
0

AWS Command Line Interface(AWS CLI) 명령을 사용하여 스냅샷을 관리하고 Amazon Lightsail 인스턴스에 대한 백업을 생성하려고 합니다.

해결 방법

참고:

  • AWS CLI 명령을 실행할 때 오류가 발생하면, AWS CLI 오류 문제 해결을 참조하세요. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
  • AWS CLI는 기본적으로 JSON을 출력합니다. 기본값을 사용하거나 명령에 --output json을 추가하여 다음 예제와 같이 출력을 수신할 수 있습니다. 자세한 내용은 ](https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-filter)AWS CLI의 명령 출력 제어[를 참조하세요.
  • AWS CLI 출력에는 타임스탬프가 Unix Epoch 시간으로 표시됩니다. 타사 변환기를 사용하여 타임스탬프를 변환합니다(예: epochconverter.com).

수동 백업 관리

AWS CLI 명령을 사용하여 인스턴스에 대한 수동 백업을 관리하고 사용 가능한 스냅샷을 나열합니다.

Lightsail 인스턴스에 대한 수동 백업 생성

create-instance-snapshot 명령을 실행하여 Lightsail 인스턴스의 스냅샷을 생성합니다. 다음 예제에서는 eu-west-1 AWS 리전에서 SnapshotTestLightsailInstance1 인스턴스의 스냅샷을 생성합니다.

# aws lightsail create-instance-snapshot --instance-name TestLightsailInstance1 --instance-snapshot-name SnapshotTestLightsailInstance1{
    "operations": [
        {
            "id": "d3196be7-3dc6-4508-b335-16ce45f11c90",
            "resourceName": "SnapshotTestLightsailInstance1",
            "resourceType": "InstanceSnapshot",
            "createdAt": 1602180831.638,
            "location": {
                "availabilityZone": "all",
                "regionName": "eu-west-1"
            },
            "isTerminal": false,
            "operationDetails": "TestLightsailInstance1",
            "operationType": "CreateInstanceSnapshot",
            "status": "Started",
            "statusChangedAt": 1602180831.638
        },
        {
            "id": "df237a33-bca9-4fc3-8f46-ea5d12606f5c",
            "resourceName": "TestLightsailInstance1",
            "resourceType": "Instance",
            "createdAt": 1602180831.638,
            "location": {
                "availabilityZone": "eu-west-1a",
                "regionName": "eu-west-1"
            },
            "isTerminal": false,
            "operationDetails": "SnapshotTestLightsailInstance1",
            "operationType": "CreateInstanceSnapshot",
            "status": "Started",
            "statusChangedAt": 1602180831.638
        }
    ]
}

참고: instance-snapshot-name, instance-nameregion을 사용자 값으로 바꿉니다.

사용 가능한 스냅샷 나열

get-instance-snapshots 명령을 실행하여 Lightsail 인스턴스에 대한 모든 스냅샷을 나열합니다. 다음 예제에서는 eu-west-1 리전에서 사용 가능한 스냅샷의 세부 정보를 보여 줍니다.

# aws lightsail get-instance-snapshots --region eu-west-1 --query 'instanceSnapshots[].{name:name,createdAt:createdAt,resourceType:resourceType,state:state,fromInstanceName:fromInstanceName,sizeInGb:sizeInGb}' --output table
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                                                                                                GetInstanceSnapshots                                                                                                 |
+----------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------+-------------------+-----------+-------------+
|    createdAt   |            fromInstanceName             |                                                   name                                                     |   resourceType    | sizeInGb  |    state    |
+----------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------+-------------------+-----------+-------------+
|  1602180831.638|  TestLightsailInstance1                 |  SnapshotTestLightsailInstance1                                                                            |  InstanceSnapshot |  40       |  available  |
+----------------+-----------------------------------------+------------------------------------------------------------------------------------------------------------+-------------------+-----------+-------------+

참고: region을 사용자의 리전으로 바꿉니다.

자동 백업 관리

AWS CLI 명령을 사용하여 인스턴스에 대해 자동 스냅샷이 켜져 있는지 확인하고 자동 스냅샷을 활성화합니다. 또한 자동 스냅샷을 나열하고 번들 크기가 더 크거나 Lightsail 플랜이 더 높은 백업에서 새 인스턴스를 생성할 수 있습니다.

인스턴스에 대해 자동 스냅샷이 켜져 있는지 확인

다음 명령을 실행하여 인스턴스에 대해 자동 스냅샷이 켜져 있는지 확인하고 정의된 일정을 표시합니다.

# aws lightsail get-instances --region eu-west-1  --query 'instances[].{addOns:addOns,name:name,publicIpAddress:publicIpAddress,AutoMatciSnapshotStatus:(addOns[].status),Schedule:(addOns[].snapshotTimeOfDay)}' --output text| grep -w "TestLightsailInstance1"['Enabled']     ['20:00']       [{'name': 'AutoSnapshot', 'status': 'Enabled', 'snapshotTimeOfDay': '20:00'}]   TestLightsailInstance1  3.250.xx.xx

참고: TestLightsailInstance1을 사용자의 인스턴스 이름으로 바꾸고 region을 사용자의 리전으로 바꿉니다.

자동 스냅샷 켜기

enable-add-on 명령을 실행하여 Lightsail 인스턴스에 대한 자동 스냅샷을 활성화합니다. 다음 예제에서는 UTC(오후 8시 UTC) 기준 매시간 증분으로 설정된 일별 자동 스냅샷을 생성합니다.

# aws lightsail enable-add-on --region eu-west-1 --resource-name TestLightsailInstance1 --add-on-request addOnType=AutoSnapshot,autoSnapshotAddOnRequest={snapshotTimeOfDay=20:00}{
    "operations": [
        {
            "id": "823bb162-9848-4897-b845-8f41c375801a",
            "resourceName": "TestLightsailInstance1",
            "resourceType": "Instance",
            "createdAt": 1602181856.652,
            "location": {
                "availabilityZone": "eu-west-1",
                "regionName": "eu-west-1"
            },
            "isTerminal": false,
            "operationDetails": "EnableAddOn - AutoSnapshot",
            "operationType": "EnableAddOn",
            "status": "Started"
        }
    ]
}

참고: resource-name, snapshotTimeOfDayregion을 사용자 값으로 바꿉니다.

자동 스냅샷을 나열하고 번들 크기가 더 크거나 Lightsail 플랜이 더 큰 백업에서 새 인스턴스 생성

get-auto-snapshots 명령을 실행하여 Lightsail 인스턴스 또는 디스크에 사용 가능한 모든 자동 스냅샷을 나열합니다. 다음 예제에서는 TestLightsailInstance1 인스턴스에 사용할 수 있는 스냅샷의 세부 정보를 보여 줍니다.

# aws lightsail get-auto-snapshots --region eu-west-1 --resource-name TestLightsailInstance1{
    "resourceName": "TestLightsailInstance1",
    "resourceType": "Instance",
    "autoSnapshots": [
        {
            "date": "2020-10-08",
            "createdAt": 1602188663.0,
            "status": "Success",
            "fromAttachedDisks": []
        }
    ]
}

참고: resource-nameregion을 사용자 값으로 바꿉니다.

create-instances-from-snapshot 명령을 실행하여 수동 또는 자동 백업에서 Lightsail 인스턴스를 생성합니다. 다음 예제에서는 특정 백업과 더 큰 크기의 번들을 사용하여 eu-west-1 리전에 인스턴스를 생성합니다.

# aws lightsail create-instances-from-snapshot --region eu-west-1 --instance-snapshot-name SnapshotTestLightsailInstance1 --instance-names RestoredTestLightsailInstance1-New  --availability-zone eu-west-1a --bundle-id large_2_0{
    "operations": [
        {
            "id": "09f7d1bb-90f4-48dc-b304-543499e11208",
            "resourceName": "RestoredTestLightsailInstance1-New",
            "resourceType": "Instance",
            "createdAt": 1602182374.625,
            "location": {
                "availabilityZone": "eu-west-1a",
                "regionName": "eu-west-1"
            },
            "isTerminal": false,
            "operationType": "CreateInstancesFromSnapshot",
            "status": "Started",
            "statusChangedAt": 1602182374.625
        }
    ]
}

참고: instance-snapshot-name, instance-names, bundle-idregion을 사용자 값으로 바꿉니다.

다음은 생성한 Lightsail 인스턴스 RestoredTestLightsailInstance1-New에 대한 세부 정보의 예입니다.

# aws lightsail get-instances --region eu-west-1 --query 'instances[].{name:name,createdAt:createdAt,blueprintId:blueprintId,blueprintName:blueprintName,publicIpAddress:publicIpAddress}' --output table |grep -i RestoredTestLightsailInstance1-New
|  wordpress      |  WordPress     |  1602182374.625 |  RestoredTestLightsailInstance1-New      |  34.247.xx.xx    |

관련 정보

Lightsail에 대한 AWS CLI 명령 참조

Lightsail API 참조

AWS CLI 명령을 사용하여 Lightsail 인스턴스를 관리하려면 어떻게 해야 하나요?

Lightsail 문서

AWS 공식
AWS 공식업데이트됨 3달 전