Amazon EFS 파일 시스템이 읽기 전용인 이유는 무엇인가요?

최종 업데이트 날짜: 2021년 2월 1일

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.    정책 저장을 선택합니다.

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

$ sudo umount /efs

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

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

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

9.    재부팅 후 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 사용을 통해 자동으로 탑재를 참조하세요.

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