前書き

DigitalOceanからDropletがクラウドの最新バージョンにすぐにアップグレードされるという電子メール通知を受け取った場合、次の2つの選択肢があります。

  1. 何もせず、スケジュールされた時間に自動アップグレードが行われるようにします

  2. スケジュールされた自動アップグレードの前であればいつでも、手動でアップグレードイベントを開始する

アップグレードイベントを手動で開始する2番目のオプションの主な利点は、アップグレードプロセスをいつ実行するかを制御できることです。 アップグレード中はDropletをオフラインにする必要があるため、これは、希望するメンテナンスウィンドウがある場合に使用する方法です。 何をするにしても、ドロップレットのIPアドレスは保持されます。

このチュートリアルでは、アップグレードする前に考慮すべきいくつかの考慮事項について説明し、DigitalOceanコントロールパネルとAPIを介してDropletアップグレードイベントを手動で開始する方法を示します。

クラウドのアップグレード中に何が起こりますか?

基本的に、アップグレードプロセスには、Dropletをある物理サーバーから、DigitalOceanのハイパーバイザーソフトウェアの最新バージョンを実行している別のサーバーに移動することが含まれます。 アップグレードプロセスでは、完了するまでDropletの電源をオフにする必要があります。

クラウドの最新バージョンにアップグレードすると、Dropletが存在するデータセンターの最新機能を利用可能になり、Dropletで利用できるようになります。 機能の例には、IPv6、プライベートネットワーキング、およびメタデータが含まれます。

推定ダウンタイム

ドロップレットのアップグレードプロセスの推定最大ダウンタイムウィンドウは、次のとおりです。ストレージ容量のGBあたり最大1分。 たとえば、Dropletのストレージ容量が20GBの場合、アップグレード全体が開始されてから20分未満の時間がかかります。

アップグレードする必要がある理由とプロセスにかかる時間を把握できたので、DigitalOceanコントロールパネルとAPIを使用して手動でアップグレードを開始する方法について説明します。

パワーオフドロップレット

アップグレードプロセスを開始する前に、コマンドラインからDropletを「+ poweroff +」することをお勧めします。 この手順により、アップグレード前にDropletが正常にシャットダウンされます。

「+ sudo +」アクセス権を持つユーザーとしてドロップレットにSSHで接続します(独自のユーザー名とIPアドレスに置き換えます):

ssh @droplet_IP_address

コマンドラインにアクセスしたら、poweroffコマンドを発行します。

sudo poweroff

ドロップレットから切断されます。 これで、次の2つのセクションのいずれかの手順に従うことにより、コントロールパネルまたはAPIを介してアップグレードプロセスを開始する準備が整いました。最も使いやすい方を選択してください。

DigitalOceanコントロールパネルからのアップグレード

*注意:*このアップグレード方法は、アップグレードのためにドロップレットが「スケジュール」された場合にのみ使用できます。 いずれかのドロップレットのアップグレードがスケジュールされている場合、ドロップレットID、名前、移行の予定日時など、関連するすべての詳細が記載された電子メール通知を受け取ります。

Webブラウザーで、https://cloud.digitalocean.com/のDropletsページに移動します(プロンプトが表示されたらログインします)。

アップグレードメールに記載されているドロップレットの名前を見つけてクリックします。

[設定]ボタンをクリックします。 ここに、* Upgradeタブ*が表示されます。 クリックして。

image:https://assets.digitalocean.com/articles/droplet/upgrade/upgrade.png [設定とアップグレード]

  • Upgradeボタン*をクリックし、確認プロンプトを受け入れて、Dropletアップグレードプロセスを手動で開始します。 Dropletはアップグレードを開始し、プロセスが完了すると自動的に起動します!

アップグレードステータスの確認

アップグレードの処理中、ドロップレットの情報ページには、「あなたのイベントは処理中です…​」というメッセージとドロップレットのイベント履歴が表示されます。 アップグレードイベントは「Upgrade」と表示されます。

image:https://assets.digitalocean.com/articles/droplet/upgrade/event_processing.png [イベント処理]

アップグレードプロセスが完了すると、ドロップレット情報ページが通常に戻り、_Droplet History_セクションに完了した「アップグレード」イベントが表示されます。

APIを介してアップグレード可能なドロップレットを表示する

アップグレードがスケジュールされているすべてのドロップレットを含む、現在アップグレード可能なドロップレットのリストを表示するには、 + Droplet_upgrades + APIエンドポイントを使用できます。 このエンドポイントの使用法は、https://developers.digitalocean.com/#list-Droplet-upgrades [ドロップレットアップグレードのリスト]に記載されています。

たとえば、この `+ curl +`コマンドを実行して、アップグレードに適格なドロップレットのリストを要求できます。

curl -X GET -H 'Content-Type: application/json' -H 'Authorization: Bearer ' "https://api.digitalocean.com/v2/droplet_upgrades"

これにより、移行がスケジュールされているすべてのドロップレットに関する、ドロップレットIDやスケジュールされた移行時間などの情報を含むJSON配列が返されます。 この配列が空の場合、Dropletを移行する必要はありません。

API経由のアップグレード

DigitalOcean APIを介してアップグレードプロセスを開始する場合は、移行するDropletの「+ id +」を知っている必要があります。 アップグレード通知メールを受け取った場合、ドロップレットIDが含まれます。それ以外の場合、前のセクションの指示に従って、APIを使用してアップグレード可能なドロップレットのIDを検索できます。

ドロップレットIDを取得したら、それを* Dropletアクション* APIエンドポイントで使用し、_type_属性を「migrate_Droplet」に設定する必要があります。 このAPIの使用方法については、https://developers.digitalocean.com/#upgrade-a-Droplet [Uplet a Droplet]で詳しく説明しています。

たとえば、 `+ curl +`を使用してAPIリクエストを作成する場合、次のコマンドを使用できます(APIトークンとドロップレットIDを置き換えます)。

curl -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer ' -d '{"type":"migrate_droplet"}' "https://api.digitalocean.com/v2/droplets//actions"

これにより、指定されたドロップレットのアップグレードプロセスが開始されます。

結論

アップグレードプロセスを開始する前にドロップレットの電源がオフになっていた場合、アップグレードが完了するとドロップレットの電源はオフのままになります。必ずオンにしてください。 すべてのサービスが期待どおりに実行されていることを確認してください。

問題がある場合は、以下のコメントに残してください!