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

6분 분량
0

AWS Command Line Interface(AWS CLI) 명령을 사용하여 Amazon Lightsail 인스턴스를 관리하고 싶습니다.

간략한 설명

다음은 Lightsail 인스턴스에서 AWS CLI 명령을 사용하는 일반적인 시나리오입니다.

  • AWS 리전에서 사용 가능한 모든 Lightsail 플랜(번들) 및 블루프린트를 나열하려면
  • 특정 번들 및 블루프린트를 사용하여 Lightsail 인스턴스를 생성하려면
  • 특정 리전의 모든 Lightsail 인스턴스를 나열하려면
  • 고정 IP 주소를 할당한 다음 인스턴스에 연결하고 확인하려면

참고:

  • 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 시간으로 표시됩니다. 타임스탬프를 UTC로 변환하려면 다음 방법 중 하나를 사용합니다.

macOS

타임스탬프에서 소수점을 제거하고 소수점 오른쪽에 있는 숫자를 제거합니다. 그리고 나서 다음 명령을 실행합니다.

# date -r 1602175741 -uThu Oct  8 16:49:01 UTC 2020

Linux

다음 명령을 실행합니다.

# date -d @1602175741.603 -uThu Oct  8 16:49:01 UTC 2020

Windows

변환기를 사용하여 타임스탬프를 변환합니다(예: epochconverter.com).

해결 방법

리전에서 사용할 수 있는 Lightsail 번들 및 블루프린트 나열

get-bundles 명령을 실행하여 해당 리전에서 구매할 수 있는 번들을 나열합니다. 다음은 예제 출력입니다.

# aws lightsail get-bundles --region eu-west-1 --query 'bundles[].{price:price,cpuCount:cpuCount,ramSizeInGb:ramSizeInGb,diskSizeInGb:diskSizeInGb,bundleId:bundleId,instanceType:instanceType,supportedPlatforms:supportedPlatforms[0]}' --output table
---------------------------------------------------------------------------------------------------------------
|                                                 GetBundles                                                  |
+-----------------+-----------+---------------+---------------+--------+---------------+----------------------+
|    bundleId     | cpuCount  | diskSizeInGb  | instanceType  | price  |  ramSizeInGb  | supportedPlatforms   |
+-----------------+-----------+---------------+---------------+--------+---------------+----------------------+
|  nano_2_0       |  1        |  20           |  nano         |  3.5   |  0.5          |  LINUX_UNIX          |
|  small_2_0      |  1        |  60           |  small        |  10.0  |  2.0          |  LINUX_UNIX          |
|  nano_win_2_0   |  1        |  30           |  nano         |  8.0   |  0.5          |  WINDOWS             |
|  micro_win_2_0  |  1        |  40           |  micro        |  12.0  |  1.0          |  WINDOWS             |
+-----------------+-----------+---------------+---------------+--------+---------------+----------------------+

참고: eu-west-1을 해당 리전으로 바꿉니다.

get-blueprints 명령을 실행하여 리전의 모든 이미지 또는 블루프린트를 나열합니다. 다음은 예제 출력입니다.

# aws lightsail get-blueprints --region eu-west-1 --query 'blueprints[].{blueprintId:blueprintId,name:name,group:group,productUrl:productUrl,platform:platform}' --output table
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
|                                                                           GetBlueprints                                                                           |
+--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+
|              blueprintId             |         group         |             name               |  platform   |                     productUrl                      |
+--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+
|  windows_server_2019                 |  windows_2019         |  Windows Server 2019           |  WINDOWS    |  https://aws.amazon.com/marketplace/pp/B07QZ4XZ8F   |
|  windows_server_2016                 |  windows_2016         |  Windows Server 2016           |  WINDOWS    |  https://aws.amazon.com/marketplace/pp/B01M7SJEU7   |
|  amazon_linux_2                      |  amazon_linux_2       |  Amazon Linux 2                |  LINUX_UNIX |  https://aws.amazon.com/amazon-linux-2/             |
|  amazon_linux                        |  amazon-linux         |  Amazon Linux                  |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00CIYTQTC   |
|  ubuntu_18_04                        |  ubuntu_18            |  Ubuntu                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B07CQ33QKV   |
|  debian_10                           |  debian_10            |  Debian                        |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B0859NK4HC   |
+--------------------------------------+-----------------------+--------------------------------+-------------+-----------------------------------------------------+

참고: eu-west-1을 해당 리전으로 바꿉니다.

필요한 플랫폼의 블루프린트를 필터링합니다. 예를 들어 Linux/Unix 플랫폼 OS의 블루프린트에 대한 다음 명령 필터는 다음과 같습니다.

# aws lightsail get-blueprints --query 'blueprints[?type==`os`&&platform==`LINUX_UNIX`].{name:name,version:version}'--output table
--------------------------------------------
|               GetBlueprints              |
+-----------------+------------------------+
|      name       |        version         |
+-----------------+------------------------+
|  Amazon Linux 2 |  2.0.20200917.0        |
|  Amazon Linux   |  2018.03.0.20200918.0  |
|  Ubuntu         |  20.04 LTS             |
|  Debian         |  10.5                  |
|  openSUSE       |  15.1                  |
|  CentOS         |  7 1901-01             |
+-----------------+------------------------+

특정 번들 및 블루프린트를 사용하여 Lightsail 인스턴스 생성

  1. get-blueprint 명령을 실행합니다. 다음 예제는 WordPress 블루프린트를 가져옵니다.
    # aws lightsail get-blueprints --region eu-west-1 --query 'blueprints[].{blueprintId:blueprintId,name:name,group:group,productUrl:productUrl,platform:platform}' --output table |grep -i wordpress
    |  wordpress                           |  wordpress            |  WordPress                     |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NN8Y43U   |
    |  wordpress_multisite                 |  wordpress_multisite  |  WordPress Multisite           |  LINUX_UNIX |  https://aws.amazon.com/marketplace/pp/B00NN8XE6S   |
    참고: eu-west-1을 해당 리전으로 바꾸고 WordPress 정보를 블루프린트 정보로 바꾸세요.
  2. create-instances 명령을 실행하여 Amazon Lightsail 인스턴스를 생성합니다. 다음 예에서는 WordPress 블루프린트와 micro_2_o 번들을 사용하여 eu-west-1 리전에서 Amazon Lightsail 인스턴스를 생성합니다.
    # aws lightsail create-instances --region eu-west-1 --instance-names MyNewInstance --availability-zone eu-west-1a --blueprint-id wordpress --bundle-id micro_2_0
    {
      "operations": [
        {
          "id": "003757e7-0880-4162-9912-211d4756081e",
          "resourceName": "MyNewInstance",
          "resourceType": "Instance",
          "createdAt": 1602175452.334,
          "location": {
            "availabilityZone": "eu-west-1a",
            "regionName": "eu-west-1"
          },
          "isTerminal": false,
          "operationType": "CreateInstance",
          "status": "Started",
          "statusChangedAt": 1602175452.334
        }
      ]
    }
    참고: instance-names, blueprint-id, bundle-id, region을 사용자의 값으로 바꾸세요. 단일 API 호출을 사용하여 여러 인스턴스를 생성하려면 LightsailInstance1LightsailInstance2와 같이 --instance-names를 사용하여 파라미터를 지정합니다. 다음 예에서는 WordPress 블루프린트와 micro_2_0 번들을 사용하여 eu-west-1 리전에서 Lightsail 인스턴스 2개를 생성합니다.
    # aws lightsail create-instances --region eu-west-1 --instance-names {"TestLightsailInstance1","TestLightsailInstance2"} --availability-zone eu-west-1a --blueprint-id wordpress --bundle-id micro_2_0
    {
      "operations": [
        {
          "id": "8a15b195-9a20-4d79-ad1d-6e85557ae94d",
          "resourceName": "TestLightsailInstance1",
          "resourceType": "Instance",
          "createdAt": 1602175741.602,
          "location": {
            "availabilityZone": "eu-west-1a",
            "regionName": "eu-west-1"
          },
          "isTerminal": false,
          "operationType": "CreateInstance",
          "status": "Started",
          "statusChangedAt": 1602175741.602
        },
        {
          "id": "a006513b-0e25-4802-ab33-671a40bf5a92",
          "resourceName": "TestLightsailInstance2",
          "resourceType": "Instance",
          "createdAt": 1602175741.603,
          "location": {
            "availabilityZone": "eu-west-1a",
            "regionName": "eu-west-1"
          },
          "isTerminal": false,
          "operationType": "CreateInstance",
          "status": "Started",
          "statusChangedAt": 1602175741.603
        }
      ]
    }

리전의 모든 Lightsail 인스턴스 나열

get-instances 명령을 실행하여 특정 리전의 Lightsail 인스턴스를 표시합니다. 다음 예제는 eu-west-1 리전의 Lightsail 인스턴스를 보여줍니다.

# aws lightsail get-instances --region eu-west-1 --query 'instances[].{name:name,createdAt:createdAt,blueprintId:blueprintId,blueprintName:blueprintName,publicIpAddress:publicIpAddress}' --output table
---------------------------------------------------------------------------------------------------------------------
|                                                   GetInstances                                                    |
+-----------------+----------------+-----------------+------------------------------------------+-------------------+
|   blueprintId   | blueprintName  |    createdAt    |                  name                    |  publicIpAddress  |
+-----------------+----------------+-----------------+------------------------------------------+-------------------+
|  wordpress_4_9_8|  WordPress     |  1545700733.77  | WordPress-512MB-Ireland-1  |  63.33.xx.xx |
|  wordpress      |  WordPress     |  1602175741.603 |  TestLightsailInstance2    |  63.33.xx.xx |
|  wordpress      |  WordPress     |  1602175741.602 |  TestLightsailInstance1    |  54.7.xx.xx  |
|  wordpress      |  WordPress     |  1588098501.555 |  WordPress-1               |  3.250.xx.xx |
+-----------------+----------------+-----------------+------------------------------------------+-------------------+

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

고정 IP를 할당하고 생성된 Lightsail 인스턴스에 연결

참고: create-instances 명령은 퍼블릭 IP 주소를 사용하여 Lightsail 인스턴스를 생성합니다. 인스턴스의 고정 IP 주소를 생성하지 않은 경우 인스턴스를 중지하거나 다시 시작할 때마다 Lightsail에서 새 퍼블릭 IP 주소를 할당합니다.

  1. allocate-static-ip 명령을 실행하여 고정된 공용 주소를 할당합니다. 다음 예에서는 eu-west-1 리전에 StaticIpForTestLightsailInstance1이라는 고정 IP를 할당하는 방법을 보여줍니다.
    # aws lightsail allocate-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --region eu-west-1
    {
      "operations": [
        {
          "id": "6471cedc-97f5-42d1-b35f-4f77c5f93242",
          "resourceName": "StaticIpForTestLightsailInstance1",
          "resourceType": "StaticIp",
          "createdAt": 1602180341.746,
          "location": {
            "availabilityZone": "all",
            "regionName": "eu-west-1"
          },
          "isTerminal": true,
          "operationType": "AllocateStaticIp",
          "status": "Succeeded",
          "statusChangedAt": 1602180342.011
        }
      ]
    }
    참고: static-ip-nameregion을 사용자 값으로 바꿉니다.
  2. get-static-ip 명령을 실행하여 할당된 고정 IP 주소의 값을 표시합니다. 다음 예에서는 eu-west-1 리전에 StaticIpForTestLightsailInstance1이라는 고정 IP 52.210.xx.xx를 할당하는 방법을 보여줍니다.
    # aws lightsail get-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --region eu-west-1
    {
      "staticIp": {
        "name": "StaticIpForTestLightsailInstance1",
        "arn": "arn:aws:lightsail:eu-west-1:920893848407:StaticIp/16a97579-c51e-404c-96cc-5946528d12aa",
        "supportCode": "11178xxxxxxx/52.210.xx.xx",
        "createdAt": 1602180341.746,
        "location": {
          "availabilityZone": "all",
          "regionName": "eu-west-1"
        },
        "resourceType": "StaticIp",
        "ipAddress": "52.210.xx.xx",
        "isAttached": false
      }
    }
    참고: static-ip-nameregion을 사용자 값으로 바꿉니다.
  3. attach-static-ip 명령을 실행합니다. 다음 예에서는 eu-west-1 리전의 TestLightsailInstance1이라는 인스턴스에 StaticIpForTestLightsailInstance1이라는 고정 IP 52.210.xx.xx를 할당하는 방법을 보여줍니다.
    # aws lightsail attach-static-ip --static-ip-name StaticIpForTestLightsailInstance1 --instance-name TestLightsailInstance1  --region eu-west-1
    {
      "operations": [
        {
          "id": "d9d2372f-b4b7-4838-99ae-c15f8ffb8332",
          "resourceName": "StaticIpForTestLightsailInstance1",
          "resourceType": "StaticIp",
          "createdAt": 1602180562.026,
          "location": {
            "availabilityZone": "all",
            "regionName": "eu-west-1"
          },
          "isTerminal": true,
          "operationDetails": "TestLightsailInstance1",
          "operationType": "AttachStaticIp",
          "status": "Succeeded",
          "statusChangedAt": 1602180562.026
        },
        {
          "id": "131994d8-bd25-4b47-8d81-851224b168d1",
          "resourceName": "TestLightsailInstance1",
          "resourceType": "Instance",
          "createdAt": 1602180562.026,
          "location": {
            "availabilityZone": "eu-west-1a",
            "regionName": "eu-west-1"
          },
          "isTerminal": true,
          "operationDetails": "StaticIpForTestLightsailInstance1",
          "operationType": "AttachStaticIp",
          "status": "Succeeded",
          "statusChangedAt": 1602180562.026
        }
      ]
    }
    참고: static-ip-name, instance-name, region을 사용자 값으로 바꿉니다.
  4. get-instances 명령을 실행하여 고정 IP 주소가 Lightsail 인스턴스와 올바르게 연결되었는지 확인합니다.
    # aws lightsail get-instances --region eu-west-1 --query 'instances[].{name:name,createdAt:createdAt,blueprintId:blueprintId,blueprintName:blueprintName,publicIpAddress:publicIpAddress,InstanceID:supportCode}' --output table
    ---------------------------------------------------------------------------------------------------------------------------------------------------------
    |                                                                     GetInstances                                                                      |
    +----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+
    |            InstanceID            |   blueprintId    | blueprintName  |    createdAt    |                  name                    |  publicIpAddress  |
    +----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+
    |        11178xxxxxxx/i-09f6xxxx   |  wordpress       |  WordPress     |  1602175741.602 |  TestLightsailInstance1                  |   52.210.xx.xx    |
    +----------------------------------+------------------+----------------+-----------------+------------------------------------------+-------------------+

관련 정보

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

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

Amazon Lightsail의 인스턴스 또는 디스크에 대한 자동 스냅샷을 켜거나 끄기

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