참고
- https://techblog.kr/2021/05/10/serverless-sftp/
- https://aws.amazon.com/ko/blogs/korea/new-aws-transfer-for-ftp-and-ftps-in-addition-to-existing-sftp/
목차
1. AWS Transfer란? + FTP, FTPS, SFTP
2. 사전 준비 사항(SSH 퍼블릭 키, S3 버킷, IAM 역할)
1. AWS Transfer란? + FTP, FTPS, SFTP
AWS Transfer Family란, AWS 스토리지 안팎으로 파일을 전송할 수 있는 보안 전송 서비스이다
FTP, FTPS, SFTP 프로토콜을 사용할 수 있으며, S3 또는 EFS와의 데이터 전송을 지원한다
1. FTP (File Transfer Protocol) - Port 21
- 원격 host로 파일을 송수신하는 프로토콜
- client-server 모델
- 단순하지만 보안이 약하다
2. FTPS - Port 21, 20
- HTTP-HTTPS 와 같은 경우
- TLS/SSL을 거치는(공개키 암호화 방식 사용) FTP
3. SFTP (Secure File Transfer Protocol) - Port 22
- SSH의 파일 전송 버전, FTP보다 보안 강화
- 파일/시스템 관리도 쉬워서 현업에선 거의 SFTP만 사용
참고로 2018년에 SFTP용으로 출시된 완전관리형 서비스였고, 2020년에 FTPS 및 FTP까지 사용할 수 있게 되었다
아키텍처는 아래와 같다
본 실습에선 SFTP 통신을 사용해 S3에 연결해보겠다
2. 사전 준비 사항(SSH 퍼블릭 키, S3 버킷, IAM 역할)
2-1) SSH 퍼블릭 키 생성
PuTTYgen(Window) 사용 (다른 방법 사용해도 무관)
위에서 보는 것처럼 public/private key pair를 생성 후 각자를 잘 저장해주면 된다
2-2) S3 버킷 생성
AWS Console > S3 > 버킷 만들기
버킷 이름은 고유해야 하므로 자신의 이름을 같이 넣어서 만들어주자
2-3) IAM 역할 생성
AWS Console > IAM > 역할 > 역할 만들기
이름만 대충 정해줘서 생성 완료해주면 끝이다
3. AWS Transfer 생성
AWS Console > AWS Transfer Family
3-1) 서버 생성
콘솔의 서버 생성 클릭
나머진 기본 설정 그대로 두고 생성을 완료해주자
3-2) 사용자 생성
생성된 서버 ID 클릭 > 중간의 사용자 추가 클릭
접속할 사용자의 이름을 지정해주고, 위에서 만든 IAM 역할을 붙여준다
홈 디렉토리에는 위에서 만든 S3 버킷을 지정해주면 된다 (밑엔 하위폴더 이름 - 직접 지정해도 됨)
해당 유저가 지정된 홈 디렉토리 외에는 접근이 불가능하도록 하려면 "제한됨" 도 선택해주자
SSH 퍼블릭 키엔 따로 복사해뒀던 퍼블릭 키를 넣어주면 된다
4. 사용해보기
서버가 온라인 상태로 올라왔다면, SFTP를 지원하는 아무 프로그램을 열어 접속해보자
(여기선 mobaXterm 사용)
서버의 엔드포인트 복사 후 SFTP 프로그램의 새 세션을 열자
위처럼 서버 엔드포인트와 사용자 이름, private key까지 입력한 후 접속해보면
바로 접속된다. 오른쪽 부분은 S3 영역이니 아무거나 몇 개 옮겨보겠다
S3에서 확인해보면
처음에 만들었던 S3 버킷의 사용자이름 폴더에 데이터들이 잘 들어와있는걸 확인할 수 있다
결론
SFTP, FTP 서버를 따로 설정하지 않고 간편하게 사용할 수 있단게 정말 편리한 것 같다
그러나 편하고 좋은건 역시 비싸다 - 가격 확인
엔드포인트 활성 시간당 $0.3에다가, 데이터 전송 시 GB당 $0.04이다
본 실습처럼 S3에다가 데이터를 옮기는 경우엔 솔직히 비효율적인 것 같다 (awscli s3 명령이 훨씬 나을듯)
그러나 SFTP 서버를 AWS 내에 구축해야 하는 경우에 EC2 + EBS + 서버 세팅(노동력) 등등을 생각했을 땐 나쁘지 않은 선택인 것 같으며, EFS에 데이터를 옮겨야 할 경우 굉장히 편리할 것 같다
끝
'공부 > AWS' 카테고리의 다른 글
[AWS] Transit Gateway Multi Region 구축하기 (2) | 2021.06.15 |
---|---|
[AWS] Amazon Interactive Video Service(IVS) 라이브 스트리밍 실습 (2) | 2021.06.04 |
[AWS] NACL vs Security Group (Stateless와 Stateful 차이) (4) | 2021.05.31 |
[AWS EC2] Marketplace AMI id 알아내는 법 (2) | 2021.05.25 |
[AWS] AWS Backup 서비스 개념 정리 (0) | 2021.04.28 |
댓글