S3 Object Lambda
- S2 버킷이 있는데 호출자 애플리케이션이 객체를 받기 직전에 그 객체를 수정하려는 경우에 "S3 객체 람다"를 사용한다.
- 버킷을 복제해서 버킷에 각 객체의 다른 버전을 갖는 대신에 S3 객체 람다를 사용할 수 있다.
- 이걸 하기 위해서는 전 게시글에 있었던 'S3 액세스 포인트'가 필요하다
작동방식
- 위의 이미지에 클라우드가 있고, 그 안에는 S3 버킷이 있다. 그리고 어떤 전자상거래 애플리케이션이 이 S3 버킷 안의 데이터를 소유하고 있다. 그럼 직접 S3 버킷에 액세스하고 원본 객체를 받거나 넣을 수 있다.
하지만 분석기 애플리케이션은 변경된 객체, 즉 약간의 데이터가 삭제된 객체에만 액세스하려고 할 수 있다. 그러면 우리는 그걸 위해 새로운 S3 버킷을 만들지 않고 S3 버킷 외에 S3 액세스 포인트를 만들 수 있고 그게 람다 함수에 연결되어 있다. - 람다 함수를 사용하면 클라우드에서 아주 쉽게 코드를 실행할 수 있다. 그러면 객체를 받는 중에 그 객체에서 데이터를 삭제할 것이다. 그리고 이 람다 함수 외에도 우리는 S3 객체 람다 액세스 포인트를 만들어야한다. 그리고 분석기 애플리케이션은 이런식으로 S3 버킷에 액세스하게 된다.
- 분석기 애플리케이션은 우리의 S3 객체 람다 액세스 포인트에 액세스하는데 그러면 람다 함수가 호출된다.
- 람다 함수는 S3 버킷에서 데이터를 받고, 어떤 코드를 실행해서 데이터를 삭제한다. 그래서 분석기 애플리케이션은 전자 상거래 애플리케이션과 동일한 S3 버킷으로부터 데이터가 삭제된 객체를 받게 되는 것이다. - 마케팅 애플리케이션은 데이터가 보강된 객체에 액세스 하려고 할 수 있다. 데이터를 보강하는 고객 충성도 데이터베이스를 가지고 있고, 새로운 S3 버킷을 생성하고 모든 보강된 데이터가 있는 객체를 생성하는 대신에 우린 역시 람다 함수를 사용할 수 있다.
- 고객 충성도 데이터베이스에서 데이터를 검색해서 데이터를 보강하게 될 것이다. 그러면 우린 또 별도로 객체 람다 액세스 포인트를 만들 수 있다. 그러면 우리의 마케팅 애플리케이션은 S3 객체 람다 액세스 포인트에 액세스해서 보강된 객체를 받을 수 있다. - 액세스 포인트와 객체 람다를 만들어서 우리가 원하는대로 데이터를 수정할 수 있다.
활용사례
- 분석기나 비프로덕션 환경을 위해 PII 데이터, 즉 개인식별정보를 삭제하는 경우
- 데이터 형식을 XML에서 JSON으로 변환하는 경우
- 즉석에서 이미지 크기를 조정하거나 워터마크를 추가하는 등의 원하는 변환을 수행하는 경우 등등
- 하지만 워터마크는 객체를 요청하는 사용자에게만 적용될 것이다.
'AWS(Amazon Web Service)' 카테고리의 다른 글
[AWS] Global Accelerator (0) | 2024.11.14 |
---|---|
[AWS] CloudFront (1) | 2024.11.13 |
[AWS] Amazon S3 - Access Points (0) | 2024.11.11 |
[AWS] Amazon S3 - Glacier Vault Lock (0) | 2024.11.10 |
[AWS] Amazon S3 - Pre-Signed URLs(미리 서명된 URL) (2) | 2024.11.09 |