환경 이동 및 Amazon EBS 볼륨 크기 조정 또는 암호화 - AWS Cloud9

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

환경 이동 및 Amazon EBS 볼륨 크기 조정 또는 암호화

Amazon EC2 인스턴스 간에 AWS Cloud9 개발 환경을 이동할 수 있습니다. 예를 들어, 다음 작업을 수행할 수 있습니다.

  • 정상적인 인스턴스와 비교하여 장애가 발생하거나 예기치 않은 방식으로 작동하는 Amazon EC2 인스턴스에서 환경을 이전합니다.

  • 기존 인스턴스에서 최신 시스템 업데이트가 설치된 인스턴스로 환경을 이전합니다.

  • 현재 인스턴스에서 환경이 과도하게 사용되거나 잘 사용되지 않으므로 인스턴스의 컴퓨팅 리소스를 늘리거나 줄입니다.

프로젝트 파일은 유지한 채 새 AWS Cloud9 EC2 환경으로 마이그레이션하여 AWS Cloud9 지원되는 AMI를 다른 AMI로 업그레이드할 수 있습니다. 다음과 같은 이유로 AMI의 다른 버전으로 업그레이드해야 할 수 있습니다.

  • 현재 환경의 AMI가 end-of-life 도달했으며 더 이상 지원되지 않습니다.

  • 필요한 패키지는 현재 AMI에서 구형입니다.

또한 환경의 Amazon EC2 인스턴스와 연결되어 있는 Amazon Elastic Block Store(Amazon EBS) 볼륨의 크기를 조정할 수도 있습니다. 예를 들어, 다음 작업 중 하나 또는 모두를 수행할 수 있습니다.

  • 해당 인스턴스에 스토리지 공간이 부족하므로 볼륨의 크기를 늘립니다.

  • 사용하고 있지 않은 추가 스토리지 공간에 대해 요금을 지불하기를 원치 않으므로 볼륨의 크기를 줄입니다.

환경을 이동하거나 크기를 조정하려면 먼저 환경에서 실행 중인 프로세스를 중지하거나 스왑 파일을 환경에 추가해 볼 수 있습니다. 메모리 부족 또는 높은 CPU 사용률 문제를 해결하는 방법에 관한 자세한 내용은 문제 해결을 참조하세요.

참고

이 주제에서는 Amazon EC2 인스턴스에서 다른 인스턴스로 환경을 이동하거나 Amazon EBS 볼륨의 크기를 조정하는 작업에 대해서만 설명합니다. 고유 서버 중 하나에서 환경의 크기를 조정하거나 고유 서버 중 하나에 대한 스토리지 공간을 변경하려면 서버 설명서를 참조하세요.

마지막으로 Amazon EBS 리소스를 암호화하여 data-at-rest data-in-transit 인스턴스와 연결된 EBS 스토리지 모두의 보안을 보장할 수 있습니다.

환경 이동

이동 프로세스를 시작하기 전에 다음 조건을 유의하세요.

  • 환경을 동일한 유형의 Amazon EC2 인스턴스로 이동할 수 없습니다. 이동 시 새 인스턴스에 대해 다른 Amazon EC2 인스턴스를 선택해야 합니다.

    중요

    환경을 다른 Amazon EC2 인스턴스 유형으로 이동하는 경우 현재 Amazon EC2 인스턴스 유형도 지원되어야 합니다. AWS Cloud9 AWS 리전각 리전에서 사용할 수 있는 인스턴스 유형을 확인하려면 콘솔을 사용하여 EC2 환경을 생성할 때 표시되는 Configure settings(설정 구성) 페이지로 이동하세요. 인스턴스 유형 섹션의 선택은 콘솔 오른쪽 상단에서 선택한 유형에 따라 결정됩니다. AWS 리전

  • 인스턴스 유형을 변경하려면 먼저 환경과 연결된 Amazon EC2 인스턴스를 중지해야 합니다. 인스턴스가 중지된 상태에서는 본인을 비롯한 어떤 멤버도 중지된 인스턴스와 연결된 환경을 사용할 수 없습니다.

  • AWS 인스턴스를 새 하드웨어로 이동하지만 인스턴스의 ID는 변경되지 않습니다.

  • 인스턴스가 Amazon VPC에서 실행 중이고 퍼블릭 IPv4 주소가 있는 경우, 주소를 AWS 해제하고 인스턴스에 새 퍼블릭 IPv4 주소를 제공합니다. 인스턴스는 프라이빗 IPv4 주소와 모든 탄력적 IP 주소 또는 IPv6 주소를 유지합니다.

  • 인스턴스가 중단된 동안의 가동 중지 시간을 계획합니다. 이 프로세스는 완료하는 데 몇 분이 걸릴 수 있습니다.

환경을 이동하려면
  1. (선택 사항) 기존 인스턴스에 설치되지 않은 드라이버가 새로운 인스턴스 유형에 필요한 경우, 인스턴스에 연결하여 해당 드라이버를 설치합니다. 자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 크기 조정 호환성을 참조하십시오.

  2. 환경이 현재 표시된 모든 웹 브라우저 탭을 닫습니다.

    중요

    현재 환경을 표시하고 있는 웹 브라우저 탭을 모두 닫지 않으면 이 절차를 완료하는 데 방해가 AWS Cloud9 될 수 있습니다. 특히, 이 절차 중에 잘못된 시간에 환경과 연결된 Amazon EC2 인스턴스를 다시 시작하려고 할 AWS Cloud9 수 있습니다. 이 절차의 마지막 단계에 도달할 때까지 인스턴스를 중지된 상태로 유지해야 합니다.

  3. 아직 로그인하지 않은 AWS Management Console경우 https://console.aws.amazon.com 에서 로그인하십시오.

    에서 관리자 수준 자격 증명을 사용하여 로그인하는 것이 좋습니다. AWS 계정이렇게 할 수 없는 경우 관리자에게 문의하세요. AWS 계정

  4. Amazon EC2 콘솔을 엽니다. 이렇게 하려면 서비스 목록에서 EC2를 선택합니다.

  5. AWS 탐색 표시줄에서 이동하려는 환경이 AWS 리전 포함된 환경 (예: 미국 동부 (오하이오)) 을 선택합니다.

  6. 서비스 탐색 모음에서 [인스턴스(Instances)]를 확장하고 나서 [인스턴스(Instances)]를 선택합니다.

  7. 인스턴스 목록에서 이동할 환경과 연결된 인스턴스를 선택합니다. EC2 환경의 경우 인스턴스 이름은 aws-cloud9-으로 시작하고 뒤에 환경 이름이 붙습니다. 예를 들어 환경 이름이 my-demo-environment인 경우, 인스턴스 이름은 aws-cloud9-my-demo-environment로 시작합니다.

  8. 인스턴스 상태가 중지되지 않은 경우 [작업], [인스턴스 상태], [중지] 를 선택합니다. 메시지가 표시되면 Yes, Stop(예, 중지)을 선택합니다. 인스턴스가 중지하는 데 몇 분 정도 걸릴 수 있습니다.

  9. [인스턴스 상태(Instance State)]가 [중지됨(stopped)]으로 설정되고 나면 해당 인스턴스가 여전히 선택된 상태에서 [작업(Actions)], [인스턴스 설정(Instance Settings)], [인스턴스 유형 변경(Change Instance Type)]을 선택합니다.

  10. [인스턴스 유형 변경(Change Instance Type)] 대화 상자에서 환경에 사용할 새 [인스턴스 유형(Instance Type)]을 선택합니다.

    참고

    원하는 인스턴스 유형이 목록에 없으면 해당 인스턴스의 구성과 호환되지 않는 것입니다. 예를 들어 가상화 유형 때문에 인스턴스가 호환되지 않을 수 있습니다.

  11. (선택 영역) 선택한 인스턴스 유형이 EBS 최적화를 지원하는 경우 EBS-optimized(EBS 최적화)를 선택하여 EBS 최적화를 활성화하거나, EBS-optimized(EBS 최적화)의 선택을 취소하여 EBS 최적화를 비활성화합니다.

    참고

    선택한 인스턴스 유형이 기본적으로 EBS에 최적화된 경우 [EBS 최적화(EBS-optimized)]가 선택되고 이 선택을 취소할 수 없습니다.

  12. 적용을 선택하여 새로운 설정을 승인합니다.

    참고

    이 절차의 앞부분에서 [인스턴스 유형(Instance Type)]으로 다른 인스턴스 유형을 선택하지 않은 경우 [적용(Apply)]을 선택해도 아무런 동작이 발생하지 않습니다.

  13. 환경을 다시 엽니다. 자세한 정보는 AWS Cloud9에서 환경 열기을 참조하세요.

위 절차에 대한 자세한 내용은 Amazon EC2 사용 설명서의 인스턴스 유형 변경을 참조하십시오.

AWS Cloud9 EC2 환경을 다른 Amazon 머신 이미지 (AMI) 로 이동

이 주제에서는 한 Amazon Linux AMI에서 AWS Cloud9 지원되는 다른 AMI로 AWS Cloud9 EC2 환경을 마이그레이션하는 방법을 설명합니다.

참고

OS 버전을 업데이트하지 않고 환경을 새 인스턴스로 이동하려는 경우 을 참조하십시오환경 이동.

다음 절차 중 하나를 사용하여 환경 간에 데이터를 마이그레이션할 수 있습니다.

아카이브를 로컬 시스템에 다운로드하여 환경을 이동하려면
  1. 동일한 가용 영역에 다른 기본 이미지를 사용하여 새 환경을 생성하십시오.

    1. EC2 환경 생성섹션의 단계를 완료하여 새 환경을 생성하십시오.

      참고

      플랫폼을 선택할 때 환경을 마이그레이션하려는 플랫폼을 선택하십시오.

    2. 기본적으로 환경은 10GiB 볼륨으로 생성됩니다. 새 환경에 아카이브를 업로드하거나 압축을 풀 공간이 충분하지 않은 경우 환경에서 사용하는 Amazon EBS 볼륨 크기 조정 절차의 단계를 완료하여 Amazon EBS 볼륨 크기를 조정하십시오.

  2. 마이그레이션하려는 환경을 IDE에서 엽니다. AWS Cloud9

  3. AWS Cloud9 IDE가 로드되면 메뉴에서 파일 > 프로젝트 다운로드를 선택하여 환경 프로젝트 디렉토리의 내용이 포함된 아카이브를 다운로드합니다.

  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. 인스턴스 상태가 중지됨으로 설정되어 있는지 확인하십시오. 그렇지 않은 경우 인스턴스 상태 드롭다운 목록에서 인스턴스 중지를 선택합니다. 메시지가 표시되면 [Stop] 을 선택합니다. 인스턴스가 중지하는 데 몇 분 정도 걸릴 수 있습니다.

  3. 동일한 가용 영역에 다른 기본 이미지를 사용하여 새 환경을 생성하십시오.

    1. EC2 환경 생성섹션의 단계를 완료하여 새 환경을 생성하십시오.

      참고

      플랫폼을 선택할 때 환경을 마이그레이션하려는 플랫폼을 선택하십시오.

    2. 기본적으로 환경은 10GiB 볼륨으로 생성됩니다. 소스 볼륨에서 새 환경으로 파일을 이동할 공간이 충분하지 않은 경우 환경에서 사용하는 Amazon EBS 볼륨 크기 조정 절차의 단계를 완료하여 Amazon EBS 볼륨 크기를 조정하십시오.

  4. 다음 단계를 완료하여 기존 인스턴스에서 볼륨을 분리하십시오.

    1. 인스턴스 요약 페이지에서 스토리지 탭을 선택하고 볼륨을 선택합니다. 선택한 볼륨의 디바이스 이름은 루트 디바이스 세부 정보 섹션의 루트 디바이스 이름에 지정된 이름과 같아야 합니다.

    2. 볼륨 세부 정보 페이지에서 작업 > 볼륨 분리를 선택합니다.

    3. 볼륨을 성공적으로 분리한 후 [작업] > [볼륨 연결] 을 선택한 다음 드롭다운 목록에서 새 환경의 인스턴스를 찾아 선택합니다. 선택하는 Amazon EC2 인스턴스의 이름에는 접두사가 붙은 AWS Cloud9 환경 이름이 포함되어야 합니다. aws-cloud9

  5. 새 환경에서 AWS Cloud9 IDE를 엽니다.

  6. 환경이 로드된 후 새로 연결된 볼륨의 장치를 식별하려면 터미널에서 다음 명령을 실행합니다.

    lsblk

    다음 샘플 출력에서는 루트 nvme0n1 디바이스의 nvme0n1p1 파티션이 이미 마운트되어 있으므로 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. 이전 디바이스를 마운트 해제하려면 다음 두 명령 중 하나를 실행합니다.

    sudo umount $MOUNT_DEVICE
    sudo umount $MOUNT_POINT
  11. 작업 드롭다운 목록에서 볼륨 분리를 선택하여 3단계에서 연결한 볼륨을 분리합니다.

  12. 이제 이전 환경과 해당 볼륨을 삭제할 수 있습니다.

    참고

    볼륨이 더 이상 환경의 Amazon EC2 인스턴스에 연결되어 있지 않으므로 수동으로 제거해야 합니다. 볼륨 세부 정보 페이지에서 삭제를 선택하여 이 작업을 수행할 수 있습니다.

환경에서 사용하는 Amazon EBS 볼륨 크기 조정

  1. 크기를 조정할 Amazon EBS 볼륨에 대해 Amazon EC2 인스턴스와 연결된 환경을 엽니다.

  2. 환경용 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기반 인스턴스를 참조하십시오.

    #!/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
  3. IDE의 터미널 세션에서 resize.sh 파일을 포함하는 디렉터리로 전환합니다. 그리고 나서 다음 명령 중 하나를 실행하여 Amazon EBS Volume의 크기를 조정하기 위해 20을 원하는 크기(단위: GIB)로 바꿉니다.

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

사용하는 Amazon EBS 볼륨을 암호화합니다. AWS Cloud9

Amazon EBS 암호화는 다음 데이터를 암호화합니다.

  • 볼륨의 저장된 데이터

  • 볼륨과 인스턴스 사이에서 이동하는 모든 데이터

  • 볼륨에서 생성된 모든 스냅샷

  • 그런 스냅샷에서 생성된 모든 볼륨

AWS Cloud9 EC2 개발 환경에 사용되는 Amazon EBS 볼륨에는 두 가지 암호화 옵션이 있습니다.

  • 기본적으로 암호화 – 사용자의 AWS 계정 를 구성하여 생성하는 새 EBS 볼륨 및 스냅샷 사본의 암호화를 적용할 수 있습니다. 기본적으로 암호화는 AWS 리전의 수준에서 활성화됩니다. 따라서 해당 리전의 개별 볼륨 또는 스냅샷에 대해 이 기능을 활성화할 수 없습니다. 또한 Amazon EBS는 인스턴스를 시작할 때 생성된 볼륨을 암호화합니다. 따라서 EC2 환경을 생성하기 전에 이 설정을 활성화해야 합니다. 자세한 내용은 Amazon EC2 사용 설명서의 기본 암호화를 참조하십시오.

  • EC2 환경에서 사용하는 기존 Amazon EBS 볼륨의 암호화 - EC2 인스턴스용으로 이미 생성된 특정 Amazon EBS 볼륨을 암호화할 수 있습니다. 이 옵션에는 AWS Key Management Service (AWS KMS) 를 사용하여 암호화된 볼륨에 대한 액세스를 관리하는 작업이 포함됩니다. 관련 절차는 AWS Cloud9 가 사용하는 기존 Amazon EBS 볼륨을 암호화 섹션을 참조하세요.

중요

AWS Cloud9 IDE에서 기본적으로 암호화된 Amazon EBS 볼륨을 사용하는 경우 AWS Identity and Access Management 서비스 연결 역할에 대한 EBS 볼륨에 대한 액세스 권한이 AWS Cloud9 필요합니다. AWS KMS key 액세스가 제공되지 않으면 AWS Cloud9 IDE가 시작되지 않고 디버깅이 어려울 수 있습니다.

액세스를 제공하려면 Amazon EBS 볼륨에서 사용하는 KMS 키에 AWS Cloud9AWSServiceRoleForAWSCloud9, 의 서비스 연결 역할을 추가하십시오. 이 작업에 대한 자세한 내용은 AWS 규범적 지침 패턴의 기본 암호화와 함께 Amazon EBS 볼륨을 사용하는 AWS Cloud9 IDE 생성을 참조하십시오.

AWS Cloud9 가 사용하는 기존 Amazon EBS 볼륨을 암호화

기존 Amazon EBS 볼륨을 AWS KMS 암호화하려면 를 사용하여 KMS 키를 생성해야 합니다. 교체할 볼륨의 스냅샷을 생성한 후 KMS 키를 사용하여 스냅샷의 사본을 암호화합니다.

다음으로, 해당 스냅샷으로 암호화된 볼륨을 생성합니다. 그런 다음, 암호화되지 않은 볼륨을 EC2 인스턴스에서 분리하고 암호화된 볼륨을 연결하여 교체합니다.

마지막으로, 고객 관리형 키의 키 정책을 업데이트하여 AWS Cloud9 서비스 역할에 대한 액세스를 사용하도록 설정해야 합니다.

참고

다음 절차에서는 고객 관리 키를 사용하여 볼륨을 암호화하는 데 중점을 둡니다. AWS 서비스 계정에서 AWS 관리형 키 for an을 사용할 수도 있습니다. Amazon EBS의 별칭은 aws/ebs입니다. 암호화에 대해 이 기본 옵션을 선택한 경우 고객 관리형 키를 만드는 1단계를 건너뜁니다. 또한 키 정책을 업데이트하는 8단계를 건너뜁니다. 의 키 정책을 변경할 수 없기 때문입니다 AWS 관리형 키.

기존 Amazon EBS 볼륨을 암호화하려면
  1. AWS KMS 콘솔에서 대칭 KMS 키를 생성합니다. 자세한 내용은 AWS Key Management Service 개발자 가이드에서 대칭 KMS 키 생성을 참조하세요.

  2. Amazon EC2 콘솔에서 환경에 사용되는 Amazon EBS 지원 인스턴스를 중지합니다. 콘솔이나 명령줄을 사용하여 인스턴스를 중지할 수 있습니다.

  3. Amazon EC2 콘솔의 탐색 창에서 Snapshots(스냅샷)를 선택하여 암호화하려는 기존 볼륨의 스냅샷을 생성합니다.

  4. Amazon EC2 콘솔의 탐색 창에서 [스냅샷(Snapshots)]을 선택하여 스냅샷을 복사합니다. [스냅샷 복사(Copy snapshot)] 대화 상자에서 다음을 수행하여 암호화를 사용하도록 설정합니다.

    • [이 스냅샷 암호화(Encrypt this snapshot)]를 선택합니다.

    • Master Key(마스터 키)에서 앞서 생성한 KMS 키를 선택합니다. (를 사용하는 경우 (기본) aws/ebs 설정을 유지하십시오.) AWS 관리형 키

  5. 암호화된 스냅샷에서 새 볼륨을 생성합니다.

    참고

    암호화된 스냅샷에서 생성된 새 Amazon EBS 볼륨은 자동으로 암호화됩니다.

  6. Amazon EC2 인스턴스에서 이전 Amazon EBS 볼륨을 분리합니다.

  7. 암호화된 새 데이터 볼륨을 Amazon EC2 인스턴스에 연결합니다.

  8. AWS Management Console 기본 보기, 정책 보기 또는 API를 사용하여 KMS 키의 키 AWS Management Console 정책을 업데이트하십시오. AWS KMS 다음 주요 정책 설명을 추가하여 AWS Cloud9 서비스AWSServiceRoleForAWSCloud9, 가 KMS 키에 액세스할 수 있도록 허용하십시오.

    참고

    를 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" } } }
  9. Amazon EC2 인스턴스를 다시 시작합니다. Amazon EC2 인스턴스 재시작에 대한 자세한 내용은 인스턴스 중지 및 시작을 참조하십시오.