AWS 는 EBS, EFS, FSx, S3, Glacier 등등, 사용자의 요구사항에 맞춰진 다양한 스토리지 서비스를 제공합니다.
각각의 스토리지 서비스에는 특징이 있는데, 그 중에서도 특히 가격대 용량비가 뛰어난 S3 와
리눅스 시스템에 파일 시스템을 쉽게 마운트 할 수 있는 사용자나 관리자들의 관심이 상당히 많았습니다.
그런데, S3 는 파일 기반의 스토리지가 아닌 객체 스토리지 서비스이고,
S3 에 맞는 도구 (S3 Browser 등) 를 이용하거나 AWS CLI 를 이용해야만 접근하고, 송수신할 수 있었습니다.
(물론, 비공식적인 오픈소스 툴을 통해 리눅스에 마운트하는 방법이 있었지만, 경험상 마운트가 풀려버리는 문제가 자주 발생하여, 운영 환경에 절대 적용하지 않았습니다.)
또한, EFS 는 완전관리형 서비스 이기 때문에, aws 가 아닌 다른 경로로 접근하거나 파일을 송수신하는 것이
S3 의 경우와 마찬가지로 매우 번거로웠습니다.
그런데, 비교적 최근에, AWS 에서 사용자가 친숙한 기존의 FTP Client 를 이용하여
S3 또는 EFS 에 쉽게 파일을 송수신 할 수 있는 완전관리형 서비스를 출시했습니다.
AWS Transfer Family 는 AWS S3 또는 EFS 서비스에
FileZilla 와 같은 FTP Client 를 통해 접근할 수 있도록 도와주는 완전 관리형 서비스 입니다.
이번 포스팅에서는 SFTP 클라이언트를 이용해 AWS Transfer Family 서비스를 이용하여
S3 버킷에 파일을 송수신하는 빠른 Hands-On 을 해보겠습니다.
S3 Bucket 생성
FTP Client 접속 테스트를 진행할 임의의 S3 버킷을 생성합니다.
IAM 역할 생성
작업을 진행하기 위해 IAM 역할을 생성하는데, 이번 HOL 에서는 AWSS3FullAccess 로 설정합니다.
AWS Transfer Server 생성
Transfer Server 콘솔로 이동하고 [서버 생성] 을 클릭합니다.
프로토콜 선택 화면에서 [SFTP] 를 선택합니다.
(FTPS 와 FTP 도 지원합니다.)
자격증명 공급자 선택 메뉴에서는 [서비스 관리형] 을 선택합니다.
[AWS Directory Service] 또는 [사용자 지정] 을 통해 접속할 계정을 연동할 수 있습니다.
엔드포인트 구성 메뉴에서 원활한 테스트를 위해 [공개적으로 액세스 가능]을 선택합니다.
[VPC 호스팅] 을 선택하면, 보안 그룹을 통해 접속 가능한 네트워크를 제어할 수 있습니다.
도메인 선택 화면은 Transfer Family 를 통해 접근할 스토리지 서비스를 지정할 수 있습니다.
이번 Hands on Lab 에서는 [Amazon S3] 를 선택합니다.
추가 세부정보 구성 화면에서는 로깅, 암호화 알고리즘 옵션, 그리고 RSA Private 키 사전 등록을 진행할 수 있습니다.
화면과 같이 [새 역할 생성], [TransferSecurityPolicy-2020-06] 를 선택합니다.
기존 SFTP 서버에서 마이그레이션 하지 않으므로, 서버 호스트키는 공란으로 비워둡니다.
마지막으로 태그를 설정할 수 있습니다.
검토 및 생성 화면에서 설정을 확인하고 수정할 수 있습니다.
정상적으로 Transfer Server가 생성되었습니다.
사용자 추가
Transfer 서버를 통해 접속할 사용자를 추가하고, 저장소로 접근할 수 있도록 설정합니다.
사용자 이름에는 FTP Client 에서 사용할 ID 를 입력합니다.
역할은 IAM 서비스에서 S3 에 접근할 수 있도록 사전에 구성한 테스트 역할을 이용합니다.
정책을 설정하지 않을 경우, 기본적으로 역할이 가지고 있는 범위만큼 Bucket 에 접근할 수 있습니다.
따라서, 사용자가 접근할 수 있는 버킷을 사전에 정의하는 것을 강력히 권장합니다.
특히, 특정 버킷을 사용자 홈디렉토리로 설정할 수 있습니다.
AWS Transfer Family 는 ID / Password 방식의 인증을 지원하지 않습니다.
접근할 클라이언트의 SSH PublicKey 등록을 통해 접근할 수 있습니다.
마지막으로, 사용자에 대해 태그를 설정할 수 있습니다.
FileZilla FTP Client 접속 테스트
보편적으로 많이 사용하는 SFTP 지원 클라이언트인 파일질라를 이용하여, 호스트를 등록하고, 접속해보십시오.
Transfer Family 콘솔 Transfer Server 를 클릭하면, 호스트의 dns 를 확인할 수 있으므로 입력하세요.
로그온 유형은 키 파일을 통해 접속해야하며, PrivateKey 파일을 선택하여 인증에 사용합니다.
클라이언트의 네트워크 상황에 따라 속도가 차이나겠지만,
대략적인 확인을 위해 5GB 가량의 ISO 파일을 업로드 진행한 결과, 3.5 MiB/s 가량의 속도로 측정됩니다.
마무리
AWS Transfer Family 는 일반적인 사용자나 관리자가 S3 또는 EFS 에 쉽게 접근할 수 있도록 지원해주는 서비스입니다.
이를 활용하면, 내부 및 타사와의 파일 공유 및 송수신에 유용하게 사용할 수 있을 것입니다.
참조 링크 : https://docs.aws.amazon.com/ko_kr/transfer/latest/userguide/getting-started.html
댓글