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

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

移動することができますAWS Cloud9開発環境を 1 つの Amazon EC2 インスタンスから別の Amazon EC2 インスタンスへと移行 たとえば、次のようなアクションを実行できます。

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

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

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

Amazon EC2 インスタンスに関連付けられている Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズを変更することもできます。たとえば、以下のアクションの 1 つまたは両方の操作を実行できます。

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

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

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

注記

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

Amazon EBS リソースを暗号化して、インスタンスとそれにアタッチされた EBS ストレージ間の保存データと転送中のデータの両方のセキュリティを確保できます。

環境の移動

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

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

    重要

    環境を別の Amazon EC2 インスタンスタイプに移動する場合、そのインスタンスタイプはAWS Cloud9現在のでAWSリージョン。リージョンごとに使用できるインスタンスタイプを確認するには、[] に移動します。設定の構成ページが表示されます。コンソールを使用した EC2 環境の作成。あなたの選択は、インスタンスタイプセクションによって決定されます。AWS本体の右上から選択したリージョン。

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

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

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

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

環境を移動するには

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

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

    重要

    現在環境を表示しているウェブブラウザのタブをすべて閉じない場合、AWS Cloud9は、この手順の実行を妨げる可能性があります。具体的には次のとおりです。AWS Cloud9この手順の実行中に間違ったタイミングで、環境に関連付けられている Amazon EC2 インスタンスを再起動しようとする場合があります。この手順を完了するまで、インスタンスは停止したままであることが必要です。

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

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

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

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

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

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

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

  9. Afterインスタンスの状態停止を選択し、インスタンスが選択されたままの状態で、アクション,インスタンス設定,インスタンスタイプを変更する

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

    注記

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

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

    注記

    選択したインスタンスタイプがデフォルトで EBS 最適化される場合、EBS 最適化が選択されており、クリアできません。

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

    注記

    別のインスタンスタイプを選択しなかった場合インスタンスタイプこの手順の前に、あなたが選択した後に何も起こりません適用

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

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

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

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

  2. 左AWS Cloud9IDE で、以下の内容のファイルを作成し、拡張子.sh(たとえば、resize.sh).

    Note

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

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

    #!/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
    
    #Check if we're on an NVMe filesystem
    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.
      # Check if we are on AL2
      STR=$(cat /etc/os-release)
      SUB="VERSION_ID=\"2\""
      if [[ "$STR" == *"$SUB"* ]]
      then
        sudo xfs_growfs -d /
      else
        sudo resize2fs /dev/xvda1
      fi
    
    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.
      # Check if we're on AL2
      STR=$(cat /etc/os-release)
      SUB="VERSION_ID=\"2\""
      if [[ "$STR" == *"$SUB"* ]]
      then
        sudo xfs_growfs -d /
      else
        sudo resize2fs /dev/nvme0n1p1
      fi
    fi
    
  3. IDE のターミナルセッションから、resize.shファイルを開きます。次に、以下のいずれかのコマンドを実行し、20を、Amazon EBS ボリュームのサイズを変更したいサイズ (GiB) に置き換えます。

    • bash resize.sh 20
    • chmod +x resize.sh ./resize.sh 20

で使用される Amazon EBS ボリュームの暗号化AWS Cloud9

Amazon EBS 暗号化では、次のデータが暗号化されます。

  • ボリュームに保管されているデータ

  • ボリュームとインスタンスの間で移動されるすべてのデータ

  • ボリュームから作成されたすべてのスナップショット

  • それらのスナップショットから作成されたすべてのボリューム

Amazon EBS ボリュームには、2 つの暗号化オプションがあります。これらの暗号化オプションはAWS Cloud9EC2 開発環境:

  • デフォルトでの暗号化— 以下の操作を実行できます。AWSアカウントを使用して、作成した新しい EBS ボリュームとスナップショットコピーの暗号化を適用します。暗号化はデフォルトで有効になっており、AWSリージョンに割り当てられるため、リージョン内の個々のボリュームまたはスナップショットに対して有効にすることはできません。さらに、Amazon EBS はインスタンスの起動時に作成されるボリュームを暗号化するため、EC2 環境を作成する前にこの設定を有効にする必要があります。詳細については、「」を参照してください。デフォルトでの暗号化()Linux インスタンス用 Amazon EC2 ユーザーガイド

  • EC2 環境で使用される既存の Amazon EBS ボリュームの暗号化— EC2 インスタンス用に作成済みの特定の Amazon EBS ボリュームを暗号化できます。このオプションには、AWS Key Management Service(AWS KMS) を使用して、暗号化されたボリュームへのアクセスを管理します。関連する手順については、「」を参照してください。によって使用される既存の Amazon EBS ボリュームを暗号化するAWS Cloud9

重要

あなたのAWS Cloud9IDE は、デフォルトで暗号化された Amazon EBS ボリュームを使用します。AWS Identity and Access ManagementサービスにリンクされたロールAWS Cloud9へのアクセスが必要です。AWS Key Management Service(AWS KMS) のカスタマーマスターキー (CMK)。アクセスが提供されない場合、AWS Cloud9IDE の起動に失敗し、デバッグが困難な場合があります。

アクセスを提供するには、サービスにリンクされたロールを追加します。AWS Cloud9,AWSServiceRoleForAWSCloud9を Amazon EBS ボリュームで使用する CMK に追加します。このタスクの詳細については、「」を参照してください。を作成するAWS Cloud9デフォルトの暗号化で Amazon EBS ボリュームを使用する IDEAWS規範的ガイダンスパターン

によって使用される既存の Amazon EBS ボリュームを暗号化するAWS Cloud9

既存の Amazon EBS ボリュームを暗号化するには、AWS KMSカスタマーマスターキー (CMK) を作成します。置き換えるボリュームのスナップショットを作成したら、CMK を使用してスナップショットのコピーを暗号化します。

次に、そのスナップショットを使用して暗号化されたボリュームを作成します。次に、暗号化されていないボリュームを EC2 インスタンスからデタッチし、暗号化されたボリュームをアタッチすることで、置き換えます。

最後に、カスタマー管理 CMK のキーポリシーを更新して、AWS Cloud9サービスロール。

注記

以下の手順では、カスタマー管理の CMK を使用してボリュームを暗号化する方法について説明します。また、AWS管理 CMKのためにAWSサービス(Amazon EBS のエイリアスはaws/ebs). このデフォルトの暗号化オプションを選択した場合は、カスタマー管理型 CMK を作成する手順 1 を省略します。また、キーポリシーを更新する手順 8 をスキップします (AWS管理 CMK)。

既存の Amazon EBS ボリュームを暗号化するには

  1. 左AWS KMSコンソールで、対称 CMK を作成します。詳細については、「」を参照してください。対称 CMK の作成()AWS Key Management Service開発者ガイド

  2. Amazon EC2 コンソールで、環境によって使用される Amazon EBS-backed インスタンスを停止します。以下の操作を実行できます。コンソールまたはコマンドラインを使用してインスタンスを停止する

  3. Amazon EC2 コンソールのナビゲーションペインで、[スナップショット 既存のボリュームのスナップショットを作成する暗号化します。

  4. Amazon EC2 コンソールのナビゲーションペインで、[スナップショット をクリックしてスナップショットをコピーする。左スナップショットのコピー] ダイアログボックスで、以下の操作を実行して、暗号化を有効にします。

    • 選択このスナップショットの暗号化

    • を使用する場合マスターキーで、先ほど作成した CMK を選択します。(使用している OSAWS管理対象 CMK の場合は、(デフォルト)aws/ebs設定)

  5. 暗号化されたスナップショットから新しいボリュームを作成する

    注記

    暗号化されたスナップショットから作成された新しい Amazon EBS ボリュームは、自動的に暗号化されます。

  6. 古い Amazon EBS ボリュームをデタッチします。Amazon EC2 インスタンスから。

  7. 新しい暗号化ボリュームをアタッチするAmazon EC2 インスタンスに接続します。

  8. CMK のキーポリシーの更新の使用AWS Management ConsoleのデフォルトビューAWS Management Consoleのポリシービュー、またはAWS KMSAPI。次のキーポリシーステートメントを追加して、AWS Cloud9サービス、AWSServiceRoleForAWSCloud9をクリックして CMK にアクセスします。

    注記

    使用している OSAWS管理 CMK を使用する場合は、この手順をスキップしてください。

    { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": { "AWS": "arn:{Partition}:iam::{AccountId}:role/aws-service-role/cloud9.amazonaws.com/AWSServiceRoleForAWSCloud9" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": { "AWS": "arn:{Partition}:iam::{AccountId}:role/aws-service-role/cloud9.amazonaws.com/AWSServiceRoleForAWSCloud9" }, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": "true" } } }
  9. Amazon EC2 インスタンスを再起動します。