環境 の移動または Amazon EBS ボリュームのサイズ変更 - AWS Cloud9

環境 の移動または Amazon EBS ボリュームのサイズ変更

AWS Cloud9 開発環境 は、Amazon EC2 インスタンス間で移動できます。たとえば、次のようなことを実行できます。

  • 破損しているか正常に動作しない Amazon EC2 インスタンスから正常なインスタンスに 環境 を転送する。

  • 古いインスタンスから最新のシステム更新が適用されているインスタンスに 環境 を転送する。

  • 環境 が現在のインスタンスに対して使用率が高すぎるため、インスタンスのコンピューティングリソースを増やす。

  • 環境 が現在のインスタンスに対して使用率が低すぎるため、インスタンスのコンピューティングリソースを減らす。

環境 の Amazon EC2 インスタンスに関連付けられている Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズを変更することもできます。たとえば、次のようなことを実行できます。

  • インスタンスのストレージ領域が不足している場合、ボリュームのサイズを増やす。

  • 使用していない余分なストレージ領域の支払いを避けるために、ボリュームのサイズを減らす。

環境 を移動またはサイズ変更する前に、必要に応じて 環境 で実行中のプロセスを停止したり、環境 にスワップファイルを追加したりできます。詳細については、トラブルシューティングの「IDEIDE による警告:「この 環境 のメモリが不足しています」または「この 環境 の CPU 負荷が高くなっています」」を参照してください。

このトピックでは、Amazon EC2 インスタンス間での 環境 の移動または Amazon EBS ボリュームのサイズ変更についてのみ説明します。環境 を独自のサーバー間で移動したり、独自のサーバーのいずれかのストレージ領域を変更したりする場合は、サーバーのドキュメントを参照してください。

環境 の移動

移動プロセスを開始する前に、以下の点に注意してください。

  • 環境 を同じタイプの Amazon EC2 インスタンスに移動することはできません。移動する場合は、新しいインスタンスとして別の Amazon EC2 インスタンスタイプを選択する必要があります。

  • インスタンスのタイプを変更する場合は、最初に 環境 に関連付けられている Amazon EC2 インスタンスを停止する必要があります。インスタンスが停止している間、お客様もメンバーも、停止したインスタンスに関連付けられている 環境 を使用することはできません。

  • インスタンスは新しいハードウェアに移動されますが、インスタンス ID は変更されません。

  • インスタンスが Amazon VPC で実行されていてパブリック IPv4 アドレスが割り当てられている場合、このアドレスは解放されて、新しいパブリック IPv4 アドレスが割り当てられます。インスタンスは、プライベート IPv4 アドレス、Elastic IP アドレス、および IPv6 アドレスを保持します。

  • インスタンスが停止している間のダウンタイムを予定しておいてください。このプロセスには数分かかることがあります。

環境 を移動するには、以下の操作を行います。

  1. (オプション) 新しいインスタンスのタイプに既存のインスタンスにインストールされていないドライバーが必要な場合は、インスタンスに接続してドライバーをインストールする必要があります。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「インスタンスのサイズ変更の互換性」を参照してください。

  2. 現在 環境 を表示しているすべてのウェブブラウザのタブを閉じます。

    重要

    現在 環境 を表示しているウェブブラウザのタブをすべて閉じないと、AWS Cloud9 が介入してこの手順を完了できない場合があります。たとえば、この手順の実行中にもかかわらず、AWS Cloud9 は 環境 に関連付けられている Amazon EC2 インスタンスを再起動しようとする場合があります。この手順を完了するまで、インスタンスは停止したままであることが必要です。

  3. AWS マネジメントコンソール (https://console.aws.amazon.com) にサインインします (まだサインインしていない場合)。

    AWS アカウントの IAM 管理者ユーザーの認証情報を使用してサインインすることをお勧めします。これを実行できない場合は、AWS アカウントの管理者に確認してください。

  4. Amazon EC2 コンソールを開きます。そのためには、[サービス] リストで [EC2] を選択します。

  5. AWS ナビゲーションバーで、移動する 環境 がある AWS リージョン (米国東部 (オハイオ) など) を選択します。

  6. サービスナビゲーションペインで [インスタンス] を展開して (展開されていない場合)、[インスタンス] を選択します。

  7. インスタンスのリストで、移動する 環境 に関連付けられているインスタンスを選択します。EC2 環境 の場合、インスタンス名は aws-cloud9- で始まり、その後に 環境 の名前が続きます。たとえば、環境 の名前が my-demo-環境 の場合、インスタンス名は aws-cloud9-my-demo-環境 で始まります。

  8. [インスタンスの状態] が [停止] でない場合は、[アクション]、[インスタンスの状態]、[停止] の順に選択します。プロンプトが表示されたら、[停止する] を選択します。インスタンスが停止するまで、数分かかる場合があります。

  9. [インスタンスの状態] が [停止] になったら、インスタンスが選択された状態で [アクション]、[インスタンスの設定]、[インスタンスタイプの変更] の順に選択します。

  10. [インスタンスタイプの変更] ダイアログボックスの [インスタンスタイプ] で、環境 で使用する新しいインスタンスタイプを選択します。

    注記

    使用するインスタンスタイプがリストに表示されない場合は、インスタンスの設定と互換性がありません (その仮想化タイプが原因の場合など)。

  11. (オプション) 選択したインスタンスタイプが EBS 最適化をサポートしている場合は、[EBS 最適化] を選択して EBS 最適化を有効にするか、[EBS 最適化] を選択解除して EBS 最適化を無効にします。

    注記

    選択したインスタンスタイプがデフォルトで EBS 最適化される場合、[EBS 最適化] は選択済みとなり、この選択を解除することはできません。

  12. [適用] を選択して、新しい設定を受入れます。

    注記

    この手順で先ほど [インスタンスタイプ] で別のインスタンスタイプを選択しなかった場合は、[適用] を選択しても何も起こりません。

  13. 環境 を再び開きます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。

上記の手順の詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイド の「インスタンスタイプの変更」を参照してください。

環境 によって使用される Amazon EBS ボリュームのサイズ変更

  1. サイズ変更する Amazon EBS ボリュームの Amazon EC2 インスタンスに関連付けられている 環境 を開きます。

  2. 環境 の AWS Cloud9 IDE で、以下の内容のファイルを作成し、拡張子 .sh を付けて保存します (resize.sh など)。

    注意

    このスクリプトは、Amazon Linux または Ubuntu サーバーを実行する EC2 インスタンスに接続されている Amazon EBS ボリュームに対して機能します。

    このスクリプトは、Nitro ベースのインスタンスで NVMe ブロックデバイスとして公開される Amazon EBS ボリュームのサイズも変更します。Nitro システムベースのインスタンスのリストについては、Linux インスタンス用 Amazon EC2 ユーザーガイド の「Nitro ベースのインスタンス」を参照してください。

    #!/bin/bash
    
    # Specify the desired volume size in GiB as a command-line argument. If not specified, default to 20 GiB.
    SIZE=${1:-20}
    
    # Get the ID of the environment host Amazon EC2 instance.
    INSTANCEID=$(curl http://169.254.169.254/latest/meta-data//instance-id)
    
    # Get the ID of the Amazon EBS volume associated with the instance.
    VOLUMEID=$(aws ec2 describe-instances \
      --instance-id $INSTANCEID \
      --query "Reservations[0].Instances[0].BlockDeviceMappings[0].Ebs.VolumeId" \
      --output text)
    
    # Resize the EBS volume.
    aws ec2 modify-volume --volume-id $VOLUMEID --size $SIZE
    
    # Wait for the resize to finish.
    while [ \
      "$(aws ec2 describe-volumes-modifications \
        --volume-id $VOLUMEID \
        --filters Name=modification-state,Values="optimizing","completed" \
        --query "length(VolumesModifications)"\
        --output text)" != "1" ]; do
    sleep 1
    done
    
    if [ $(readlink -f /dev/xvda) = "/dev/xvda" ]
    then
      # Rewrite the partition table so that the partition takes up all the space that it can.
      sudo growpart /dev/xvda 1
     
      # Expand the size of the file system.
      sudo resize2fs /dev/xvda1
    
    else
      # Rewrite the partition table so that the partition takes up all the space that it can.
      sudo growpart /dev/nvme0n1 1
    
      # Expand the size of the file system.
      sudo resize2fs /dev/nvme0n1p1
    fi
    
  3. IDE のターミナルセッションで、resize.sh ファイルが格納されているディレクトリに移動します。次のコマンドを実行します。ここで「20」を Amazon EBS ボリュームを変更する目的のサイズ (GiB 単位) に置き換えます。

    sh resize.sh 20