Amazon EBS ボリュームからの AWS Cloud9 IDE の移動 - AWS Cloud9

新規のお客様への AWS Cloud9 の提供は終了しました。AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

Amazon EBS ボリュームからの AWS Cloud9 IDE の移動

AWS Cloud9 開発環境 は、ある Amazon EC2; インスタンスから別の Amazon EC2; インスタンスに移動できます。たとえば、次のようなアクションを実行したいかもしれません。

  • 正常なインスタンスと比較して、障害がある、または予期しない方法で実行されている Amazon EC2 インスタンスから環境を移転します。

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

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

プロジェクトファイルを保持しながら、新しい AWS Cloud9 EC2 環境に移行することで、AWS Cloud9 サポートされている AMI から別の AMI にアップグレードできます。別のバージョンの AMI にアップグレードする理由は以下の通りです。

  • 現在の環境の AMI がサポート終了となり、サポート対象ではなくなった。

  • 必要なパッケージが、現在の AMI では古くなっている。

環境の Amazon EC2 インスタンスに関連付けられている Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズ変更もできます。たとえば、次のアクションの一方または両方を実行したいかもしれません。

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

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

環境を移動またはサイズ変更する前に、環境で実行中のプロセスの停止または環境へのスワップファイルの追加を試すことができます。メモリ不足や CPU 使用率が高い場合の対処方法の詳細については、トラブルシューティングを参照してください。

注記

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

最後に、Amazon EBS リソースを暗号化して、インスタンスと添付の EBS ストレージ間で保管中のデータと転送中のデータの両方のセキュリティを調整できます。

環境の移動

移動プロセスをスタートする前に、以下の条件に注意してください。

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

    重要

    環境を別の Amazon EC2 インスタンスタイプに移動する場合、そのインスタンスタイプは現在の AWS リージョン 内にある AWS Cloud9 によるサポートを受ける必要もあります。各リージョンごとに使用できるインスタンスタイプをチェックするには、コンソールを使用して EC2 環境の作成している時は表示されている[[Configure settings] (設定の構成) に移動します。[Instance type] (インスタンスタイプ) セクションにおける選択は、コンソールの右上で選択した AWS リージョン リージョンで決定されます。 

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

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

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

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

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

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

    重要

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

  3. まだサインインしていない場合は、AWS Management Console (https://console.aws.amazon.com) にサインインします。

    AWS アカウント の管理者レベルの認証情報を使用してサインインすることをお勧めします。これが実行できない場合は、AWS アカウント 管理者にお問い合わせください。

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

  5. AWS ナビゲーションバーで、移動したい環境 (例えば米国東部 (オハイオ)) を含むAWS リージョン を選択します。

  6. サービスナビゲーションペインで[インスタンス]を展開して、その後、[インスタンス]を選択します。

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

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

  9. インスタンスの状態]が停止すると、インスタンスを選択したままで、[アクション]、[インスタンスの設定]、[インスタンスタイプの変更]を選択します。

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

    注記

    インスタンスタイプがリストに表示されない場合は、そのインスタンスの設定と互換性がありません。例えば、仮想化のタイプが原因で、インスタンスに互換性がない場合があります。

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

    注記

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

  12. Apply]を選択して、新しい設定を受け入れます。

    注記

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

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

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

AWS Cloud9 EC2 環境を別の Amazon マシンイメージ (AMI) に移動する

このトピックでは、AWS Cloud9 EC2 環境を 1 つの Amazon Linux AMI から別の AWS Cloud9 サポートされている AMI に移行する方法について説明します。

注記

OS バージョンを更新せずに環境を新しいインスタンスに移動する場合は、「環境の移動」を参照してください。

以下のいずれかの手順を使用して、環境間でデータを移行できます。

アーカイブをローカルマシンにダウンロードして環境を移動するには
  1. 異なるベースイメージを使用して、同じアベイラビリティーゾーンに新しい環境を作成します。

    1. EC2 環境を作成する セクションのステップを完了して、新しい環境を作成します。

      注記

      [プラットフォーム] を選択する際は、環境を移行するプラットフォームを選択します。

    2. デフォルトでは、環境は 10 GiB ボリュームで作成されます。アーカイブを新しい環境にアップロードまたは展開するのに十分なスペースがない場合は、環境で使用されている Amazon EBS ボリュームのサイズ変更 手順のステップを実行して Amazon EBS ボリュームサイズを変更します。

  2. IDE AWS Cloud9 で移行する環境を開きます。

  3. IDE AWS Cloud9 がロードされたら、メニューから [ファイル] > [プロジェクトのダウンロード] を選択して、環境プロジェクトディレクトリの内容を含むアーカイブをダウンロードします。

  4. 新しい環境で AWS Cloud9 IDE を開きます。

  5. [ファイル] > [ローカルファイルをアップロード...] を選択してアーカイブをアップロードします。

  6. (オプション) 古い .c9 ディレクトリを .c9.backup にバックアップするには、環境ターミナルで次のコマンドを実行します。

    cp .c9 .c9.backup

    後で設定ファイルを復元する場合は、これらのバックアップファイルが必要になる場合があります。

  7. 次のコマンドを実行して、このパッケージを展開します。

    tar xzvf <old_environment_name>.tar.gz -C ~/
  8. プロジェクトディレクトリからアーカイブを削除するには、次のコマンドを実行します。

    rm <old_environment_name>.tar.gz

    新しい環境が予期したとおりに動作していることを確認します。

  9. 古い環境を削除できるようになりました。

Amazon EBS ボリュームを使用して環境を移動するには

アーカイブをダウンロードできない場合、またはダウンロードしたアーカイブが大きすぎる場合は、Amazon EBS ボリュームを使用して移行できます。また、この方法によって、~/environment ディレクトリの外部にあるファイルをコピーできます。

  1. 既存の環境で開いているすべての AWS Cloud9 IDE タブを閉じます。

  2. 既存のインスタンスを停止するには、次のステップを実行します。

    1. AWS Cloud9 コンソールで、環境を選択して詳細を表示します。

    2. [環境の詳細] ページの [EC2 インスタンス] タブで、[EC2 インスタンスの管理] を選択します。

    3. EC2 コンソールで、インスタンスを選択してインスタンスの詳細に移動します。

    4. [インスタンスの状態] が [停止] に設定されていることを確認します。そうでない場合は、[インスタンス状態] ドロップダウンリストから [インスタンスの停止] を選択します。プロンプトが表示されたら、[停止] を選択します。インスタンスが停止するまで、数分かかる場合があります。

  3. 異なるベースイメージを使用して、同じアベイラビリティーゾーンに新しい環境を作成します。

    1. EC2 環境を作成する セクションのステップを完了して、新しい環境を作成します。

      注記

      [プラットフォーム] を選択する際は、環境を移行するプラットフォームを選択します。

    2. デフォルトでは、環境は 10 GiB ボリュームで作成されます。ソースボリュームから新しい環境へファイルを移動するのに十分な容量がない場合は、環境で使用されている Amazon EBS ボリュームのサイズ変更 手順のステップを完了して Amazon EBS ボリュームサイズを変更します。

  4. ボリュームを既存のインスタンスからデタッチするには、以下の手順を実行します。

    1. [インスタンスの概要] ページで、[ストレージ] タブを選択し、ボリュームを選択します。選択したボリュームのデバイス名は、[ルートデバイスの詳細] セクションの [ルートデバイス名] で指定されているものと同じである必要があります。

    2. ボリュームの詳細ページで、[アクション] > [ボリュームのデタッチ] を選択します。

    3. ボリュームが正常にデタッチされたら、[アクション] > [ボリュームのアタッチ] を選択し、ドロップダウンリストから新しい環境のインスタンスを検索して選択します。選択した Amazon EC2 インスタンスの名前には、 aws-cloud9 というプレフィックスが付いた AWS Cloud9 環境名が含まれている必要があります。

  5. 新しい環境で AWS Cloud9 IDE を開きます。

  6. 環境がロードされたら、新しくアタッチされたボリュームのデバイスを識別するために、ターミナルで次のコマンドを実行します。

    lsblk

    以下の出力例では、ルートデバイス nvme0n1p1 のパーティション nvme0n1 がすでにマウントされているため、nvme1n1p1 パーティションもマウントする必要があります。デバイスのフルパスは /dev/nvme1n1p1 です。

    Admin:~/environment $ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS nvme0n1 259:0 0 10G 0 disk ├─nvme0n1p1 259:2 0 10G 0 part / ├─nvme0n1p127 259:3 0 1M 0 part └─nvme0n1p128 259:4 0 10M 0 part /boot/efi nvme1n1 259:1 0 10G 0 disk ├─nvme1n1p1 259:5 0 10G 0 part └─nvme1n1p128 259:6 0 1M 0 part
    注記

    出力は、ターミナルでこのコマンドを実行する場合は異なります。

  7. 環境ターミナルで以下の手順を実行して、既存のボリュームをマウントします。

    1. ボリュームのパーティションがマウントされる一時ディレクトリを作成するには、次のコマンドを実行します。

      MOUNT_POINT=$(mktemp -d)
    2. lsblk コマンドの出力例に基づいて、マウントするデバイスの次のパスを指定します。

      MOUNT_DEVICE=/dev/nvme1n1p1
      注記

      出力は、ターミナルでこのコマンドを実行する場合は異なります。

    3. 既存のボリュームをマウントするには、次のコマンドを実行します。

      sudo mount $MOUNT_DEVICE $MOUNT_POINT
    4. 既存のボリュームが正常にマウントされているかどうかを確認するには、以下の手順を実行します。

      1. ボリュームが出力に含まれていることを確認するには、次のコマンドを実行します。

        df -h
      2. ボリュームの内容を確認するには、次のコマンドを実行します。

        ls $MOUNT_POINT/home/ec2-user/environment/
  8. (オプション) 古い .c9 ディレクトリを .c9.backup にバックアップするには、環境ターミナルで次のコマンドを実行します。

    cp .c9 .c9.backup

    後で設定ファイルを復元する場合は、これらのバックアップファイルが必要になる場合があります。

  9. 既存のボリュームから古い環境をコピーするには、次のコマンドを実行します。

    cp -R $MOUNT_POINT/home/ec2-user/environment ~
    注記

    必要に応じて、前述のコマンドを使用して環境ディレクトリの外部にあるファイルやディレクトリをコピーすることもできます。

    新しい環境が予期したとおりに動作していることを確認します。

  10. 前のデバイスのマウントを解除するには、次の 2 つのコマンドのいずれかを実行します。

    sudo umount $MOUNT_DEVICE
    sudo umount $MOUNT_POINT
  11. [アクション] ドロップダウンリストから [ボリュームのデタッチ] を選択して、ステップ 3 でアタッチしたボリュームをデタッチします。

  12. 古い環境とそのボリュームを削除できるようになりました。

    注記

    ボリュームは環境の Amazon EC2 インスタンスにアタッチされていないため、手動で削除する必要があります。これを実行するには、[ボリュームの詳細] ページで [削除] を選択します。