본문 바로가기

반응형

AWS Lambda ƛ

(17)
Lambda@Edge # Lambda@Edge 구성하기 1. 생성 - 버지니아 북부 리전에서 Lambda를 생성한다. 배포는 아래와 같이 작업 버튼을 클릭하여 배포가 가능하다. 배포를 클릭하면 아래와 같이 CloudFront의 단일 배포로 이루어 진다. - 생성을 하면 생성이 안된다. 권한을 부여해 줘야 한다. 아래의 커스텀 역할을 생성한다. { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "edgelambda.amazonaws.com", "lambda.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] } 여기서 위의 역할을 나는 edge_role_test라고 생성을 하였..
AWS Lambda & API Gateway & Route53 사용하기 # AWS Lambda & API Gateway & Route53을 활용한 서비스 1. ACM 에서 퍼블릭 인증서를 요청한다. - 완전히 정규화된 도메인 이름을 입력 - DNS 검증 - 권장 선택 2. 해당 인증서로 들어가서 아래와 같이 Route53에서 레코드 생성을 클릭 - 레코드 생성 버튼을 클릭하여 생성 한다. - 아래와 같이 생성되면 정상이다. 3. Lambda를 생성한다. - 기본 헬로우 월드를 출력하는 함수를 생성한다. - 코드는 기본코드 이다. exports.handler = async (event) => { // TODO implement const response = { statusCode: 200, body: JSON.stringify('람다 테스트 !!'), }; return res..
Lambda@Edge란? # Lambda@Edge란? 간단 정리 Lambda@Edge : 사용자에게 가장 가까운 위치에서 호출 (그래서 버지니아 북부 리전) 로그인 및 세션체크 등 빠르게 뭔가를 사용자가 응답 받아야 할 경우, Lambda@Edge 서비스를 통해 빠른 Request & Response 구현이 가능하다. AWS 의 설명은 아래와 같다. Lambda@Edge는 Amazon CloudFront의 기능 중 하나로서 애플리케이션의 사용자에게 더 가까운 위치에서 코드를 실행하여 성능을 개선하고 지연 시간을 단축할 수 있게 해 줍니다. Lambda@Edge를 사용하면 전 세계 여러 위치에 있는 인프라를 프로비저닝하거나 관리하지 않아도 됩니다. 사용한 컴퓨팅 시간만큼만 비용을 지불하고, 코드가 실행되지 않을 때는 요금이 부과되..
CloudTrail 정보를 활용하여 AWS Lambda로 개발하기 # CloudTrail에서 넘어오는 정보를 활용하여 AWS Lambda로 개발하기 1. 시나리오 작성하기 - 시나리오를 짜보면 아래와 같다. 일단 김 짱구라는 AWS 사용자가 존재한다. 김 짱구 라는 사용자는 인스턴스를 생성하면 자동으로 누가 해당 인스턴스를 만들었는지 그리고 EBS에 생성한 사용자와 인스턴스 id 를 자동으로 태깅하고 싶었다. 2. 작업시작하기 - 일단 인스턴스가 생성될때 태깅을 해야하므로 특정한 사용자가 인스턴스를 생성 했다 라는 정보를 어디선가 가져와야 한다. 가장 일반적으로 CloudTrail은 해당 계정의 AWS 리소스의 거의 모든 생성 및 변경 그리고 삭제 내역에 대한 정보를 가지고 있으므로 인스턴스가 생성될때 발생하는 이벤트 정보를 당연히 가져올 수 있다. 그럼 인스턴스가 생..
CloudTrail의 Resource 정보를 EventBridge에서 수신하는 방법 # CloudTrail의 특정 Resource 정보를 EventBridge에서 수신 후 다음 스텝을 실행하는 방법 1. 클라우드 트레일의 리소스 정보를 살펴보기 - 클라우드 트레일에서 리소스 정보가 어떤 방식으로 저장되는지 보면 아래와 같다. 일단 json 형태로 저장이 되는 것을 확인 할 수 있다. 일부 정보를 확인하면 아래와 같다. "eventTime":"2023-08-04T04:37:21Z", "eventSource":"ec2.amazonaws.com", "eventName":"DescribeVolumes", "awsRegion":"ap-northeast-2", "sourceIPAddress":"config.amazonaws.com", "userAgent":"config.amazonaws.com",..
AWS Resource 자동 태그 설정하기 # AWS 리소스 자동 태그 설정하기 클라우드 플랫폼은 서비스 = 돈 이기때문에 서비스를 생성하고 관리하는 요소가 매우 중요하다. 예를들어 m5.xlarge 인스턴스 3개를 테스트 한답시고 누군가가 생성을 해놓았다. 여러 사용자들은 해당 인스턴스가 어떤 용도로 생성이 된것인지 알수 없기 때문에 리소스 관리자를 제외하고는 관심이 없을 것이다. 그렇게 해당 리소스를 생성한 사람은 2달여간 지방으로 출장을 간다고 생각해보자. 해당 인스턴스는 2달간 아무도 사용하지 않고 적지않은 비용을 고스란히 지불해야하는 일이 발생한다. 적어도 해당 인스턴스에 누가 만들었고 어떤 용도로 생성 했는지 정도의 정보만 입력 되어 있다면 리소스 관리자는 해당 정보를 보고 리소스를 보다 유연하고 경제적으로 관리 할 수 있을 것이다. ..
Lambda Handler란? # Lambda Handler란? 간단 정리 Lambda 함수 호출시 Lambda는 핸들러 메서드를 실행한다. 그리고 당연한 이야기지만 하나의 람다에는 하나의 핸들러만 존재한다. (main 메소드?, 진입점 이라고 이해라면 되려나?...) 아래의 # 예제 코드 1에서 보면 3개의 파라미터(인수가 존재한다.) event: 첫 번째 인수는 호출자로부터의 정보가 포함된 event 객체. 이 정보는 함수를 호출할 때 호출자가 JSON 형식 문자열로 전달하고, 런타임은 이 정보를 객체로 변환한다. context: 두 번째 인수는 컨텍스트 객체이며, 호출, 함수 및 실행 환경에 대한 정보가 포함되어 있다. callback: 세 번째 인수는 callback이다. 비동기 응답을 전송하기 위해 필요하며, 위 코드와 같이..
SpringBoot 프로젝트를 AWS Lambda로 실행하기 (2) # 생성한 SpringBoot 프로젝트를 AWS Lambda에서 실행하기 2023.05.26 - [AWS Lambda ƛ/Lambda & SpringBoot] - SpringBoot 프로젝트를 AWS Lambda로 실행하기 (1) - 첫번째 과정은 위의 링크를 참고한다. 1. SpringBoot 코드를 zip으로 빌드하기 - 코드가 존재하는 폴더로 이동한다. 이동 후 아래의 명령어를 실행하여 코드를 zip 파일로 생성한다. 생성 경로 : ./build/distributions/{file_name}.zip 실행 코드 : gradlew buildZip or ./gradlew buildZip - gradlew buildZip 명령을 실행하면 ./build/distributions 디렉토리에 zip 파일이 생성..

728x90
반응형