개시일 : 2021.04.07

키워드 : Amazon Elastic File System(EFS), 마이그레이션




Question


현재 EFS standard storage를 사용하고 있습니다. 

기존에 운영중인 EFS의 스토리지 클래스 유형을 standard storage를 EFS onezone storage로(Mutli AZ-> Single AZ) 변경하는 방법은 무엇인가요?







Answer


현재 AWS에서는 클래스 업그레이드를 지원하지 않고있는 것으로 확인되었습니다.


하지만 추후 새로운 기능으로 출시될 수 있으며, 출시되는 즉시 다음 링크 중 하나를 통해 확인 할 수 있습니다.


What's New

?  http://aws.amazon.com/new/


Release Notes

?  https://aws.amazon.com/releasenotes


현재로서는 해당 기능을 지원하고 있지 않기 때문에 스토리지 클래스 유형이 EFS One Zone인 새로운 EFS를 생성하여 데이터를 마이그레이션하는 방법을 권장 드립니다.

데이터를 새로운 EFS로 마이그레이션하는 방법으로는 아래의 두 가지 방법 선택하여 활용할 수 있습니다.


1. 새 EFS One Zone을 생성 한 다음 기존 EFS 볼륨에서 데이터를 복사

- EC2 인스턴스에서 도구(GNU parallel, msrsync, fpsync)를 이용하여 Amazon EFS에 병렬로 데이터를 복사할 수 있습니다.


GNU parallel

1.    GNU parallel을 설치합니다.

Amazon Linux 및 RHEL 6의 경우:

$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
$ sudo yum install parallel nload -y

RHEL 7의 경우:

$ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 
$ sudo yum install parallel nload -y

Amazon Linux 2의 경우:

  $ sudo amazon-linux-extras install epel 

  $ sudo yum install nload sysstat parallel -y

Ubuntu의 경우:

  $ sudo apt-get install parallel

2.    rsync를 사용하여 Amazon EFS에 파일을 복사합니다.

  $ sudo time find -L /src -type f | parallel rsync -avR {} /dst

또는

  $ sudo time find /src -type f | parallel -j 32 cp {} /dst

3.    nload 콘솔 애플리케이션을 사용하여 네트워크 트래픽 및 대역폭을 모니터링합니다.

  $ sudo nload -u M

msrsync

msrsync는 다중 rsync 프로세스를 병렬로 실행하는 rsync의 Python 래퍼입니다.

참고: msrsync는 Python 2에서만 호환됩니다. Python 버전 2.7.14 이상을 사용하여 msrsync 스크립트를 실행해야 합니다.

1.    msrsync를 설치합니다.

 $ sudo curl -s https://raw.githubusercontent.com/jbd/msrsync/master/msrsync -o /usr/local/bin/msrsync && sudo chmod +x /usr/local/bin/msrsync

2.    -p 옵션을 사용하여 병렬로 실행하려는 rsync 프로세스 수를 지정합니다. X를 rsync 프로세스 수로 대체합니다. –P 옵션은 각 작업의 진행 상황을 표시합니다.

  $ sudo time /usr/local/bin/msrsync -P -p X --stats --rsync "-artuv" /src/ /dst/

fpsync

fpsync 도구는 fpart 및 rsync를 사용하여 디렉터리를 병렬로 동기화합니다. SSH를 통해 여러 노드(작업자)에서 rsync 전송을 시작하거나 로컬로 여러 rsync 프로세스를 실행할 수 있습니다.

fpart에 대한 자세한 내용은 Ubuntu 설명서 웹 사이트의 fpart를 참조하십시오.

1.    EPEL 리포지토리를 활성화하고 fpart 패키지를 설치합니다.

Amazon Linux 및 RHEL 6의 경우:

  $ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm 

  $ sudo yum install fpart -y

RHEL 7의 경우:

  $ sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm 

  $ sudo yum install fpart -y

Amazon Linux 2의 경우:

  $ sudo amazon-linux-extras install epel 
  
  $ sudo yum install fpart -y

Ubuntu의 경우:

  $ sudo apt-get install fpart

참고: Ubuntu에서 fpsync는 fpart 패키지의 일부입니다.

2.    fpsync를 사용하여 /dst /src 디렉터리를 동기화합니다. X를 병렬로 실행하려는 rsync 프로세스 수로 대체합니다.

  $ sudo fpsync -n X /src /dst






2. AWS Backup Management Console을 사용하여 전체 파일 시스템을 복원하는 전체 복원을 수행하는 AWS 백업 서비스를 사용

- Amazon Elastic File System(Amazon EFS) 인스턴스를 복원하는 경우 전체 복원 또는 항목 수준 복원을 수행할 수 있습니다.


  1. https://console.aws.amazon.com/backup에서 AWS Backup 콘솔을 엽니다.

  2. EFS 백업 볼트는 생성 Deny backup:StartRestoreJob 시 액세스 정책을 받습니다. 백업 볼트를 처음 복원하는 경우 다음과 같이 액세스 정책을 변경해야 합니다.

    1. 백업 볼트를 선택합니다.

    2. 복원할 복구 시점이 포함된 백업 볼트를 선택합니다.

    3. 볼트 액세스 정책까지 아래로 스크롤

    4. 있는 경우 backup:StartRestoreJob 에서 를 삭제합니다Statement. 편집을 선택하고 를 삭제backup:StartRestoreJob한 다음 정책 저장을 선택하여 이 작업을 수행합니다.

  3. 탐색 창에서 복원하려는 보호된 리소스 및 EFS 파일 시스템 ID를 선택합니다.

  4. 리소스 세부 정보 페이지에 선택한 파일 시스템 ID에 대한 복구 시점 목록이 표시됩니다. 파일 시스템을 복원하려면 백업 창에서 파일 시스템의 복구 시점 ID 옆에 있는 라디오 버튼을 선택합니다. 창의 오른쪽 위에서 복원을 선택합니다.

  5. 파일 시스템에 대한 복원 파라미터를 지정합니다. 입력하는 복원 파라미터는 선택한 리소스 유형에 따라 다릅니다.

    전체 파일 시스템을 복원하는 전체 복원을 수행할 수 있습니다. 또는 항목 수준 복원을 사용하여 특정 파일 및 디렉터리를 복원할 수 있습니다.

    • 전체 복원 옵션을 선택하여 모든 루트 수준 폴더 및 파일을 포함하여 파일 시스템 전체를 복원합니다.

    • 특정 파일 또는 디렉터리를 복원하려면 항목 수준 복원 옵션을 선택합니다. Amazon EFS 내에서 최대 5개의 항목을 선택하고 복원할 수 있습니다.

      특정 파일 또는 디렉터리를 복원하려면 탑재 지점에 대한 상대 경로를 지정해야 합니다. 예를 들어, 파일 시스템이 /user/home/myname/efs에 탑재되고 파일 경로가 user/home/myname/efs/file1인 경우 /file1을 입력합니다. 경로는 대소문자를 구분하며 특수 문자, 와일드카드 및 정규식 문자열을 포함할 수 없습니다.

      1. 항목 경로 텍스트 상자에 파일 또는 폴더의 경로를 입력합니다.

      2. 추가 파일 또는 디렉터리를 추가하려면 항목 추가를 선택합니다. Elastic File System 내에서 최대 5개의 항목을 선택하고 복원할 수 있습니다.

  6. 복원 위치의 경우

    • 소스 파일 시스템으로 복원하려면 소스 파일 시스템의 디렉터리로 복원을 선택합니다.

    • 다른 파일 시스템으로 복원하려면 새 파일 시스템으로 복원을 선택합니다.

  7. File system type(파일 시스템 유형)의 경우

    • (권장) 여러 가용 영역에서 파일 시스템을 복원하려면 리전AWS을 선택합니다.

    • 단일 가용 영역으로 파일 시스템을 복원하려면 단일 영역을 선택합니다. 그런 다음 가용 영역 드롭다운에서 복원 대상을 선택합니다.

    자세한 내용은 Amazon EFS 사용 설명서의 스토리지 클래스 Amazon EFS 관리를 참조하십시오.

  8. 성능의 경우

    • 리전 복원을 선택한 경우 (권장) 범용 또는 최대 I/O를 선택합니다.

    • 단일 영역 복원을 수행하도록 선택한 경우 (권장) 범용을 선택해야 합니다. 한 영역 복원은 최대 I/O를 지원하지 않습니다.

  9. 암호화 활성화

    • 파일 시스템을 암호화하려면 암호화 활성화를 선택합니다. 마스터 키 IDs와 별칭은 AWS Key Management Service (AWS KMS) 콘솔을 사용하여 생성한 후 목록에 나타납니다.

    • 마스터 키 텍스트 상자의 목록에서 사용할 키를 선택합니다.

  10. Restore role(역할 복원)에서 가 이 복원에 대해 맡IAM을 AWS Backup 역할을 선택합니다.

  11. [Restore backup]을 선택합니다.

    복원 작업 창이 나타납니다. 페이지 상단에 복원 작업에 대한 정보를 제공하는 메시지가 나타납니다.



참고 사이트


#1 EC2 인스턴스에서 성능을 극대화하기 위해 Amazon EFS에서 또는 Amazon EFS에 병렬로 데이터를 복사하려면 어떻게 해야 합니까?

? https://aws.amazon.com/ko/premiumsupport/knowledge-center/efs-copy-data-in-parallel/


#2 Amazon EFS 파일 시스템 복원

? https://docs.aws.amazon.com/ko_kr/aws-backup/latest/devguide/restoring-efs.html



위 내용 관련하여 궁금증이 해결되지 않으셨거나,

추가 문의 사항이 있으시면 저희 고객 지원 포털에 문의 남겨주시기 바랍니다 :)