Doctlを使用してDigitalOceanブロックストレージを操作する方法
###はじめにブロックストレージを使用すると、ハードドライブを使用する場合と同様の方法で、DigitalOceanドロップレットの追加ストレージを管理できます。 ドロップレットへのブロックストレージの追加は、DigitalOceanの合理化されたGUIまたはグラフィカルユーザーインターフェイスから数回クリックするだけで実行できます。 ただし、これは大規模で複雑な環境での実用的な操作方法ではないため、DigitalOceanは大規模に機能するAPIを提供します。 を介してAPIと直接対話できます doctl
、DigitalOceanの公式コマンドラインツール。
このチュートリアルでは、使用方法を学習します doctl
ドロップレットからブロックストレージボリュームを作成、一覧表示、アタッチ、デタッチ、および削除します。
##前提条件このチュートリアルを開始する前に、次のことを理解しておく必要があります。 doctl
およびDigitalOceanのブロックストレージ。 次の記事が役立ちます。
あなたはあなたが最新バージョンを持っていることを確認する必要があります doctl
(この記事の執筆時点では1.7.1です)続行する前にインストールおよび認証されています。 あなたの doctl
実行によるバージョン doctl version
. また、DigitalOceanアカウントにSSHキーを追加する必要があります。
最後になりましたが、このチュートリアルに従うには、ブロックストレージの使用を許可するリージョンの1つにドロップレットを作成する必要があります(この記事の執筆時点では、次のリージョンがブロックストレージを提供しています: BLR1 、 FRA1 、 LON1 、 NYC1 、 NYC3 、 SFO2 、 SGP1 、[X X316X] TOR1 )。
注:上記のリージョンはブロックストレージをサポートしていますが、この機能は現在、記載されているリージョンのすべてのドロップレットで利用できるわけではありません。 作業中のドロップレットがブロックストレージをサポートしていることを確認するには、作成時にボリュームをアタッチする必要があります。
##ボリュームの作成でボリュームを作成するには doctl
、コマンドに次のパラメータを指定する必要があります。
- ボリューム名:この例では、firstvolumeになります。
- region :このチュートリアルでは、NYC3にボリュームを作成します。
- size (デフォルトは4TB):この例では、 100GiBに設定します。
desc フラグを使用して説明を提供することもできますが、これは完全にオプションです。 完全なコマンドは次のようになります。
- doctl compute volume create firstvolume --region nyc3 --size 100GiB
次のような出力が表示されます。
OutputID Name Size Region Droplet IDs
______your_volume_ID1_______ firstvolume 100 GiB nyc3
この時点で、あなたは知っています doctl
コマンドと、新しいボリュームを作成するために必要な情報。 次に、既存のボリュームの完全なリストを印刷する方法を学習します。
##ボリュームの一覧表示 doctl
フォーマットされたリストに既存のボリュームを表示する機能を提供します。 ボリュームを一覧表示する理由はいくつかあります。 最も一般的な2つの方法は、後のコマンドで使用する各ボリュームのIDを表示することと、どのドロップレットにボリュームが割り当てられているかを表示することです。
現在のすべてのブロックストレージボリュームを一覧表示するには、次のコマンドを実行できます。
- doctl compute volume list
これはの出力です list
この例では、コマンドを実行します。
OutputID Name Size Region Droplet IDs
______your_volume_ID1______ firstvolume 100 GiB nyc3
______your_volume_ID1______ secondvolume 4096 GiB nyc3
______your_volume_ID1_______ thirdvolume 100 GiB nyc3 [ID]
このセクションでは、 doctl
作成したボリュームのリストを表示するコマンド。 次のセクションでは、ボリュームをドロップレットにアタッチする方法について説明します。
##ボリュームの添付
ドロップレットは、アプリケーションデータや構成ファイルなどのアセットを処理するために追加のスペースを必要とする場合があります。 ボリュームを追加することは、サービスを中断することなくこのスペースを追加するための優れた方法です。
ボリュームを接続するには、次の2つの情報が必要です。
- ボリュームID
- ドロップレットID
前のセクションでは、ボリュームIDを使用して取得する方法を説明しました。 doctl compute volume list
指図。
次のコマンドを実行してアカウントのドロップレットに関する情報を表示すると、ドロップレットIDを取得できます。
- doctl compute droplet list
ボリュームIDとドロップレットIDの両方を取得したら、次のコマンドを実行して、ボリュームをドロップレットにアタッチできます。
- doctl compute volume-action attach your_volume_ID your_droplet_ID
これにより、次のような出力が生成されます。
OutputID Status Type Started At Completed At Resource ID Resource Type Region
346253669 in-progress attach_volume 2017-12-28 19:53:28 +0000 UTC <nil> 0 backend nyc3
このチュートリアルの前半では、Dropletがブロックストレージをサポートするインフラストラクチャを使用していることを確認するために、作成時にボリュームをDropletにアタッチすることをお勧めしました。 その時点でボリュームをアタッチせずにドロップレットを作成した場合、ボリュームをアタッチしようとすると、次のエラーが表示される場合があります。
OutputError: POST https://api.digitalocean.com/v2/volumes/your_volume_ID/actions: 422 Droplet can't attach volumes due to a region restriction
このエラーが発生した場合、ボリュームを指定されたドロップレットに接続できず、再試行する必要があります。
ボリュームを受け入れるドロップレットにボリュームを正常に接続したら、次のセクションに進んで、余分なスペースが不要になった場合にボリュームを切り離す方法を学習できます。
##ボリュームのデタッチ
大量のログを必要とする問題をデバッグしているときや、特定の期限付きデータのバックアップを作成しているときなど、一時的にのみボリュームをドロップレットにアタッチする必要がある場合があります。 このような場合、ボリュームの使用が終了したら、ボリュームをデタッチできるようにする必要があります。
ボリュームの取り外しは、ボリュームの取り付けに似ており、同じ情報を使用します。 コマンドと出力はわずかに異なります。
- doctl compute volume-action detach your_volume_ID your_droplet_ID
OutputID Status Type Started At Completed At Resource ID Resource Type Region
346254931 in-progress detach_volume 2017-12-28 19:57:51 +0000 UTC <nil> 0 backend nyc3
この時点で、ボリュームをデタッチする方法を知っています。 doctl
. 次のセクションでは、不要になったボリュームを削除する方法を学習します。
##ボリュームの削除特定のブロックストレージボリュームが不要になったら、ボリュームを削除してから、削除してアカウントから削除できます。 ボリュームをデタッチした後、それを削除するには、そのIDが必要になります。
- doctl compute volume delete your_volume_id
このコマンドを実行すると、確認を求めるプロンプトが表示されます。
OutputWarning: Are you sure you want to delete volume (y/N) ?
ボリュームを削除することに満足したら、を押します y
確認するために。
ボリュームが削除されると、コマンドプロンプトに戻ります。 ボリュームが削除されたことを確認するには、 list
指図。
##ボリュームに関する情報の取得特定のボリュームに関する情報が必要な場合は、次のコマンドを呼び出して要求できます。
- doctl compute volume get your_volume_id
このコマンドの出力は、ボリュームの作成時に自動的に実行されるため、おなじみのはずです。
OutputID Name Size Region Droplet IDs
______your_volume_ID1_______ firstvolume 100 GiB nyc3
このセクションでは、不要になったボリュームを削除する方法を学習しました。
これで、正常に使用するために必要なすべての情報が得られました doctl
DigitalOceanブロックストレージボリュームを操作します。
##結論このチュートリアルでは、使用方法を学びました doctl
ドロップレットからボリュームを追加、アタッチ、デタッチ、リスト、および削除します。
これを行う方法がわかったので、スクリプトを作成し、これらのスクリプトをJenkinsやDroneなどのお気に入りの自動化ツールに追加することを検討してください。