개발/AWS (9) 썸네일형 리스트형 [AWS] NodeJS Lambda에서 ffmpeg 사용하기 사이드 프로젝트를 람다로 구현하는 중에 하나의 허들이 있었으니 바로 ffmpeg기능을 활용하는 부분이었습니다. 람다 용량 제한이 25MB정도인데 ffmpeg 패키지 사이즈만 30 MB정도 됩니다. 번들링은 할 수 없다는 의미.. 람다 자체를 dockernize해서 올리려고도 해봤으나 AWS에서 제공하는 기본 도커 이미지에 ffmpeg 를 추가하는게 쉽지 않았습니다. 반나절 정도 이걸로 삽질하다가 다른 방법을 찾아 나섰죠. 결국 최종적으로 선택한 방법은 Layers로 ffmpeg를 따로 구성하고 람다에 추가하여 활용하는 방식입니다. 이걸로 시도한지 두어시간만에 성공해서 하루동안의 삽질이 아름답고 허무하게 끝났네요.. 1. FFMPEG 빌드 파일을 .zip으로 압축 우분투 EC2 인스턴스를 하나 띄워서, .. Docker로 Lambda 이미지 만들어 배포하기 📄 목차 1. 프로젝트 준비 빈 프로젝트에 package.json, app.js, Dockefile을 만들어줍니다. 일단 빈 람다를 Dockerize해서 올려보겠습니다. Dockerfile FROM public.ecr.aws/lambda/nodejs:18 # Assumes your function is named "app.js", and there is a package.json file in the app directory COPY app.js package.json ${LAMBDA_TASK_ROOT}/ # Install NPM dependencies for function RUN npm install # Set the CMD to your handler (could also be done as a p.. [AWS] S3 정적 호스팅을 CloudFront에 연결하기, https 설정, 가비아 도메인 연결 1. 가비아에서 구매한 도메인을 AWS Route53에 연결 AWS Route53에 구매한 도메인과 동일한 public hosting 영역을 생성 ex) exmple.kr NS 레코드 4개를 가비아에 등록 가비아 > 도메인 > 네임서버 1~4차 2. AWS Certificate Manager AWS ACM 콘솔에 들어가서 등록한 도메인 (example.kr, *.expamle.kr)에 대한 인증서 발급 이 때 리전은 꼭 us-east-1(버지니아 북부)로 해야 함!! 그래야 cloudfront에 인증서 적용 가능 DNS검증을 선택하고 대기하면 검증보류 > 검증 완료로 변경됨 3. CloudFront배포 설정 호스팅된 S3(example.kr.s3-website.ap-northeast-2.amazonaws.. [AWS] CDK 시작하기 & Argument of type 'this' is not assignable to parameter of type 'Construct' 이슈 해결 1. CDK Cli 설치 및 CDK bootstrap AWS CDK CLI를 설치하려면 먼저 Node Package Manager(NPM)가 설치되어 있어야 합니다. # npm으로 aws-cdk 설치 npm install -g aws-cdk # 성공적으로 설치 되었는지 확인 cdk --version # > 2.20.0 (build 738ef49) 배포하게 될 대개의 AWS CDK 스택들은 스택과 함께 배포되는 외부 파일(예: AWS Lambda 함수나 Docker 이미지) 등의 자산을 포함하고 있습니다. CDK는 이를 Amazon S3 버킷 또는 기타 컨테이너에 업로드하여 배포 중에 AWS CloudFormation에서 사용할 수 있게 합니다. 배포하려면 이러한 컨테이너가 AWS 계정 및 배포하려는 리전.. [AWS] 컨테이너 기반 Lambda 생성하기, Lambda에서 S3업로드 프로젝트 내에서 음성파일 분석을 위해 파이썬 Librosa 라이브러리를 활용해야 했는데요, 전체프로젝트를 서버리스로 구성할 계획이어서 이 부분도 람다로 추가해보았습니다. 일반적으로 람다에 외부 라이브러리를 활용하려면 Lambda layers를 이용하면 되지만, librosa는 패키지 사이즈가 커서 이 방법으로는 업로드가 어려웠습니다. EFS에 패키지를 설치하고 람다에 EFS를 마운트하는 방법도 있었지만 제가 시도해보니 잘 안되어서.. 람다 전체를 도커로 컨테이너화 해서 올리는 방법을 택했습니다. 01. 람다 핸들러 소스코드 작성 람다 핸들러 소스코드를 작성해줍니다. 아래 코드는 쿼리패러미터로 입력받은 url에 대해서 librosa의 split(묵음 구간 식별)를 수행하고 결과를 boto3라이브러리를 이용.. [AWS] Lamda + API Gateway 시작하기 | GET, Query String 전달, json.dumps 한글 깨짐 해결 람다 간단하대서 써볼려했더니.. 엄청 삽질했네요;; Lamda + API Gateway를 활용하여 간단한 API를 개발해보겠습니다. 1. API 규격 이번에 만들 api 는 GET/test 입니다. GET /test - queryString으로 first_name과 last_name이 있을 경우 : body에 hello {first_name} {last_name} 반환 - queryString이 비어있을 경우 : body에 hello anonymous 반환 2. Lambda 함수 생성 AWS Lambda > 함수생성 > 새로작성 test라는 이름의 함수를 하나 만들어 주었습니다. 새로 생성한 함수로 들어가서 코드 탭에서 코드를 원하는대로 편집합니다. 람다에서는, event 인자를 통해 request인자들.. [AWS] AWS CDK 시작하기 (1) | Javascript, AWS Configure, CDK Init, CDK deploy, lambda, api gateway 📄 목차 1. AWS & CDK 설정 AWS Configure 기존에 aws configure를 통해 AWS와 로컬이 연결되어 있다면 건너뛰어도 됩니다. aws configure list AWS의 IAM에서 키페어(AWS Access Key, AWS Secret Access Key) 발급 참고) 키페어 발급 https://docs.aws.amazon.com/ko_kr/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-creds terminal에서 aws configure 커맨드를 통해 aws 계정 연결 $ aws configure AWS Access Key ID: [aws 에서 IAM생성하여 입력] AWS Secret .. AWS 솔루션 아키텍트 AWS-SAA(C02) 공부방법/합격후기 01. 왜 AWS SAA 공부를 시작했나? 나는 작년까지는 아키텍쳐나 CI/CD쪽 업무를 볼 일이 거의 없었다. 아키와 CI/CD가 다 잡힌 상태에서 개발을 하는게 주요 업무였고, 네트워크상에 문제가 있다거나 젠킨스 빌드에 오류가 난다거나 하면 담당자분이 해결해주셨다. 이 시험을 준비하기 전 나의 AWS에 대한 이해도는..EC2 인스턴스 몇 개 만들어본 정도.. VPC나 Subnet등 네트워크 기본 개념도 '들어만 봤다'정도였다. (단적으로 Private subnet과 Public subnet이 뭐가 다른지 몰랐다...) 팀을 바꾼 후에는 서비스 구조가 좀 더 복잡해지고 아키텍쳐만을 봐주시는 분이 따로 계시지 않았기에, AWS 서비스에 대한 이해도를 높이고 싶었고, 꼭 업무적으로가 아니더라도 기본적으로 .. 이전 1 2 다음