Amazon Lightsail で を使用する AWS CLI - Amazon Lightsail

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

Amazon Lightsail で を使用する AWS CLI

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

前提条件

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

  1. AWS CLI。インストールする必要がある場合は、AWS CLI インストールガイドに従ってください。を含む を使用 AWS CloudShellすることもできます AWS CLI。

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

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

  4. AWS アカウントでLightsailリソースを作成および管理するための十分なアクセス許可

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

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

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

SSH キーペアの生成

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

例 – 新しいキーペアを作成する

次のコマンドは、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 のセキュリティ要件です。

例 – キーペア情報を取得する

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

$ 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、作成時刻、リージョン、フィンガープリントなど、キーペアの詳細が表示されます。このフィンガープリントを使用して、インスタンスに接続するときにキーの信頼性を検証できます。

インスタンスの作成と管理

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

例 – WordPress インスタンスを作成する

次のコマンドは、nano_3_0バンドル (最小のインスタンスサイズ) を使用して新しい WordPress Lightsail インスタンスを作成し、キーペアに関連付けます。コマンドは、 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 } ] }

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

例 – インスタンスの詳細を取得する

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

$ 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": "203.0.113.75", "ipv6Addresses": [ "2600:1f14:ab4:3800:ceef:89e2:f57:f25" ], "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 アドレスとユーザー名が必要です。

インスタンスへの接続

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

例 – インスタンスへの SSH

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

$ ssh -i ~/.ssh/cli-tutorial-keys.pem bitnami@203.0.113.75 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 コマンドを使用したインスタンスのディスク使用量を示しています。

例 – パブリックポートを閉じる

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 接続が禁止されます。詳細については、以下のトピックを参照してください。

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

インスタンスにストレージを追加する

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

例 – ディスクを作成する

次のコマンドは、新しい 32GB ディスクを作成します。

$ 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 } ] }

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

例 – ディスクをインスタンスにアタッチする

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

$ 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 ファイルシステムにアタッチする場所を指定します。ディスクをアタッチしたら、インスタンス内からフォーマットしてマウントする必要があります。

例 – ディスクアタッチメントを検証する

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

$ 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 に設定され、添付ファイルが成功したことを示します。

スナップショットの作成と使用

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

例 – インスタンススナップショットを作成する

次のコマンドは、インスタンスのスナップショットを作成します。

$ 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 つの非同期オペレーションがあります。スナップショットには、インスタンスにアタッチされたすべてのディスクが含まれます。

例 – スナップショットから新しいインスタンスを作成する

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

$ 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に という名前の新しいインスタンスを作成します。新しいインスタンスには別のバンドルサイズを選択でき、スケールアップまたはスケールダウンに役立ちます。

リソースをクリーンアップする

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

例 – インスタンススナップショットを削除する

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

$ 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 } ] }

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

例 – インスタンスを削除する

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

$ 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 } ] }

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

例 – ディスクを削除する

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

$ 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 コマンドを使用してディスクをデタッチする必要があります。

例 – キーペアを削除する

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

$ 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

次のステップ

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

  1. ドメインアプリケーションにドメイン名を割り当てます。

  2. ロードバランサートラフィックを複数のインスタンスにルーティングして、容量と耐障害性を向上させます。

  3. 自動スナップショットアプリケーションデータを自動的にバックアップします

  4. メトリクスリソースの状態のモニタリング、通知の取得、アラームの設定を行います。

  5. データベースアプリケーションをリレーショナルデータベースに接続します

使用可能な AWS CLI コマンドの詳細については、「 のAWS CLI コマンドリファレンスLightsail」を参照してください。