

 AWS Cloud9 は新規顧客には利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# Amazon EBS AWS Cloud9 ボリュームからの IDE の移動
<a name="move-environment"></a>

 AWS Cloud9 開発環境は、ある Amazon EC2 インスタンスから別のインスタンスに移動できます。たとえば、次のようなアクションを実行したいかもしれません。
+ 正常なインスタンスと比較して、障害がある、または予期しない方法で実行されている Amazon EC2 インスタンスから環境を移転します。
+ 古いインスタンスから最新のシステム更新が適用されているインスタンスに 環境を移転します。
+ 環境が現在のインスタンスに対して使用率が高すぎるまたは低すぎるため、インスタンスのコンピューティングリソースを増やします。

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

環境の Amazon EC2 インスタンスに関連付けられている Amazon Elastic Block Store (Amazon EBS) ボリュームのサイズ変更もできます。たとえば、次のアクションの一方または両方を実行したいかもしれません。
+ インスタンスのストレージ領域が不足している場合、ボリュームのサイズを増やします。
+ 使用していない余分なストレージ領域の支払いを避けるために、ボリュームのサイズを減らします。

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

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

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

## 環境の移動
<a name="move-environment-move"></a>

移動プロセスをスタートする前に、以下の条件に注意してください。
+ 環境を同じタイプの Amazon EC2 インスタンスに移動することはできません。移動する場合は、新しいインスタンスとして別の Amazon EC2 インスタンスタイプを選択する必要があります。
**重要**  
環境を別の Amazon EC2 インスタンスタイプに移動する場合、そのインスタンスタイプは現在の AWS Cloud9 で でもサポートされる必要があります AWS リージョン。各リージョンごとに使用できるインスタンスタイプをチェックするには、[コンソールを使用して EC2 環境の作成](create-environment-main.md#create-environment-console)している時は表示されている［**[Configure settings]** (設定の構成) に移動します。**インスタンスタイプ**セクションの選択は、コンソールの右上で AWS リージョン 選択されている によって決まります。
+ インスタンスタイプを変更する前に、環境に関連付けられている Amazon EC2 インスタンスを停止する必要があります。インスタンスが停止している間、お客様およびメンバーは、停止したインスタンスに関連付けられた環境を使用することはできません。
+ AWS はインスタンスを新しいハードウェアに移動しますが、インスタンスの ID は変更されません。
+ インスタンスが Amazon VPC で実行されており、パブリック IPv4 アドレスがある場合、 はアドレスを AWS 解放し、インスタンスに新しいパブリック IPv4 アドレスを付与します。インスタンスは、プライベート IPv4 アドレスおよび Elastic IP アドレスまたは IPv6 アドレスを保持します。
+ インスタンスが停止している間のダウンタイムを計画しておいてください。このプロセスには数分かかることがあります。

**環境を移動するには**

1. (オプション) 新しいインスタンスタイプに既存のインスタンス上でインストールされていないドライバーが必要な場合は、インスタンスに接続して、そのドライバーをインストールします。詳細については、[Amazon EC2 ユーザーガイド](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html#resize-limitations)の「インスタンスのサイズ変更の互換性」を参照してください。

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

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

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

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

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

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

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

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

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

1. ［**インスタンスタイプの変更**］ダイアログボックスで、使用する環境に新しい［**インスタンスタイプ**］を選択します。
**注記**  
インスタンスタイプがリストに表示されない場合は、そのインスタンスの設定と互換性がありません。例えば、仮想化のタイプが原因で、インスタンスに互換性がない場合があります。

1. (オプション) 選択したインスタンスタイプが EBS 最適化をサポートしている場合は、［**EBS 最適化**］を選択して EBS 最適化を有効にするか、［**EBS 最適化**］を選択解除して EBS 最適化を無効にします。
**注記**  
選択したインスタンスタイプがデフォルトで EBS 最適化される場合、［**EBS 最適化**］が選択され、この選択を解除することはできません。

1. ［**Apply**］を選択して、新しい設定を受け入れます。
**注記**  
この手順で先ほど［**インスタンスタイプ**］に別のインスタンスタイプを選択しなかった場合は、［**適用**］を選択しても何も起こりません。

1. 環境を再び開きます。詳細については、「[で環境を開く AWS Cloud9](open-environment.md)」を参照してください。

前の手順の詳細については、*Amazon EC2 ユーザーガイド*の「[インスタンスタイプを変更する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html)」を参照してください。

## AWS Cloud9 EC2 環境を別の Amazon マシンイメージ (AMI) に移動する
<a name="moving-ec2-environ-to-ami"></a>

 

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

**注記**  
OS バージョンを更新せずに環境を新しいインスタンスに移動する場合は、「[環境の移動](#move-environment-move)」を参照してください。

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

**アーカイブをローカルマシンにダウンロードして環境を移動するには**

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

   1. [EC2 環境を作成する](create-environment-main.md) セクションのステップを完了して、新しい環境を作成します。
**注記**  
[**プラットフォーム**] を選択する際は、環境を移行するプラットフォームを選択します。

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

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

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

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

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

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

   ```
   cp .c9 .c9.backup
   ```

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

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

   ```
   tar xzvf <old_environment_name>.tar.gz -C ~/
   ```

1. プロジェクトディレクトリからアーカイブを削除するには、次のコマンドを実行します。

   ```
   rm <old_environment_name>.tar.gz
   ```

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

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

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

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

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

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

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

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

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

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

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

   1. [EC2 環境を作成する](create-environment-main.md) セクションのステップを完了して、新しい環境を作成します。
**注記**  
[**プラットフォーム**] を選択する際は、環境を移行するプラットフォームを選択します。

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

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

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

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

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

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

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

   ```
   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
   ```
**注記**  
出力は、ターミナルでこのコマンドを実行する場合は異なります。

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

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

      ```
      MOUNT_POINT=$(mktemp -d)
      ```

   1. `lsblk` コマンドの出力例に基づいて、マウントするデバイスの次のパスを指定します。

      ```
      MOUNT_DEVICE=/dev/nvme1n1p1
      ```
**注記**  
出力は、ターミナルでこのコマンドを実行する場合は異なります。

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

      ```
      sudo mount $MOUNT_DEVICE $MOUNT_POINT
      ```

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

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

         ```
         df -h
         ```

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

         ```
         ls $MOUNT_POINT/home/ec2-user/environment/
         ```

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

   ```
   cp .c9 .c9.backup
   ```

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

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

   ```
   cp -R $MOUNT_POINT/home/ec2-user/environment ~
   ```
**注記**  
必要に応じて、前述のコマンドを使用して環境ディレクトリの外部にあるファイルやディレクトリをコピーすることもできます。

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

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

   ```
   sudo umount $MOUNT_DEVICE
   ```

   ```
   sudo umount $MOUNT_POINT
   ```

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

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

# 環境で使用されている Amazon EBS ボリュームのサイズ変更
<a name="move-environment-resize"></a>

このステップでは、Amazon EBS ボリュームのサイズを変更する方法を説明します。

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

1. 環境の AWS Cloud9 IDE で、次の内容のファイルを作成し、そのファイルを 拡張子 `.sh` (例: ) で保存します`resize.sh`。
**メモ**  
このスクリプトは、AL2023、Amazon Linux 2、Amazon Linux、または Ubuntu サーバーを実行する EC2 インスタンスに接続した Amazon EBS ボリュームに対して有効であり、IMDSv2 を使用するように設定されています。  
このスクリプトは、Nitro ベースのインスタンスで NVMe ブロックデバイスとして公開される Amazon EBS ボリュームのサイズも変更します。Nitro システムをベースにしたインスタンスリストについては、「*Amazon EC2 ユーザーガイド*」の「[Nitro ベースのインスタンス](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-types.html#ec2-nitro-instances)」を参照してください。

   ```
   #!/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.
   TOKEN=$(curl -s -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 60")
   INSTANCEID=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/instance-id 2> /dev/null)
   REGION=$(curl -s -H "X-aws-ec2-metadata-token: $TOKEN" -v http://169.254.169.254/latest/meta-data/placement/region 2> /dev/null)
   
   # 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 \
     --region $REGION)
   
   # 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 [[ -e "/dev/xvda" && $(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're on AL2 or AL2023
     STR=$(cat /etc/os-release)
     SUBAL2="VERSION_ID=\"2\""
     SUBAL2023="VERSION_ID=\"2023\""
     if [[ "$STR" == *"$SUBAL2"* || "$STR" == *"$SUBAL2023"* ]]
     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 or AL2023
     STR=$(cat /etc/os-release)
     SUBAL2="VERSION_ID=\"2\""
     SUBAL2023="VERSION_ID=\"2023\""
     if [[ "$STR" == *"$SUBAL2"* || "$STR" == *"$SUBAL2023"* ]]
     then
       sudo xfs_growfs -d /
     else
       sudo resize2fs /dev/nvme0n1p1
     fi
   fi
   ```

1. IDE のターミナルセッションから、`resize.sh` ファイルが格納されているディレクトリに移動します。それから次のコマンドを実行し、`20` を Amazon EBS ボリュームのリサイズとして希望する Gib 単位のサイズに置き換えます。
   + 

     ```
     bash resize.sh 20
     ```
   + 

     ```
     chmod +x resize.sh
     ./resize.sh 20
     ```

# が AWS Cloud9 使用する Amazon EBS ボリュームを暗号化する
<a name="encrypting-volumes"></a>

このトピックでは、 AWS Cloud9 開発環境で使用される EC2 インスタンスの Amazon EBS ボリュームを暗号化する方法について説明します。

Amazon EBS 暗号化では、次のデータが暗号化されます。
+ ボリューム内の保管中のデータ
+ ボリュームとインスタンスの間で移動されるすべてのデータ
+ ボリュームから作成されたすべてのスナップショット
+ それらのスナップショットから作成されたすべてのボリューム

Amazon EBS ボリュームには、 AWS Cloud9 EC2 開発環境が使用する2 つの暗号化オプションがあります。
+ **デフォルトでの暗号化** – 作成する新しい EBS ボリュームとスナップショットコピーの暗号化を強制するように AWS アカウント を設定できます。暗号化は、デフォルトでは、 AWS リージョンのレベルで有効になっています。そのため、そのリージョン内の個々のボリュームまたはスナップショットに対して有効にすることはできません。さらに、Amazon EBS は、インスタンスの起動時に作成されるボリュームを暗号化します。そのため、EC2 環境を作成する前にこの設定を有効にする必要があります。詳細については、「Amazon EC2 ユーザーガイド」の「[デフォルトで暗号化](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-encryption.html#encryption-by-default)」を参照してください。
+ **EC2 環境で使用される既存の Amazon EBS ボリュームの暗号化** — EC2 インスタンス用に作成済みの特定の Amazon EBS ボリュームを暗号化できます。このオプションでは、 AWS Key Management Service (AWS KMS) を使用して暗号化されたボリュームへのアクセスを管理します。関連する手順については、「[が AWS Cloud9 使用する既存の Amazon EBS ボリュームを暗号化する](#encrypting-existing-volume)」を参照してください。

**重要**  
 AWS Cloud9 IDE がデフォルトで暗号化された Amazon EBS ボリュームを使用している場合、 AWS Identity and Access Management のサービスにリンクされたロールは、これらの EBS ボリューム AWS KMS key の にアクセス AWS Cloud9 する必要があります。アクセスが提供されていない場合、IDE AWS Cloud9 の起動に失敗し、デバッグが困難になる可能性があります。  
アクセスを提供するには、Amazon EBS AWS Cloud9ボリュームで使用される KMS キーに`AWSServiceRoleForAWSCloud9`、 のサービスにリンクされたロールを追加します。このタスクの詳細については、「規範ガイダンスパターン」の[「デフォルトの暗号化で Amazon EBS ボリュームを使用する AWS Cloud9 IDE を作成する](https://docs.aws.amazon.com/prescriptive-guidance/latest/patterns/create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption.html)」を参照してください。 *AWS *

## が AWS Cloud9 使用する既存の Amazon EBS ボリュームを暗号化する
<a name="encrypting-existing-volume"></a>

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

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

kai最後に、カスタマーマネージドキーのキーポリシーを更新して、 AWS Cloud9 サービスロールのアクセスを有効にする必要があります。

**注記**  
次の手順の中心は、カスタマーマネージドキーを使用してボリュームを暗号化する方法です。アカウントの AWS のサービス に AWS マネージドキー を使用することもできます。Amazon EBS のエイリアスは `aws/ebs` です。このデフォルトの暗号化オプションを選択した場合は、カスタマーマネージドキーを作成するステップ 1 をスキップします。また、キーポリシーを更新するステップ 8 をスキップします。これは、 のキーポリシーを変更できないためです AWS マネージドキー。<a name="creating-encrypted-volume"></a>

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

1.  AWS KMS コンソールで、対称 KMS キーを作成します。詳細については、*AWS Key Management Service デベロッパーガイド*の「[対称 KMS キーの作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」を参照してください。

1. Amazon EC2 コンソールで、環境で使用されている Amazon EBS-backed インスタンスを停止します。[コンソールまたはコマンドラインを使用して、ドインスタンスを停止タグを追加できます](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)。

1. Amazon EC2 コンソールのナビゲーションペインで、**[Snapshots]** (スナップショット) を選択して、暗号化したい[既存のボリュームのスナップショットを作成します](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html#ebs-create-snapshot)。

1. Amazon EC2 コンソールのナビゲーションペインで、［**スナップショット** ］を選択して、[スナップショットをコピーします](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-copy-snapshot.html)。**スナップショットのコピー**ダイアログボックスで、暗号化を有効にするには、以下の操作を実行します。
   + **このスナップショットを暗号化する**を選択します。
   + **[Master Key]** (マスターキー) には、作成済みの KMS キーを選択します。( を使用している場合は AWS マネージドキー、 **(デフォルト) aws/ebs** 設定のままにします。)

1. [暗号化されたスナップショット から新しいボリュームを作成します](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-volume.html#ebs-create-volume-from-snapshot)。
**注記**  
暗号化されたスナップショットから作成された新しい Amazon EBS ボリュームは、自動的に暗号化されます。

1. Amazon EC2インスタンスから[古い Amazon EBS ボリュームをデタッチ](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-detaching-volume.html)します。

1. [新しい暗号化ボリュームを ](https://docs.aws.amazon.com/ebs/latest/userguide/ebs-attaching-volume.html)Amazon EC2 インスタンスに添付します。

1. [AWS マネジメントコンソール デフォルトビュー、ポリシービュー、または AWS KMS API を使用して、KMS キーの AWS マネジメントコンソール キーポリシー](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to)を更新します。次のキーポリシーステートメントを追加して、 AWS Cloud9 サービス が KMS キー`AWSServiceRoleForAWSCloud9`にアクセスできるようにします。
**注記**  
を使用している場合は AWS マネージドキー、このステップをスキップします。

   ```
   {
       "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"
           }
       }
   }
   ```

1. Amazon EC2 インスタンスを再起動します。Amazon EC2 インスタンスの再起動についての詳細は、「[インスタンスの停止と起動](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html)」を参照してください。