자습서: 다른 VPC에서 파일 시스템 탑재하기
이 자습서에서는 다른 가상 프라이빗 클라우드(VPC)에 있는 EFS 파일 시스템을 탑재하도록 EC2 인스턴스를 설정합니다. 이 작업은 EFS 탑재 도우미를 사용하여 수행할 수 있습니다. 탑재 도우미는 amazon-efs-utils
도구 세트의 일부입니다. amazon-efs-utils
에 대한 자세한 정보는 Amazon EFS 클라이언트 수동 설치 섹션을 참조하십시오.
클라이언트의 VPC와 EFS 파일 시스템의 VPC는 VPC 피어링 연결 또는 VPC 전송 게이트웨이를 사용하여 연결되어야 합니다. VPC 피어링 연결 또는 전송 게이트웨이를 사용하여 VPC를 연결하면 VPC가 다른 계정에 속해 있더라도 하나의 VPC에 있는 EC2 인스턴스가 다른 VPC의 EFS 파일 시스템에 액세스할 수 있습니다.
참고
Microsoft Windows 기반 클라이언트에서 Amazon EFS를 사용하는 것은 지원되지 않습니다.
주제
사전 조건
이 자습서를 완료하려면 다음과 같은 사전 조건이 필요합니다.
-
amazon-efs-utils
도구 세트는 이 절차를 사용하기 전에 EC2 인스턴스에 설치됩니다.amazon-efs-utils
를 설치하는 방법에 대한 지침은 Amazon EFS 클라이언트 수동 설치 단원을 참조하세요. -
다음 중 하나입니다.
-
EFS 파일 시스템이 있는 VPC와 EC2 인스턴스가 있는 VPC 간의 VPC 피어링 연결. VPC 피어링 연결은 두 VPC 간의 네트워킹 연결입니다. 이러한 유형의 연결을 사용하면 프라이빗 Internet Protocol version 4(IPv4) 또는 Internet Protocol version 6(IPv6) 주소를 사용하여 이들 간의 트래픽을 라우팅할 수 있습니다. VPC 피어링을 사용하여 동일한 AWS 리전 또는 다른 AWS 리전 간에 VPC를 연결할 수 있습니다. 자세한 정보는 Amazon VPC 피어링 가이드의 Amazon VPC 피어링 연결 생성 및 수락을 참조하세요.
-
EFS 파일 시스템이 있는 VPC와 EC2 인스턴스가 있는 VPC를 연결하는 전송 게이트웨이. 전송 게이트웨이는 VPC와 온프레미스 네트워크를 상호 연결하는 데 사용할 수 있는 네트워크 전송 허브입니다. 자세한 내용은 Amazon VPC 전송 게이트웨이 가이드의 전송 게이트웨이 시작하기를 참조하세요.
-
1단계: EFS 탑재 대상의 가용 영역 ID 확인
파일 시스템의 고가용성을 보장하려면 항상 NFS 클라이언트와 동일한 가용 영역에 있는 EC2 탑재 대상 IP 주소를 사용하는 것이 좋습니다. 다른 계정에 있는 EFS 파일 시스템을 탑재하는 경우, NFS 클라이언트와 EFS 탑재 대상이 동일한 가용 영역 ID에 있는지 확인하세요. 가용 영역 이름은 계정마다 다를 수 있으므로 이 요구 사항이 적용됩니다.
EC2 인스턴스의 가용 영역 ID를 확인하려면
-
EC2 인스턴스에 연결합니다. 자세한 내용은 Amazon EC2 사용 설명서의 EC2 인스턴스에 연결을 참조하세요.
다음과 같이
describe-availability-zones
CLI 명령을 사용하여 EC2 인스턴스가 있는 가용 영역 ID를 확인합니다.[ec2-user@ip-10.0.0.1] $
aws ec2 describe-availability-zones --zone-name
{ "AvailabilityZones": [ { "State": "available", "ZoneName": "us-east-2b", "Messages": [], "ZoneId": "use2-az2", "RegionName": "us-east-2" } ] }
가용 영역 ID는
ZoneId
속성인use2-az2
에 반환됩니다.
2단계: 탑재 대상 IP 주소 확인
이제 EC2 인스턴스의 가용 영역 ID를 알았으므로 동일한 가용 영역 ID에 있는 탑재 대상의 IP 주소를 검색할 수 있습니다.
동일한 가용 영역 ID에서 탑재 대상 IP 주소 확인
-
다음과 같이
describe-mount-targets
CLI 명령을 사용하여use2-az2
AZ ID에서 파일 시스템의 탑재 대상 IP 주소를 검색합니다.$
aws efs describe-mount-targets --file-system-id
file_system_id
{ "MountTargets": [ { "OwnerId": "111122223333", "MountTargetId": "fsmt-11223344", =====> "AvailabilityZoneId": "use2-az2", "NetworkInterfaceId": "eni-048c09a306023eeec", "AvailabilityZoneName": "us-east-2b", "FileSystemId": "fs-01234567", "LifeCycleState": "available", "SubnetId": "subnet-06eb0da37ee82a64f", "OwnerId": "958322738406", =====> "IpAddress": "10.0.2.153" }, ... { "OwnerId": "111122223333", "MountTargetId": "fsmt-667788aa", "AvailabilityZoneId": "use2-az3", "NetworkInterfaceId": "eni-0edb579d21ed39261", "AvailabilityZoneName": "us-east-2c", "FileSystemId": "fs-01234567", "LifeCycleState": "available", "SubnetId": "subnet-0ee85556822c441af", "OwnerId": "958322738406", "IpAddress": "10.0.3.107" } ] }
use2-az2
가용 영역 ID에 있는 탑재 대상의 IP 주소는 10.0.2.153입니다.
3단계: 탑재 대상에 대한 호스트 항목 추가
이제 탑재 대상 IP 주소를 EFS 파일 시스템의 호스트 이름에 매핑하는 EC2 인스턴스의 /etc/hosts
파일에 입력할 수 있습니다.
탑재 대상에 대한 호스트 항목 추가
-
EC2 인스턴스의
/etc/hosts
파일에 탑재 대상 IP 주소에 대한 줄을 추가합니다. 사용되는 항목 형식은m
입니다. 다음 명령을 사용하여 파일에 줄을 추가합니다.ount-target-IP-Address
file-system-ID
.efs.region
.amazonaws.comecho "10.0.2.153 fs-01234567.efs.us-east-2.amazonaws.com" | sudo tee -a /etc/hosts
EC2 인스턴스 및 탑재 대상의 VPC 보안 그룹에 필요에 따라 EFS 파일 시스템에 대한 액세스를 허용하는 규칙이 있는지 확인합니다. 자세한 내용은 Amazon EC2 인스턴스 및 탑재 대상의 VPC 보안 그룹 사용 단원을 참조하십시오.
4단계: EFS 탑재 도우미를 사용하여 파일 시스템 탑재
EFS 파일 시스템을 탑재하려면 먼저 EC2 인스턴스에 탑재 디렉터리를 생성합니다. 그런 다음, EFS 탑재 도우미를 사용하여 AWS Identity and Access Management(IAM) 권한 부여 또는 EFS 액세스 포인트를 사용하여 파일 시스템을 탑재할 수 있습니다. 자세한 내용은 IAM을 사용하여 파일 시스템 데이터 액세스 제어 및 Amazon EFS 액세스 포인트 작업 단원을 참조하세요.
탑재 디렉터리를 생성하려면
-
다음 명령을 사용하여 파일 시스템을 탑재할 디렉터리를 생성합니다.
$
sudo mkdir /mnt/efs/
IAM 권한 부여를 사용하여 파일 시스템 탑재
다음 명령을 사용하여 IAM 권한 부여를 통해 파일 시스템을 탑재합니다.
$
sudo mount -t efs -o tls,iamfile-system-id
/mnt/efs/
EFS 액세스 포인트를 사용하여 파일 시스템 탑재
EFS 액세스 포인트를 사용하여 파일 시스템을 탑재하려면 다음 명령을 사용합니다.
$
sudo mount -t efs -o tls,accesspoint=access-point-id
file-system-id
/mnt/efs/
EFS 파일 시스템을 탑재했으므로 다음 절차에 따라 테스트할 수 있습니다.
EFS 파일 시스템 연결을 테스트하려면
-
만든 디렉터리를 다음 명령을 사용하여 새 디렉터리로 변경합니다.
$ cd ~/mnt/efs
-
하위 디렉터리를 만들고 해당 하위 디렉터리의 소유권을 EC2 인스턴스 사용자로 변경합니다. 그런 다음 아래 명령을 사용하여 새 디렉터리로 이동합니다.
$ sudo mkdir getting-started $ sudo chown ec2-user getting-started $ cd getting-started
-
다음 명령을 사용하여 텍스트 파일을 만듭니다.
$ touch test-file.txt
-
다음 명령을 사용하여 디렉터리 콘텐츠를 나열합니다.
$ ls -al
따라서 다음 파일이 생성됩니다.
-rw-rw-r-- 1
username
username
0 Nov 15 15:32 test-file.txt
/etc/fstab
파일에 항목을 추가하는 방법으로 자동으로 파일 시스템을 탑재할 수도 있습니다. 자세한 내용은 기존 EC2 Linux 인스턴스에서 자동 탑재 활성화 단원을 참조하십시오.
주의
파일 시스템을 자동으로 마운트하는 경우 네트워크 파일 시스템 식별에 사용하는 _netdev
옵션을 사용합니다. _netdev
이 빠진 경우 EC2 인스턴스가 응답을 중지합니다. 컴퓨팅 인스턴스가 네트워킹을 시작한 후 네트워크 파일 시스템의 초기화를 완료해야 하기 때문입니다. 자세한 내용은 자동 탑재 실패 및 인스턴스 무응답 단원을 참조하십시오.
5단계: 리소스 정리 및 AWS 계정 계정 보호
이 자습서를 완료한 후에는 다음 단계를 수행하여 리소스를 정리하고 AWS 계정을 보호합니다.
리소스를 정리하고 AWS 계정을 보호하려면
-
다음 명령을 사용하여 EFS 파일 시스템 탑재를 해제합니다.
$ sudo umount ~/efs
Amazon Elastic File System 콘솔(https://console.aws.amazon.com/efs/
)을 엽니다. -
파일 시스템 목록에서 삭제하려는 EFS 파일 시스템을 선택합니다.
-
작업에서 파일 시스템 삭제를 선택합니다.
-
영구적으로 파일 시스템 삭제 대화 상자에서 삭제하려는 EFS 파일 시스템에 대한 파일 시스템 ID를 입력한 다음 파일 시스템 삭제를 선택합니다.
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
탐색 창에서 보안 그룹(Security Groups)을 선택합니다.
-
이 자습서에 사용할 규칙을 추가한 보안 그룹의 이름을 선택합니다.
주의
VPC에 대한 기본 보안 그룹은 삭제할 수 없습니다.
-
작업에서 인바운드 규칙을 선택합니다.
-
추가한 인바운드 규칙 마지막 부분의 X를 선택한 다음 저장을 선택합니다.