aws15 [AWS] API GateWay로 Lambda를 호출하여 S3의 파일을 SFTP 서버로 데이터 전송하기 (lambda import) 본 포스팅에서는 Lambda로 SFTP 서버에 S3 버킷의 파일을 SFTP 서버로 전송하는 방법을 다룬다. Lambda는 AWS에서 제공하는 서버리스 서비스로 AWS 리소스와 연계가 용이하다는 장점이 있다. 이 Lambda는 특정 이벤트가 발생하였을 때 동작하며, 이를 트리거라고 한다. AWS에서는 EventBridge (cron을 작성하여 주기적으로 lambda 실행 가능), API GateWay 등 다양한 트리거를 제공하며 본 포스팅에서는 API GateWay로 REST API를 lambda에 보내는 방법을 테스트한다. (매월 28일 데이터 전송과 같이 주기적인 작업이 필요 할 경우 EventBridge를 사용하면 좋다) 본 테스트에는 다음과 같은 사전 준비가 필요하다. SFTP 서버 SFTP 서버에.. 2022. 3. 3. [AWS/Lambda] Lambda에 외부 라이브러리 import 하기 (Lambda layer) Lambda 개발을 하다보면, 파이썬에서 기본으로 제공하고있지 않은 외부 라이브러리나 패키지가 필요할 수 있다. 예를들어, 외부 라이브러리 중 하나인 paramiko를 사용하고자 할 때 람다 함수에 import paramiko 시도 후 테스트를 돌리면 다음과 같은 오류를 만나게된다. Unable to import module 'lambda_function': No moudle named ' ' Response { "errorMessage": "Unable to import module 'lambda_function': No module named 'paramiko'", "errorType": "Runtime.ImportModuleError", "stackTrace": [] } AWS에서는 이러한 외부 라.. 2022. 3. 3. [AWS/Transfer family, S3] AWS Transfer family와 S3로 SFTP 서버 구성하기 본 포스팅에서는 AWS Transfer family를 사용해서 S3를 SFTP 서버로 사용하고 접속하는 방법을 다룬다. Transfer family는 S3와 EFS에대해 보안전송을 지원하며, 지원 프로토콜은 다음과같다. Secure Shell (SSH) File Transfer Protocol (SFTP) File Transfer Protocol Secure (FTPS) File Transfer Protocol (FTP) 1. S3 버킷 생성 AWS S3 버킷을 생성한다. 버킷의 이름은 본인 계정과 다른 계정에 대해 모두 중복되지 않는 이름으로 정한다. 파블릭 액세스 접근은 사용 목적에 따라 다르게 설정한다. 나는 이 S3 객체에 대해서는 퍼블릭 액세스를 차단하고, SFTP 용도로만 사용할 것이므로 모든.. 2022. 2. 25. [AWS/CodeBuild] 서울 리전 CodeBuild에서 빌드된 Docker 이미지를 arm64 인스턴스에서 사용가능하도록 하는 방법 CodeBuild는 AWS에서 제공하는 소스코드 빌드 서비스이다. CodeBuild는 수행되면 컨테이너를 임시로 생성하여 해당 환경에서 소스코드 빌드, docker image 생성, docker push 등을 수행하게된다. AWS에서 arm 기반 인스턴스(A1, M6g 등)는 동 성능대비 비용 절감의 효과가 있어 선택하는 경우가 있을 것이라고 생각된다. 서울리전에서 이 인스턴스에 CodeBuild에서 빌드된 docker image를 실행시키고자 하면 정상동작되지 않는다. 이유는 docker build를 수행한 CodeBuild (x86_64)와 컨테이너가 실행될 인스턴스(arm)의 명령체계가 달라서이다. 공식 문서에따르면 CodeBuild는 현재 x86_64와 arm 이미지를 지원하나, 서울리전 (ap-.. 2022. 2. 18. 이전 1 2 3 4 다음