Amazon EFS 파일 시스템이 읽기 전용인 이유는 무엇입니까?

최종 업데이트 날짜: 2020년 6월 29일

Amazon Elastic File System(Amazon EFS) 파일 시스템을 사용할 수 있고 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에 올바르게 탑재되었지만 이 파일 시스템에 쓸 수 없습니다. 이 문제를 해결하려면 어떻게 해야 합니까?

간략한 설명

파일 시스템 쓰기를 방해하는 두 가지 일반적인 문제는 다음과 같습니다.

  • /etc/fstab 파일의 탑재 옵션이 읽기 전용 액세스로 설정되어 있습니다.
  • 연결된 AWS Identity and Access Management(IAM) 정책이 읽기 전용 액세스 또는 루트 액세스가 비활성화를 나타냅니다.

해결 방법

참고: 이 해결 방법에서는 Amazon EFS 탑재 헬퍼를 사용합니다. Amazon EFS 탑재 헬퍼는 Amazon Linux에 사전 설치되어 있습니다. 다른 배포를 사용하는 경우 다른 Linux 배포판에 amazon-efs-utils 패키지 설치를 참조하십시오.

/etc/fstab 파일에서 탑재 옵션이 올바른지 확인

1.    다음 명령을 실행하여 파일 시스템의 현재 탑재 옵션을 확인합니다.

$ mount -t nfs4

다음 예제 출력에서 변수 ro는 파일 시스템이 현재 읽기 전용 액세스를 허용함을 나타냅니다.

file-system-id.efs.region.amazonaws.com:/ on /efs type nfs4 (ro,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.0.2.0,local_lock=none,addr=192.0.0.0)

2.    vi와 같은 편집 도구를 사용하여 /etc/fstab 파일에서 mount 파라미터를 rw(읽기/쓰기 액세스)로 변경합니다.

참고: file-system-id를 파일 시스템의 ID로 바꾸십시오.

file-system-id:/ efs-mount-point efs rw,_netdev 0 0

3.    다음 명령을 실행하여 파일 시스템을 탑재 해제하고 다시 탑재합니다.

$ sudo mount -o remount,rw /efs -t efs && mount -t nfs4
file-system-id.efs.region.amazonaws.com:/ on /efs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,noresvport,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=190.0.2.0,local_lock=none,addr=190.0.2.0)

4.    파일 시스템에서 파일을 생성하거나 편집하여 파일 시스템에 쓸 수 있는지 확인합니다.

권한이 올바르게 설정되었는지 확인

1.    Amazon EFS 콘솔을 엽니다.

참고: Amazon EFS 파일 시스템과 동일한 리전에 있는지 확인하십시오.

2.    확인할 파일 시스템을 선택한 다음 [작업], [클라이언트 액세스 관리]를 선택합니다.

3.    [정책 설정] 탭에서 다음 옵션을 선택 취소합니다(선택한 경우).

기본적으로 루트 액세스 비활성화
기본적으로 읽기 전용 액세스 적용

4.    [정책 설정]을 선택합니다.

5.    [정책 저장]을 선택합니다.

6.    umount 명령을 실행하여 파일 시스템의 탑재를 해제합니다.

$ sudo umount /efs

7.    mount 명령을 실행하여 파일 시스템을 다시 탑재하고 변경 사항을 적용합니다.

참고: file-system-id를 파일 시스템의 ID로 바꾸십시오.

$ sudo mount -t efs -o iam fs-file-system-id /efs

8.    재부팅 후 vi와 같은 편집 도구로 /etc/fstab에 다음 줄을 추가하여 새 탑재를 영구적으로 만듭니다.

인스턴스 프로파일이 있는 인스턴스에 IAM 권한 부여로 탑재:

file-system-id:/ efs-mount-point efs _netdev,iam 0 0

자격 증명 파일을 사용하여 Linux 인스턴스에 IAM 권한 부여로 탑재:

file-system-id:/ efs-mount-point efs _netdev,iam,awsprofile=namedprofile 0 0

EFS 액세스 포인트를 사용하여 탑재:

file-system-id efs-mount-point efs _netdev,accesspoint=access-point-id 0 0

자세한 내용은 /etc/fstab 사용을 통해 자동으로 탑재를 참조하십시오.

9.    파일 시스템에서 파일을 생성하거나 편집하여 파일 시스템에 쓸 수 있는지 확인합니다.