前書き

ブロックストレージを使用すると、ハードドライブの使用と同様の方法で、DigitalOcean Dropletsの追加ストレージを管理できます。 ドロップレットへのブロックストレージの追加は、DigitalOceanの合理化されたGUIまたはグラフィカルユーザーインターフェイスから数回クリックするだけで実行できます。 ただし、これはより大規模で複雑な環境で動作する実用的な方法ではないため、DigitalOceanは大規模に動作するAPIを提供します。 DigitalOceanの公式コマンドラインツールである `+ doctl +`を介してAPIと直接やり取りできます。

このチュートリアルでは、 `+ doctl +`を使用して、ドロップレットからブロックストレージボリュームを作成、一覧表示、アタッチ、デタッチ、および削除する方法を学習します。

前提条件

このチュートリアルを開始する前に、「+ doctl +」とDigitalOceanのブロックストレージに慣れる必要があります。 次の記事が役立ちます。

続行する前に、最新バージョンの + doctl +(この記事の執筆時点では1.7.1)がインストールされ、認証されていることを確認する必要があります。 `+ doctl version `を実行して、 ` doctl +`バージョンを確認します。 また、https://www.digitalocean.com/community/tutorials/how-to-use-ssh-keys-with-digitalocean-droplets [DigitalOceanアカウントに追加されたSSHキー]も必要です。

最後になりましたが、このチュートリアルに従うには、ブロックストレージの使用を許可する領域の1つで作成されたドロップレットが必要です(この記事の執筆時点では、次の領域がブロックストレージを提供しています:* BLR1 FRA1 、 * LON1 *、 NYC1 NYC3 SFO2 SGP1 、および TOR1 *)。

ボリュームの作成

`+ doctl +`でボリュームを作成するには、コマンドに次のパラメーターを提供する必要があります。

  • ボリューム名:この例では、* firstvolume *になります

  • 地域:チュートリアルでは、* NYC3 *にボリュームを作成します

  • サイズ(デフォルトは4TB):この例では、* 100 GiB *に設定します

  • desc *フラグを使用して説明を提供することもできますが、これは完全にオプションです。 完全なコマンドは次のようになります。

doctl compute volume create  --region  --size

次のような出力が表示されます。

OutputID                                      Name           Size      Region    Droplet IDs
           firstvolume    100 GiB    nyc3

この時点で、 `+ doctl +`コマンドと、新しいボリュームを作成するために必要な情報がわかりました。 次に、既存のボリュームの完全なリストを印刷する方法を学習します。

ボリュームのリスト

`+ doctl +`は既存のボリュームをフォーマットされたリストで表示する機能を提供します。 ボリュームを一覧表示する理由はいくつかあります。 最も一般的な2つの方法は、後のコマンドで使用される各ボリュームのIDを表示することと、どのドロップレットにボリュームが割り当てられているかを表示することです。

現在のすべてのブロックストレージボリュームを一覧表示するには、次のコマンドを実行できます。

doctl compute volume list

これは、この例で実行される `+ list +`コマンドの出力です。

OutputID                                      Name              Size        Region    Droplet IDs
            firstvolume       100 GiB     nyc3
            secondvolume      4096 GiB    nyc3
           thirdvolume       100 GiB      nyc3      []

このセクションでは、作成したボリュームのリストを表示するための `+ doctl +`コマンドを学習しました。 次のセクションでは、ボリュームをドロップレットにアタッチする方法について説明します。

ボリュームの接続

アプリケーションデータや設定ファイルなどのアセットを処理するために、ドロップレットに余分なスペースが必要になる場合があります。 ボリュームを追加すると、サービスを中断することなくこのスペースを追加できます。

ボリュームを接続するには、2つの情報が必要です。

  • ボリュームID

  • ドロップレットID

前のセクションでは、 `+ doctl compute volume list +`コマンドを使用して*ボリュームID *を取得する方法を見てきました。

次のコマンドを実行してアカウントのドロップレットに関する情報を表示すると、*ドロップレットID *を取得できます。

doctl compute droplet list

ボリュームIDとドロップレットIDの両方を取得したら、次のコマンドを実行してボリュームをドロップレットにアタッチできます。

doctl compute volume-action attach

これにより、次のような出力が生成されます。

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

このチュートリアルの前半で、ドロップレットがブロックストレージをサポートするインフラストラクチャを使用していることを確認するために、作成時にボリュームをドロップレットにアタッチすることをお勧めしました。 その時点でボリュームをアタッチせずにドロップレットを作成した場合、ボリュームをアタッチしようとすると次のエラーが表示される場合があります。

OutputError: POST https://api.digitalocean.com/v2/volumes//actions: 422 Droplet can't attach volumes due to a region restriction

このエラーが発生した場合、指定されたドロップレットにボリュームを接続することができず、再試行する必要があります。

ボリュームを受け入れるドロップレットにボリュームを正常に接続したら、次のセクションに進んで、余分なスペースが不要になった場合にボリュームを切り離す方法を学習できます。

ボリュームの切り離し

大量のログを必要とする問題をデバッグしているときや、特定の時間制限のあるデータのバックアップを作成しているときなど、ボリュームをドロップレットに一時的にのみ接続する必要がある場合があります。 これらの場合、使用後にボリュームをデタッチできるようにする必要があります。

ボリュームのデタッチはボリュームのアタッチに似ており、同じ情報を使用します。 コマンドと出力はわずかに異なります。

doctl compute volume-action detach
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

このコマンドを実行すると、確認のプロンプトが表示されます。

OutputWarning: Are you sure you want to delete volume (y/N) ?

ボリュームを削除することに満足したら、 `+ y +`を押して確認します。

ボリュームが削除されると、コマンドプロンプトに戻ります。 `+ list +`コマンドを使用して、ボリュームが削除されたことを確認できます。

ボリュームに関する情報を取得する

特定のボリュームに関する情報が必要な場合は、次のコマンドを呼び出して要求できます

doctl compute volume get

このコマンドの出力は、ボリュームの作成時に自動的に実行されるため、おなじみです。

OutputID                                      Name           Size      Region    Droplet IDs
     firstvolume    100 GiB    nyc3

このセクションでは、不要になったボリュームを削除する方法を学習しました。

これで、 `+ doctl +`を使用してDigitalOceanブロックストレージボリュームを操作するために必要なすべての情報が得られました。

結論

このチュートリアルでは、「+ doctl +」を使用して、ドロップレットからボリュームを追加、アタッチ、デタッチ、リスト、および削除する方法を学びました。

これを行う方法がわかったので、スクリプトを作成し、これらのスクリプトをhttps://www.digitalocean.com/community/tutorials/how-to-set-up-などのお気に入りの自動化ツールに追加することを検討してください。 jenkins-for-continuous-development-integration-on-centos-7 [Jenkins]またはhttps://www.digitalocean.com/community/tutorials/how-to-install-and-configure-drone-on-ubuntu-16 -04 [ドローン]。