Amazon S3 버킷에 대한 파일 (csv) FTP 자동화

Aug 31 2020

Amazon S3 버킷에 대한 데이터 업로드 / 수집을 자동화하고 싶습니다. FTP to S3 용 Filezilla와 같은 소프트웨어를 사용하고 싶지 않습니다.

파일은 매일 FTP 서버에서 사용할 수 있습니다. FTP 서버에서 해당 파일을 선택하여 매일 Amazon S3에 저장하고 싶습니다. 비용 효율적인 방식으로 AWS에서 실행할 크론 작업 또는 스크립트를 설정할 수 있습니까? 이를 달성하는 데 도움이되는 AWS 인스턴스는 무엇입니까?

파일 크기는 약 1GB입니다.

답변

2 JohnRotenstein Aug 31 2020 at 14:44

Amazon S3는 객체 스토리지 서비스입니다. 외부 위치에서 데이터를 "가져올"수 없습니다.

따라서 다음을 수행하는 스크립트 또는 프로그램이 필요합니다.

  • FTP 서버에서 데이터를 검색하고
  • Amazon S3에 데이터 업로드

FTP 서버 자체에서 이러한 스크립트를 실행하여 먼저 FTP 서버에서 다운로드 할 필요없이 데이터를 S3로 전송할 수 있도록하는 것이 가장 좋습니다. 이것이 가능하지 않은 경우 자신의 컴퓨터 또는 Amazon EC2 인스턴스와 같은 인터넷의 모든 컴퓨터에서 스크립트를 실행할 수 있습니다.

Amazon S3에 업로드하는 가장 간단한 방법은 AWS 명령 줄 인터페이스 (CLI)를 사용하는 것 입니다. aws s3 cp파일을 복사 하는 명령이 있거나 복사해야하는 항목에 따라 aws s3 sync새 파일 또는 수정 된 파일을 자동으로 복사 하는 명령 을 사용하는 것이 더 쉬울 수 있습니다 .

스크립트는 일정 (Linux의 경우 cron 또는 Windows의 예약 된 작업)을 통해 트리거 될 수 있습니다.

Amazon EC2 인스턴스를 사용하는 경우 필요하지 않을 때 인스턴스를 꺼서 비용을 절약 할 수 있습니다. 흐름은 다음과 같을 수 있습니다.

  • AWS Lambda 함수를 트리거 하는 Amazon CloudWatch 이벤트 규칙 생성
  • AWS 람다 함수를 호출 할 수 있습니다 StartInstances()중지 된 EC2 인스턴스를 시작합니다
  • 아마존 EC2 인스턴스 시작 스크립트를 사용하여 프로세스를 실행하는 것 (자세한 내용은 아래를 참조) 할 수 있습니다
  • 프로세스가 끝나면 운영 체제에 종료 ( sudo shutdown now -h) 를 알립니다.

이것은 많은 단계처럼 보일 수 있지만 CloudWatch 이벤트 및 Lambda 함수는 구성하기가 간단합니다.

Linux 인스턴스가 시작될 때마다 스크립트를 실행하려면 다음 위치 에 넣으십시오./var/lib/cloud/scripts/per-boot/

참고 항목 : 작업 완료시 EC2 인스턴스 자동 중지-DEV Community