서버리스 Dependency 설치 (feat: lambda) 공부정리중 목차 실행 확인 환경파일 확인 python 도구를 이용하여 dependency 파일 한번에 설치하기 실행확인 내가 짜놓은 코드가 servelress 파일이 제대로 동작하는지 확인하는 방법 offline 도 있다고 들었지만, 현재 내가 배우고 있는 교제에서는 docker의 public.ecr.aws/lambda/nodejs:[node버전] 의 방법을 이용하여 테스트가 가능하다 # nodejs 18버전 app.handle 이 실행파일인 경우 docker run -it -p 8080:8080 -v $PWD:/var/task public.ecr.aws/lambda/nodejs:18 app.handler # curl test curl loca..
서버리스 이미지 최적화 (Serverless Image Optimizer) 목표 서버리스 이미지 최적화 만들기를 통하여서 aws serverless 아키텍쳐 이해 serverless 프레임워크 이해 typescript 로 작성하며, typescript 이해 이미지 최적화 아키텍쳐 온디멘드 방식 -> 이미지 업로드 즉시 처리하여 s3 에 업로드 이벤트 직접 호출 방식 이벤트 구독 방식 필수 설치 serverless framework aws cli option 설치 direnv 환경설정 aws cli 설치 # aws cli 설치 brew install awscli # aws 인증 설정 aws configure # AWS Key ID : [AWS Console IAM 에서 발급받은 Key ID] # AWS S..
RDS Proxy 는 2019년 12월에 발표된 AWS 의 서비스입니다. 관계형 DB의 connection 을 관리해주는 서비스인데, 사실 Java 개발자들은 이게 왜 필요하지 싶겠지만, 서버리스( 예 : Lambda ) 나 php, ruby 같은 언어에서는 이부분이 상당히 머리 아픈 구석이었습니다. 구글링을 해보면 여러가지 사례들이 있습니다. 우리도 해당 사례들과 비교해보며 서버에 스트레스 테스트를 해보았지만, 앞선 업체들과는 다른 양상을 보여 도입에 대한 고민을 엄청 했습니다. 저희 같은 경우는 PHP Laravel을 AWS ECS Fargate 에 올린 상태입니다. 즉 DB pool 관리는 안해주는 대환장 파티이다. 이번에 RDS Proxy를 적용하며 바뀐 DB 메트릭을 공개하려고 한다. 자신이 서..
codepipeline 과 slackbot 으로 스마트하게 배포하기 스크린샷 및 코드 준비중 내용 : 1. github push 하면 docker 자동 빌드 및 테스트 2. 빌드가 완료되면 배포 직전에 confirm 을 slack bot 으로 받기 3. slack 에서 최종 컨펌을 하면, 배포 시작 4. 배포가 완료 및 실패가 되면, slack으로 알림 받기 빌드 트리거는 github action 과 codepipeline으로 하는 방법 2가지가 있지만, 트리거로 종류로는 비용이 바뀌지 않으니 codepipeline 에서 처리하는 것이 관리적 측면에서 좋음. 순서 : codepipeline 에서 트리거 push 할 때 작동되록 설정 buildspec.yml 에서 빌드 및 테스트 confirm 에서 SNS..
스크린샷 준비중 CODE 영역 Dockerfile 생성 buildspec.yaml 작성 AWS 영역 클러스터 생성 리포지토리 생성 작업 정의 생성 SG 생성 application load balancer 생성 (미리 해둬야 편함) target group 생성 (load balancer 생성 할때 미리 생성, 필수는 아님) 서비스 및 작업 생성 서비스는 항상 돌아가는 개념 작업은 1회성 개념이 강함 하지만 서비스도 내부에서는 작업 예약된 작업 크론 작업 서비스 생성 (작업도 비슷) 시작 유형 fargate 작업정의, 클러스터 선택 서비스 이름 생성 ( 생성 후 이 이름이 노출됨 ) 작업 갯수 ( 몇개의 작업을 돌릴지 선택 ) 후에 나오는 오토 스케일링과 콤보를 이룰수 있음. 최소 정상 상태 백분율 및 최대..
DB 데이터가 완전히 일치하지 않는 문제 DB 이전시 deleate_at 같은 몇몇 컬럼들이 이전 시간 값이 박혀 있다. 스키마에 default 값이 뭔가 없던것이 박혀 있다. 해결 : 스키마는 dump로 이전 값이 일부 안들어온다. 혹은 에러 발생 외래키 무시 옵션 시간이 계속 틀리다 endpoint 에 타임 zone 설정등이 있다. https://docs.aws.amazon.com/ko_kr/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.ConnectionAttrib