튜토리얼: S3 Files 시작하기

튜토리얼: S3 Files 시작하기 (Tutorial: Getting started with S3 Files)

이 튜토리얼에서는 S3 파일 시스템을 만들고 EC2 인스턴스에 마운트한 뒤 기본 파일 작업을 테스트해요. S3 콘솔이나 AWS CLI 중 하나를 사용해 S3 Files를 시작할 수 있어요.

출처: 문서

본문

AWS 콘솔로 S3 Files 시작하기 (Getting started with S3 Files using the AWS Console)

S3 콘솔의 S3 Files 워크플로는 다음 단계로 구성돼요.

  • S3 파일 시스템 만들기.
  • EC2 인스턴스에 파일 시스템을 마운트하고 파일 시스템 작업 실행.

사전 요구사항 (Prerequisites)

시작하기 전에 다음을 갖추었는지 확인하세요.

1단계: S3 파일 시스템 만들기 (Step 1: Create your S3 file system)

  1. Amazon S3 콘솔을 엽니다: https://console.aws.amazon.com/s3/
  2. 탐색 모음에서 EC2 인스턴스와 S3 버킷이 있는 AWS 리전에 있는지 확인해요.
  3. 왼쪽 탐색 창에서 General purpose buckets를 선택해요.
  4. 파일 시스템을 만들 버킷을 선택해요.
  5. File systems 탭을 선택해요.
  6. Create file system을 선택해요.
  7. VPC를 검토하고 확인해요. 이 튜토리얼에서는 기본 VPC를 사용해요.
  8. Create를 선택해요.

AWS Management Console로 파일 시스템을 만들면 S3 Files는 기본 VPC의 모든 가용 영역에 마운트 대상(mount target) 하나씩과 파일 시스템용 액세스 포인트 하나를 자동으로 만들어요. 이 작업은 몇 분 걸릴 수 있어요. 모든 리소스가 만들어지면 파일 시스템을 사용할 수 있게 돼요.

2단계: EC2 인스턴스에 파일 시스템 마운트하기 (Step 2: Mount the file system on your EC2 instance)

  1. 파일 시스템 Overview 페이지에서 Attach to an EC2 instance 아래의 Attach를 선택해요. 그러면 EC2 인스턴스에 파일 시스템을 마운트하는 새 페이지가 열려요.
  2. Available EC2 instances 드롭다운에서 원하는 EC2 인스턴스를 선택해요.
  3. EC2 인스턴스에서 파일 시스템을 마운트할 경로를 입력해요. 예: /mnt/s3files/.
  4. EC2 인스턴스와 마운트 대상에서 필요한 트래픽이 흐르도록 올바른 Security groups를 구성했는지 확인해요.
  5. 내 EC2 인스턴스가 S3 파일 시스템과 S3 버킷과 상호 작용할 수 있도록 필요한 권한이 있는 올바른 IAM 역할이 연결되어 있는지 확인해요. 자세한 내용은 파일 시스템을 AWS 컴퓨팅 리소스에 연결하기 위한 IAM 역할을 참고하세요. 이 튜토리얼에서는 EC2 인스턴스 IAM 역할에 관리형 정책 AmazonS3FilesClientFullAccess를 추가해 클라이언트에 전체 접근을 부여할 수 있어요.
  6. 페이지에 표시된 연결 지침에 따라 CloudShell을 열고 파일 시스템을 마운트한 뒤 기본 파일 시스템 작업을 실행해요.

AWS CLI로 S3 Files 시작하기 (Getting started with S3 Files using the AWS CLI)

AWS CLI의 S3 Files 워크플로는 다음 단계로 구성돼요.

  • 파일 시스템 만들기.
  • 파일 시스템용 마운트 대상 만들기.
  • 마운트 대상을 사용해 EC2 인스턴스에 파일 시스템 마운트.
  • 디렉토리 나열, 파일에 텍스트 쓰기, 파일 읽기, 파일 복사 같은 파일 작업 테스트. 그런 다음 변경 사항이 S3 버킷에 반영되는지 확인.

사전 요구사항 (Prerequisites)

시작하기 전에 다음을 갖추었는지 확인하세요.

1단계: S3 파일 시스템 만들기 (Step 1: Create your S3 file system)

EC2 인스턴스에 연결한 뒤 create-file-system 명령을 실행해 파일 시스템을 만들어요.

aws s3files create-file-system --region aws-region --bucket bucket-arn --role-arn iam-role

다음 값을 원하는 값으로 바꿔주세요.

  • aws-region: 버킷의 AWS 리전. 예: us-east-1.
  • bucket-arn: S3 버킷의 ARN.
  • iam-role: S3 Files가 S3 버킷에서 읽고 쓰기 위해 수임하는 IAM 역할의 ARN. 이 IAM 역할에 올바른 권한을 추가했는지 확인하세요. 자세한 내용은 파일 시스템에서 버킷에 접근하기 위한 IAM 역할을 참고하세요.

파일 시스템을 성공적으로 만들면 S3 Files가 파일 시스템 설명을 JSON으로 반환해요. 다음 단계를 위해 파일 시스템 ID를 적어두세요.

2단계: 마운트 대상 만들기 (Step 2: Create mount targets)

마운트 대상(mount target)은 VPC의 단일 가용 영역 안에서 파일 시스템에 대한 네트워크 접근을 제공해요. 컴퓨팅 리소스에서 파일 시스템에 접근하려면 마운트 대상이 필요해요. 가용 영역당 최대 하나의 마운트 대상을 만들 수 있어요. 운영하는 모든 가용 영역에 마운트 대상을 만들 것을 권장해요.

다음 create-mount-target 명령을 실행해 파일 시스템용 마운트 대상을 만들어요. subnet-id가 EC2 인스턴스와 같은 VPC에 있는지 확인해야 해요. EC2 인스턴스와 같은 가용 영역에 마운트 대상을 만들어야 해요.

aws s3files create-mount-target --region aws-region --file-system-id file-system-id --subnet-id subnet-id

여기서 file-system-id는 create-file-system 명령의 응답에서 받은 파일 시스템 ID예요. 마운트 대상은 만드는 데 ~5분까지 걸릴 수 있어요.

3단계: EC2 인스턴스에 파일 시스템 마운트하기 (Step 3: Mount the file system on your EC2 instance)

파일 시스템을 마운트하기 전에 컴퓨팅 리소스와 마운트 대상에서 필요한 트래픽이 흐르도록 올바른 Security groups을 구성했는지 확인하세요. 보안 그룹에 대한 자세한 내용은 VPC user guide를 참고하세요.

다음 명령을 실행해 파일 시스템을 마운트해요.

파일 시스템 마운트 지점으로 사용할 디렉터리 /mnt/s3files를 다음 명령으로 만들어요.

sudo mkdir /mnt/s3files

파일 시스템을 마운트해요.

sudo mount -t s3files file-system-id:/ /mnt/s3files

파일 시스템 ID가 없다면 다음 명령으로 찾을 수 있어요.

aws s3files get-file-system --region aws-region --file-system-id file-system-id

4단계: 파일 작업 테스트 (Step 4: Test file operations)

마운트된 파일 시스템에서 기본 파일 작업을 다음과 같이 테스트해요.

마운트한 디렉터리로 이동해요.

cd /mnt/s3files

디렉터리 내용을 나열해 소스 버킷 또는 접두사의 내용이 가져와졌는지 확인할 수 있어요. 동기화는 보통 몇 초 안에 일어나지만 특히 첫 파일의 경우 더 오래 걸릴 수 있어요. 버킷이 비어 있으면 아래 명령도 빈 결과를 반환해요.

ls

다른 파일 작업도 테스트할 수 있어요.

파일 만들기:

echo "Hello, S3 Files!" > test.txt

파일 읽기:

cat test.txt

디렉터리 만들기:

mkdir test-directory

파일을 디렉터리로 복사하기:

cp /mnt/s3files/test.txt /mnt/s3files/test-directory/

그런 다음 S3 버킷으로 가서 test-directory 디렉터리가 버킷에 반영되는지 확인할 수 있어요. 변경 사항이 S3 버킷으로 다시 동기화되는 데는 ~1분 정도 걸릴 수 있다는 점을 참고하세요.

더 알아보기 (Learn more)