Amazon EC2 인스턴스에서 Amazon S3 사용
Amazon Simple Storage Service(Amazon S3)는 업계 최고의 확장성, 데이터 가용성, 보안 및 성능을 제공하는 객체 스토리지 서비스입니다. Amazon S3를 사용하여 Amazon EC2 인스턴스 또는 인터넷을 통해 데이터 레이크, 웹 사이트, 백업 및 빅 데이터 분석과 같은 다양한 사용 사례에 대해 원하는 양의 데이터를 저장하고 검색할 수 있습니다. 자세한 내용은 Amazon S3란 무엇인가?를 참조하세요
Amazon EC2 인스턴스에서 Amazon S3 데이터에 액세스하는 두 가지 방법이 있습니다.
-
파일 액세스 - Amazon S3 Files를 사용하여 S3 버킷을 인스턴스에 고성능 파일 시스템으로 탑재합니다.
-
객체 액세스 - Amazon S3 API, AWS CLI, AWS SDK 또는 wget과 같은 도구를 사용하여 S3에서 또는 S3로 객체를 복사합니다.
Amazon S3 Files를 사용하는 파일 액세스
Amazon S3 Files는 S3 범용 버킷을 컴퓨팅 인스턴스에 고성능 파일 시스템으로 탑재할 수 있는 서버리스 파일 시스템입니다. S3 Files를 사용하면 로컬 탑재 경로에서 읽기 및 쓰기와 같은 표준 파일 시스템 작업을 통해 S3 객체를 파일로 액세스할 수 있습니다.
실행 중인 인스턴스에서 시작 시 또는 시작 후 S3 파일 시스템을 EC2 인스턴스에 탑재할 수 있습니다.
사전 조건
EC2 인스턴스에서 S3 Files를 설정하기 전에 다음 조건을 갖추었는지 확인합니다.
-
S3 파일 시스템 및 사용 가능한 상태의 탑재 대상 하나 이상. S3 파일 시스템 생성에 대한 자세한 내용은 Amazon S3 사용 설명서의 Working with Amazon S3 Files를 참조하세요.
-
인스턴스 프로파일이 연결된 EC2 Linux 인스턴스. 파일 시스템을 탑재하는 데 필요한 권한에 대한 자세한 내용은 Amazon S3 사용 설명서의 IAM roles and policies를 참조하세요.
-
인스턴스와 파일 시스템의 탑재 대상 사이에서 NFS 트래픽(포트 2049)을 허용하는 보안 그룹. 필요한 보안 그룹 설정에 대한 자세한 내용은 Amazon S3 사용 설명서의 Security groups를 참조하세요.
EC2 콘솔을 사용하여 시작 시 파일 시스템을 EC2 인스턴스에 탑재하는 방법
https://console.aws.amazon.com/ec2/
에서 Amazon EC2 콘솔을 엽니다. -
인스턴스 시작을 선택합니다.
-
Network settings(네트워크 설정)에서 다음을 수행합니다.
-
편집을 선택합니다.
-
서브넷에서 서브넷을 선택합니다.
-
기본 보안 그룹을 선택하여 EC2 인스턴스에서 S3 파일 시스템에 액세스할 수 있는지 확인하세요. 이 보안 그룹을 사용하여 Secure Shell(SSH)로 EC2 인스턴스에 액세스할 수 없습니다. SSH 액세스의 경우 나중에 기본 보안을 편집하고 SSH를 허용하는 규칙을 추가하거나 SSH를 허용하는 새 보안 그룹을 추가할 수 있습니다. 다음 설정을 사용할 수 있습니다.
-
유형: SSH
-
프로토콜: TCP
-
포트 범위: 22
-
소스: 위치 무관 0.0.0.0/0
-
-
-
스토리지 구성에서 다음 작업을 수행하세요.
-
파일 시스템에서 S3 Files를 선택하세요.
-
공유 파일 시스템 추가(Add shared file system)를 선택합니다.
-
S3 파일 시스템의 경우 네트워크 설정에서 선택한 서브넷을 기반으로 파일 시스템이 가용 영역에 나타납니다. 탑재할 S3 파일 시스템을 선택하세요. 파일 시스템이 없는 경우 새 파일 시스템 생성을 선택하여 새 항목을 생성하세요.
-
파일 시스템을 탑재하려는 EC2 인스턴스의 로컬 탑재 경로(예:
/mnt/s3files)를 입력하세요. -
파일 시스템을 탑재하고 fstab에 추가하기 위한 명령이 생성됩니다. 고급 세부 정보의 사용자 데이터 필드에 이 명령을 추가할 수 있습니다. 이제 EC2 인스턴스는 시작될 때와 재부팅될 때마다 S3 파일 시스템을 탑재하도록 구성됩니다. 시작된 후에도 EC2 인스턴스에서 이러한 명령을 실행할 수 있습니다.
-
-
고급 세부 정보에서 인스턴스 프로파일을 인스턴스에 연결하세요. IAM 역할에는 파일 시스템을 탑재하고 S3 버킷에 액세스하기 위한 권한이 있어야 합니다. 필요한 권한에 대한 자세한 내용은 Amazon S3 사용 설명서의 IAM roles and policies를 참조하세요.
-
인스턴스 시작을 선택합니다.
인스턴스가 시작되면 필요한 소프트웨어 유틸리티가 설치되고 파일 시스템이 탑재됩니다. 로컬 탑재 경로로 이동하여 파일 시스템을 볼 수 있습니다.
시작 후 EC2 파일 시스템을 인스턴스에 탑재하는 방법
-
Secure Shell(SSH)을 통해 또는 EC2 콘솔에서 EC2 Instance Connect를 사용하여 EC2 인스턴스에 연결하세요.
-
S3 파일 시스템을 탑재하려면 탑재 헬퍼 유틸리티
amazon-efs-utils를 사용하세요. Linux 배포에 따라 다음 명령 중 하나를 사용하여amazon-efs-utils패키지를 설치하세요.-
Amazon Linux를 사용하는 경우 다음 명령을 실행하여 Amazon 리포지토리에서 efs-utils를 설치하세요.
sudo yum -y install amazon-efs-utils -
기타 지원되는 Linux 배포
를 사용하는 경우 다음 명령을 실행하세요. curl https://amazon-efs-utils.aws.com/efs-utils-installer.sh | sudo sh -s -- --install -
기타 Linux 배포는 GitHub의 efs-utils
리포지토리를 참조하세요.
-
-
다음 명령을 사용하여 파일 시스템 탑재 지점으로 사용할 디렉터리를 생성하세요.
sudo mkdir {path/to/mount} -
S3 파일 시스템을 탑재하세요.
FS="{YOUR_FILE_SYSTEM_ID}" sudo mount -t s3files $FS:/ {path/to/mount} -
파일 시스템이 탑재되었는지 확인하세요.
df -h {path/to/mount}
S3 버킷의 객체를 파일로 보는 방법
이전 절차를 완료했으면 이제 표준 파일 시스템 작업을 사용하여 로컬 탑재 경로에서 S3 객체를 파일로 읽고 쓸 수 있습니다. S3 버킷에 객체가 있는 경우 다음 명령을 사용하여 객체를 파일로 볼 수 있습니다.
ls {path/to/mount}
객체 기반 액세스
S3 API, AWS CLI, AWS SDK 또는 표준 HTTP 도구를 사용하여 Amazon S3에서 또는 해당 위치로 파일을 복사할 수 있습니다. 필요한 권한이 있으면 다음 방법 중 하나를 사용하여 Amazon S3 및 사용자 인스턴스로 또는 해당 위치에서 파일을 복사할 수 있습니다.