

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon Lightsail で を使用する AWS CLI
<a name="getstarted-awscli"></a>

このチュートリアルでは、 AWS Command Line Interface (AWS CLI) を使用した一般的な Amazon Lightsail オペレーションについて説明します。キーペア、インスタンス、ストレージ、スナップショットなどの Lightsail リソースを作成および管理する方法を学びます。

**Topics**
+ [前提条件](#getstarted-awscli-prerequisites)
+ [SSH キーペアの生成](#getstarted-awscli-generate-ssh-key-pairs)
+ [インスタンスを作成して管理する](#getstarted-awscli-create-and-manage-instances)
+ [インスタンスへの接続](#getstarted-awscli-connect-to-your-instance)
+ [インスタンスにストレージを追加する](#getstarted-awscli-add-storage-to-your-instance)
+ [スナップショットの作成と使用](#getstarted-awscli-create-and-use-snapshots)
+ [リソースをクリーンアップする](#getstarted-awscli-clean-up-resources)
+ [次の手順](#getstarted-awscli-next-steps)

## 前提条件
<a name="getstarted-awscli-prerequisites"></a>

このチュートリアルを開始する前に、以下の要件を満たしていることを確認してください。

1.  AWS CLI。インストールする必要がある場合は、「[AWS CLI の最新バージョンのインストールまたは更新](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)」に従ってください。を含む [を使用 AWS CloudShell](amazon-lightsail-cloudshell.md)することもできます AWS CLI。

1. 適切な認証情報 AWS CLI を使用して を設定しました。認証情報をまだ設定していない場合は、`aws configure` を実行します。

1. コマンドラインインターフェイスと SSH の概念に関する基本的な知識。

1.  AWS アカウントでLightsailリソースを作成および管理するための[十分なアクセス許可](security_iam_service-with-iam.md)。

まだ設定していない場合は、`AWS_REGION`環境変数を、開始する前に が使用する AWS CLI ように設定したのと同じリージョンに設定します。この環境変数は、Lightsail リソースのアベイラビリティーゾーンを指定するコマンド例で使用されます。

```
$ [ -z "${AWS_REGION}" ] && export AWS_REGION=$(aws configure get region)
```

CLI を使用した Amazon Lightsail リソースの作成と管理を開始しましょう。

## SSH キーペアの生成
<a name="getstarted-awscli-generate-ssh-key-pairs"></a>

SSH キーペアを使用すると、パスワードを使用せずに Lightsail インスタンスに安全に接続できます。このセクションでは、新しいキーペアを作成し、その情報を取得します。

**Example – 新しいキーペアの作成**  
次のコマンドで、「cli-tutorial-keys」という名前の新しい SSH キーペアを作成し、プライベートキーをローカルマシンに保存します。  

```
$ aws lightsail create-key-pair --key-pair-name cli-tutorial-keys \
        --query privateKeyBase64 --output text > ~/.ssh/cli-tutorial-keys.pem
$ chmod 400 ~/.ssh/cli-tutorial-keys.pem
```

このコマンドを実行すると、プライベートキーは適切なアクセス許可で `~/.ssh` ディレクトリに保存されます。`chmod` コマンドによって、SSH のセキュリティ要件であるプライベートキーファイルをユーザーのみが読み取るようになります。

**Example – キーペア情報を取得する**  
キーペアが正常に作成されたことを確認するには、その情報を取得します。  

```
$ aws lightsail get-key-pair --key-pair-name cli-tutorial-keys
{
    "keyPair": {
        "name": "cli-tutorial-keys",
        "arn": "arn:aws:lightsail:us-east-2:123456789012:KeyPair/e00xmpl-6a6a-434a-bff1-87f2bb815e21",
        "supportCode": "123456789012/cli-tutorial-keys",
        "createdAt": 1673596800.000,
        "location": {
            "availabilityZone": "all",
            "regionName": "us-east-2"
        },
        "resourceType": "KeyPair",
        "tags": [],
        "fingerprint": "d0:0d:30:db:5a:24:df:f6:17:f0:e2:15:45:77:3d:bb:d0:6d:fc:81"
    }
}
```

出力には、名前、ARN、作成時刻、リージョン、フィンガープリントなど、キーペアの詳細が表示されます。このフィンガープリントを使用して、インスタンスに接続するときにキーの信頼性を検証できます。

## インスタンスを作成して管理する
<a name="getstarted-awscli-create-and-manage-instances"></a>

Lightsail インスタンスは、アプリケーションまたはウェブサイトを実行する仮想プライベートサーバーです。このセクションでは、WordPress インスタンスを作成し、その詳細を取得します。

**Example – WordPress インスタンスを作成する**  
次のコマンドで、`nano_3_0` バンドル (最小の Lightsail インスタンスサイズ) を使用して新しい WordPress インスタンスを作成し、キーペアに関連付けます。コマンドは、`AWS_REGION` 環境変数を使用して、設定されたリージョンのアベイラビリティーゾーンにインスタンスを作成します。  

```
$ aws lightsail create-instances --instance-names cli-tutorial \
        --availability-zone ${AWS_REGION}a --blueprint-id wordpress \
        --bundle-id nano_3_0 --key-pair-name cli-tutorial-keys
{
    "operations": [
        {
            "id": "f30xmpl-3727-492a-9d42-5c94ad3ef9a8",
            "resourceName": "cli-tutorial",
            "resourceType": "Instance",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "us-east-2a",
                "regionName": "us-east-2"
            },
            "isTerminal": false,
            "operationType": "CreateInstance",
            "status": "Started",
            "statusChangedAt": 1673596800.000
        }
    ]
}
```

レスポンスは、インスタンス作成オペレーションが開始されたことを示します。インスタンスが使用可能になるまで数分かかる場合があります。

**Example – インスタンスの詳細を取得する**  
インスタンスが作成されたら、次のコマンドを使用してその詳細を取得できます。  

```
$ aws lightsail get-instance --instance-name cli-tutorial
{
    "instance": {
        "name": "cli-tutorial",
        "arn": "arn:aws:lightsail:us-east-2:123456789012:Instance/7d3xmpl-ae2e-44d5-bbd9-22f9ec2abe1f",
        "supportCode": "123456789012/i-099cxmpl5dad5923c",
        "createdAt": 1673596800.000,
        "location": {
            "availabilityZone": "us-east-2a",
            "regionName": "us-east-2"
        },
        "resourceType": "Instance",
        "tags": [],
        "blueprintId": "wordpress",
        "blueprintName": "WordPress",
        "bundleId": "nano_3_0",
        "isStaticIp": false,
        "privateIpAddress": "172.26.6.136",
        "publicIpAddress": "192.0.2.1",
        "ipv6Addresses": [
            "2001:db8:85a3:0000:0000:8a2e:0370:7334"
        ],
        "ipAddressType": "dualstack",
        "hardware": {
            "cpuCount": 2,
            "disks": [
                {
                    "createdAt": 1673596800.000,
                    "sizeInGb": 20,
                    "isSystemDisk": true,
                    "iops": 100,
                    "path": "/dev/xvda",
                    "attachedTo": "cli-tutorial",
                    "attachmentState": "attached"
                }
            ],
            "ramSizeInGb": 0.5
        },
        "networking": {
            "monthlyTransfer": {
                "gbPerMonthAllocated": 1024
            },
            "ports": [
                {
                    "fromPort": 80,
                    "toPort": 80,
                    "protocol": "tcp",
                    "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
                    "accessType": "public",
                    "commonName": "",
                    "accessDirection": "inbound",
                    "cidrs": [
                        "0.0.0.0/0"
                    ],
                    "ipv6Cidrs": [
                        "::/0"
                    ],
                    "cidrListAliases": []
                },
                {
                    "fromPort": 22,
                    "toPort": 22,
                    "protocol": "tcp",
                    "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
                    "accessType": "public",
                    "commonName": "",
                    "accessDirection": "inbound",
                    "cidrs": [
                        "0.0.0.0/0"
                    ],
                    "ipv6Cidrs": [
                        "::/0"
                    ],
                    "cidrListAliases": []
                },
                {
                    "fromPort": 443,
                    "toPort": 443,
                    "protocol": "tcp",
                    "accessFrom": "Anywhere (0.0.0.0/0 and ::/0)",
                    "accessType": "public",
                    "commonName": "",
                    "accessDirection": "inbound",
                    "cidrs": [
                        "0.0.0.0/0"
                    ],
                    "ipv6Cidrs": [
                        "::/0"
                    ],
                    "cidrListAliases": []
                }
            ]
        },
        "state": {
            "code": 16,
            "name": "running"
        },
        "username": "bitnami",
        "sshKeyName": "cli-tutorial-keys",
        "metadataOptions": {
            "state": "applied",
            "httpTokens": "optional",
            "httpEndpoint": "enabled",
            "httpPutResponseHopLimit": 1,
            "httpProtocolIpv6": "disabled"
        }
    }
}
```

出力には、IP アドレス、ハードウェア仕様、ネットワーク設定、状態など、インスタンスに関する包括的な情報が表示されます。パブリック IP アドレスとユーザー名を書き留めます。これらはインスタンスに接続するために必要になります。

## インスタンスへの接続
<a name="getstarted-awscli-connect-to-your-instance"></a>

インスタンスを作成したら、前に作成したキーペアで SSH を使用してインスタンスに接続できます。このセクションでは、SSH 接続を確立し、セキュリティ設定を管理する方法について説明します。

**Example – インスタンスへの SSH**  
次のコマンドを使用して SSH 経由でインスタンスに接続し、IP アドレスをインスタンスのパブリック IP に置き換えます。  

```
$ ssh -i ~/.ssh/cli-tutorial-keys.pem bitnami@{{192.0.2.1}}
Linux ip-172-26-6-136 6.1.0-32-cloud-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.129-1 (2025-03-06) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
       ___ _ _                   _
      | _ |_) |_ _ _  __ _ _ __ (_)
      | _ \ |  _| ' \/ _` | '  \| |
      |___/_|\__|_|_|\__,_|_|_|_|_|

  *** Welcome to the Bitnami package for WordPress 6.7.2           ***
  *** Documentation:  https://docs.bitnami.com/aws/apps/wordpress/ ***
  ***                 https://docs.bitnami.com/aws/                ***
  *** Bitnami Forums: https://github.com/bitnami/vms/              ***
  
bitnami@ip-172-26-6-136:~$ df
Filesystem      1K-blocks    Used Available Use% Mounted on
udev               217920       0    217920   0% /dev
tmpfs               45860     480     45380   2% /run
/dev/nvme0n1p1   20403592 3328832  16142256  18% /
tmpfs              229292       0    229292   0% /dev/shm
tmpfs                5120       0      5120   0% /run/lock
/dev/nvme0n1p15    126678   11840    114838  10% /boot/efi
tmpfs               45856       0     45856   0% /run/user/1000
```

接続したら、WordPress のインストールを管理したり、サーバーを設定したり、追加のソフトウェアをインストールしたりできます。上記の例は、`df` コマンドを使用したインスタンスのディスク使用量を示しています。

**Example – パブリックポートを閉じる**  
SSH を使用していない場合は、インスタンスのパブリックポートを閉じることができます。これにより、不正アクセスの試みからインスタンスを保護することができます。  

```
$ aws lightsail close-instance-public-ports --instance-name cli-tutorial \
        --port-info fromPort=22,protocol=TCP,toPort=22
{
    "operation": {
        "id": "6cdxmpl-9f39-4357-a66d-230096140b4f",
        "resourceName": "cli-tutorial",
        "resourceType": "Instance",
        "createdAt": 1673596800.000,
        "location": {
            "availabilityZone": "us-east-2a",
            "regionName": "us-east-2"
        },
        "isTerminal": true,
        "operationDetails": "22/tcp",
        "operationType": "CloseInstancePublicPorts",
        "status": "Succeeded",
        "statusChangedAt": 1673596800.000
    }
}
```

**注記**  
ポート 22 を閉じると、Lightsail コンソールから開始された接続を含むすべての SSH 接続が禁止されます。詳細については、以下のトピックを参照してください。  
[SSH キーペアを管理し、Lightsail インスタンスに接続する](understanding-ssh-in-amazon-lightsail.md)
[Lightsail のファイアウォールを使用してインスタンストラフィックを制御する](understanding-firewall-and-port-mappings-in-amazon-lightsail.md)

レスポンスは、ポート 22 が正常に閉じられたことを確認します。SSH 経由で再接続する必要がある場合は、`open-instance-public-ports` コマンドを使用してポートを再度開くことができます。

## インスタンスにストレージを追加する
<a name="getstarted-awscli-add-storage-to-your-instance"></a>

アプリケーションが大きくなるにつれて、追加のストレージ容量が必要になる場合があります。Lightsail では、追加のディスクを作成してインスタンスにアタッチできます。このセクションでは、ストレージを追加する方法を示します。

**Example – ディスクを作成する**  
次のコマンドで、新しい 32 GB のディスクを作成します。  

```
$ aws lightsail create-disk --disk-name cli-tutorial-disk \
        --availability-zone ${AWS_REGION}a --size-in-gb 32
{
    "operations": [
        {
            "id": "070xmpl-3364-4aa2-bff2-3c589de832fc",
            "resourceName": "cli-tutorial-disk",
            "resourceType": "Disk",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "us-east-2a",
                "regionName": "us-east-2"
            },
            "isTerminal": false,
            "operationType": "CreateDisk",
            "status": "Started",
            "statusChangedAt": 1673596800.000
        }
    ]
}
```

レスポンスは、ディスク作成オペレーションが開始されたことを示します。ディスクが使用可能になるまでに少し時間がかかる場合があります。

**Example – ディスクをインスタンスにアタッチする**  
ディスクが作成されたら、次のコマンドを使用してインスタンスにアタッチできます。  

```
$ aws lightsail attach-disk --disk-name cli-tutorial-disk \
        --disk-path /dev/xvdf --instance-name cli-tutorial
{
    "operations": [
        {
            "id": "d17xmpl-2bdb-4292-ac63-ba5537522cea",
            "resourceName": "cli-tutorial-disk",
            "resourceType": "Disk",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "us-east-2a",
                "regionName": "us-east-2"
            },
            "isTerminal": false,
            "operationDetails": "cli-tutorial",
            "operationType": "AttachDisk",
            "status": "Started",
            "statusChangedAt": 1673596800.000
        },
        {
            "id": "01exmpl-c04e-42d4-aa6b-45ce50562a54",
            "resourceName": "cli-tutorial",
            "resourceType": "Instance",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "us-east-2a",
                "regionName": "us-east-2"
            },
            "isTerminal": false,
            "operationDetails": "cli-tutorial-disk",
            "operationType": "AttachDisk",
            "status": "Started",
            "statusChangedAt": 1673596800.000
        }
    ]
}
```

disk-path パラメータは、ディスクを Linux ファイルシステムにアタッチする場所を指定します。ディスクをアタッチしたら、インスタンス内からディスクをフォーマットしてマウントする必要があります。

**Example – ディスクのアタッチを検証する**  
ディスクの詳細を取得することで、ディスクが正しくアタッチされていることを確認できます。  

```
$ aws lightsail get-disk --disk-name cli-tutorial-disk
{
    "disk": {
        "name": "cli-tutorial-disk",
        "arn": "arn:aws:lightsail:us-east-2:123456789012:Disk/1a9xmpl-8a34-46a4-b87e-19184f0cca9c",
        "supportCode": "123456789012/vol-0dacxmplc1c3108e2",
        "createdAt": 1673596800.000,
        "location": {
            "availabilityZone": "us-east-2a",
            "regionName": "us-east-2"
        },
        "resourceType": "Disk",
        "tags": [],
        "sizeInGb": 32,
        "isSystemDisk": false,
        "iops": 100,
        "path": "/dev/xvdf",
        "state": "in-use",
        "attachedTo": "cli-tutorial",
        "isAttached": true,
        "attachmentState": "attached"
    }
}
```

出力から、ディスクがインスタンスにアタッチされていることが確認できます。「state」フィールドが「in-use」を示し、「isAttached」は true に設定されていることから、アタッチが成功したことがわかります。

## スナップショットの作成と使用
<a name="getstarted-awscli-create-and-use-snapshots"></a>

スナップショットを使用すると、インスタンスをバックアップし、バックアップから新しいインスタンスを作成できます。これは、ディザスタリカバリ、テスト、または重複環境の作成に役立ちます。

**Example – インスタンスのスナップショットを作成する**  
次のコマンドで、インスタンスのスナップショットを作成します。  

```
$ aws lightsail create-instance-snapshot --instance-name cli-tutorial \
         --instance-snapshot-name cli-tutorial-snapshot
{
    "operations": [
        {
            "id": "41bxmpl-7824-4591-bfcc-1b1c341613a4",
            "resourceName": "cli-tutorial-snapshot",
            "resourceType": "InstanceSnapshot",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "all",
                "regionName": "us-east-2"
            },
            "isTerminal": false,
            "operationDetails": "cli-tutorial",
            "operationType": "CreateInstanceSnapshot",
            "status": "Started",
            "statusChangedAt": 1673596800.000
        },
        {
            "id": "725xmpl-158e-46f6-bd49-27b0e6805aa2",
            "resourceName": "cli-tutorial",
            "resourceType": "Instance",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "us-east-2a",
                "regionName": "us-east-2"
            },
            "isTerminal": false,
            "operationDetails": "cli-tutorial-snapshot",
            "operationType": "CreateInstanceSnapshot",
            "status": "Started",
            "statusChangedAt": 1673596800.000
        }
    ]
}
```

レスポンスは、スナップショットのプロセスが開始されたことを示します。スナップショットを取得するインスタンスには 1 つの非同期オペレーションがあり、作成されるスナップショットには 1 つの非同期オペレーションがあります。スナップショットには、インスタンスにアタッチされたすべてのディスクが含まれます。

**Example – スナップショットから新しいインスタンスを作成する**  
スナップショットが完了したら、そのスナップショットを使用して新しいインスタンスを作成できます。  

```
$ aws lightsail create-instances-from-snapshot --availability-zone ${AWS_REGION}b \
        --instance-snapshot-name cli-tutorial-snapshot --instance-name cli-tutorial-bup --bundle-id small_3_0
{
    "operations": [
        {
            "id": "a35xmpl-efa1-4d6c-958e-9d58fd258f5f",
            "resourceName": "cli-tutorial-bup",
            "resourceType": "Instance",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "us-east-2b",
                "regionName": "us-east-2"
            },
            "isTerminal": false,
            "operationType": "CreateInstancesFromSnapshot",
            "status": "Started",
            "statusChangedAt": 1673596800.000
        }
    ]
}
```

このコマンドは、`small_3_0` バンドルサイズを使用して、アベイラビリティーゾーン `us-east-2b` に `cli-tutorial-bup` という名前の新しいインスタンスを作成します。新しいインスタンスには別のバンドルサイズを選択できます。これは、スケールアップまたはスケールダウンに役立ちます。

## リソースをクリーンアップする
<a name="getstarted-awscli-clean-up-resources"></a>

Lightsail レスポンスを終了したら、追加料金が発生しないようにすべてのレスポンスを削除する必要があります。このセクションでは、このチュートリアルで作成したリソースをすべてクリーンアップする方法について説明します。

**Example – インスタンスのスナップショットを削除する**  
不要になったスナップショットを削除するには、次のコマンドを使用します。  

```
$ aws lightsail delete-instance-snapshot --instance-snapshot-name cli-tutorial-snapshot
{
    "operations": [
        {
            "id": "cf8xmpl-0ec7-43ec-9cbc-6dedd9d8eda8",
            "resourceName": "cli-tutorial-snapshot",
            "resourceType": "InstanceSnapshot",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "all",
                "regionName": "us-east-2"
            },
            "isTerminal": true,
            "operationDetails": "",
            "operationType": "DeleteInstanceSnapshot",
            "status": "Succeeded",
            "statusChangedAt": 1673596800.000
        }
    ]
}
```

レスポンスにより、スナップショットの削除オペレーションが成功したことが確認できます。

**Example – インスタンスを削除する**  
インスタンスを削除するには、次のコマンドを使用します。  

```
$ aws lightsail delete-instance --instance-name cli-tutorial
{
    "operations": [
        {
            "id": "f4bxmpl-2df1-4740-90d7-e30adaf7e3a1",
            "resourceName": "cli-tutorial",
            "resourceType": "Instance",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "us-east-2a",
                "regionName": "us-east-2"
            },
            "isTerminal": true,
            "operationDetails": "",
            "operationType": "DeleteInstance",
            "status": "Succeeded",
            "statusChangedAt": 1673596800.000
        }
    ]
}
```

スナップショットから作成されたインスタンスを含め、作成したすべてのインスタンスを削除します。

**Example – ディスクを削除する**  
不要になったディスクを削除するには、次のコマンドを使用します。  

```
$ aws lightsail delete-disk --disk-name cli-tutorial-disk
{
    "operations": [
        {
            "id": "aacxmpl-8626-4edd-8b3b-bf108d6b279c",
            "resourceName": "cli-tutorial-disk",
            "resourceType": "Disk",
            "createdAt": 1673596800.000,
            "location": {
                "availabilityZone": "us-east-2a",
                "regionName": "us-east-2"
            },
            "isTerminal": true,
            "operationDetails": "",
            "operationType": "DeleteDisk",
            "status": "Succeeded",
            "statusChangedAt": 1673596800.000
        }
    ]
}
```

ディスクがインスタンスにアタッチされている場合は、まず `detach-disk` コマンドを使用してディスクをデタッチする必要があります。

**Example – キーペアを削除する**  
最後に、このチュートリアルの冒頭で作成したキーペアを削除します。  

```
$ aws lightsail delete-key-pair --key-pair-name cli-tutorial-keys
{
    "operation": {
        "id": "dbfxmpl-c954-4a45-93a4-ab3e627d2c23",
        "resourceName": "cli-tutorial-keys",
        "resourceType": "KeyPair",
        "createdAt": 1673596800.000,
        "location": {
            "availabilityZone": "all",
            "regionName": "us-east-2"
        },
        "isTerminal": true,
        "operationDetails": "",
        "operationType": "DeleteKeyPair",
        "status": "Succeeded",
        "statusChangedAt": 1673596800.000
    }
}
```

このコマンドは、キーペアのみを削除します AWS。これで、ローカルコピーも削除できます。

```
$ rm ~/.ssh/cli-tutorial-keys.pem
```

## 次の手順
<a name="getstarted-awscli-next-steps"></a>

を使用してLightsailリソースを管理するための基本を学習したので AWS CLI、他のLightsail機能について説明します。

1. **ドメイン** – アプリケーションに[ドメイン名を割り当て](amazon-lightsail-domain-registration.md)ます。

1. **ロードバランサー** – [トラフィックを複数のインスタンスにルーティング](understanding-lightsail-load-balancers.md)して、容量と耐障害性を向上させます。

1. **自動スナップショット** – [アプリケーションデータを自動的にバックアップします](amazon-lightsail-configuring-automatic-snapshots.md)。

1. **メトリクス** – [リソースの状態のモニタリング](amazon-lightsail-resource-health-metrics.md)、通知の取得、アラームの設定を行います。

1. **データベース** – [アプリケーションをリレーショナルデータベースに接続します](amazon-lightsail-databases.md)。

使用可能な AWS CLI コマンドの詳細については、「 の[AWS CLI コマンドリファレンスLightsail](https://docs.aws.amazon.com/cli/latest/reference/lightsail/)」を参照してください。