본문 바로가기

CSP (Cloud Service Provider)/AWS425

S3 Lifecycle 설정 시 주의 사항 S3 Lifecycle 설정은 객체 관리와 비용 최적화에 유용하며, 설정 시 아래 내용들을 알아두면 좋겠다.1. Prefix와 적용 범위prefix는 해당 경로 아래의 모든 객체에 적용된다.prefix 자체도 규칙에 포함된다.예를 들어:prefix: hamster/abc/적용 대상: hamster/abc/file1.txt, hamster/abc/def/file2.txt2. 와일드카드 미지원Lifecycle 규칙의 prefix에는 와일드카드(*)를 사용할 수 없다.필요한 경우 각각의 경로를 별도로 지정해야 한다.예:hamster/abc* ❌ (불가)hamster/abc1/, hamster/abcd/ ✅ (가능)3. 기존 객체에도 규칙 적용Lifecycle 규칙은 생성 이후에도 기존 객체를 대상으로 적용된다.. 2024. 12. 6.
CloudFront Request Header Null 값 AWS CloudFront를 사용하면서 요청 헤더를 활용하는 경우가 있는데, 그 중 사용자의 국가 정보를 포함하는 헤더인 CloudFront-Viewer-Country 헤더를 기반으로 콘텐츠를 맞춤 제공하거나 액세스 제한을 설정할 수 있다. 그러나 해당 헤더의 값이 비어 있는 경우가 발생하는 경우가 있는데, 이는 AWS CloudFront가 3rd Party 지리적 데이터베이스 서비스(ex. MaxMind)를 사용하여 CloudFront-Viewer-Country와 같은 사용자의 위치 정보를 조회하고 각 필드에 맞는 값을 표기하기 때문이다. 정리 하면 아래와 같은 이유로 값이 비어 있을 수 있다.데이터베이스에 정보가 없는 경우: MaxMind 데이터베이스에 특정 IP 주소의 위치 정보가 없을 경우, Cl.. 2024. 10. 24.
비용 소모 없이 DynamoDB Item 삭제하기 DynamoDB 개념Item (항목): DynamoDB 테이블의 각 행(Row)을 나타내는 데이터 레코드Attribute (속성): 각 항목(Item) 내에 포함된 개별 데이터 필드, 열(Column)이라고 생각하면 편함{ "UserID": "12345", "Name": "Alice", "Age": 30, "Address": "123 Main St"}전체가 **item**, 각 "UserID", "Name", "Age", "Address"가 **attribute**삭제 비용이 발생하는 이유DynamoDB에서 Item이나 Attribute를 삭제하는 작업도 쓰기 요청으로 처리되며, 삭제 작업을 수행할 때마다 데이터 양에 따라 **WCU(Write capacity units)**이 사용되고, 삭제할 .. 2024. 10. 24.
API Gateway 개별 Cache 삭제 방법 먼저 API gateway 서비스에서는 단계별 메소드 별 Cache 기능을 제공하고 있으며, 콘솔 및 ‘FlushStageCache’ API 를 통해 전체 캐시를 무효화하는 기능을 제공하고 있다. 그러나 API gateway 에서 개별 캐시 항목을 직접 삭제하는 기능은 따로 제공되지 않아, 특정 캐시 항목만 삭제하는 데 제한이 있다. 이런 기능을 제공하지 않는 이유는 API gateway 의 캐싱은 전체 API 스테이지에 대한 캐시를 생성하는 방식으로 동작하고, 성능 및 일관성의 유지를 위한 최적화를 때문인데, 아무래도 캐시를 개별 관리하게 되면 리소스 소모량이 많아져 성능에 영향을 미치게 되는 이유지 않나 싶다. 물론 ‘Cache-Control: max-age=0’ 헤더 사용를 사용하여 특정 요청에 대.. 2024. 8. 13.
API Token Bucket Token Bucket 알고리즘이란Token Bucket 알고리즘은 네트워크 속도 제어 알고리즘 중 하나로, 특정 양의 데이터를 일정한 속도로 전송하고자 할 때 사용된다고 한다.AWS에서 Token Bucket 알고리즘이란?AWS 모든 서비스는 API 기반으로 동작하고, Amazon API Call은 토큰 기반으로 동작하며, Token Bucket 알고리즘을 따른다고 한다.Bucket에 Token을 넣어두고, 패킷(API)이 전송될 때마다 이 Bucket에서 Token을 소비하도록 하는데, Token이 충분하다면 패킷을 전송하고, Token이 부족하다면 패킷을 버린다. → (API Throttle)여기서 Bucket의 크기는 한 번에 전송할 수 있는 최대 데이터 양을 의미하며, Token을 생성하는 속도.. 2024. 7. 22.
AWS - Database Data 이관/전송하기 (DMS) AWS Database Migration Service (이하 DMS) 는 AWS 에서 제공하는 데이터베이스를 안전하게 마이그레이션 할 수 있는 솔루션입니다. 특징1. 마이그레이션에 필요한 설정 및 작업이 간단하다사용법1. 인스턴스가 생성 될 서브넷 그룹을 생성한다. (동일 VPC간 이전일 경우 Source 와 Target을 모두 접근할 수 있는 영역으로 선택하면 된다. 2. 데이터를 복제할 인스턴스 생성 후 Source 와 Target 을 연결하는 엔드포인트를 생성   2-1 인스턴스 생성Instance class : 이관 작업을 진행할 인스턴스의 스펙입니다. 고스펙으로 빠르게 진행하는 것을 권장 합니다.High Availability : 일회성 DB 통합 작업에는 Single-AZ 를 사용해도 무관합.. 2024. 6. 28.
[AWS] Lambda Connection Handler 베하! 1-tier팀의 One입니다.그간 바쁜 업무로 인해 포스팅을 많이 하지 못했는데요 오늘 그간 밀려 있던 포스팅을 열심히 해보려고 합니다. 업무 중에 새로 습득한 지식을 마구 마구 방출 할 예정인데요 😊😊모두 모두 집중 해주세요 👀 4월에 아주 좋은 기회로 AWS workshop에 참석하게 되었는데요!그때 알게된 서비스에 대해 설명해보려고 합니다. Lambda Connection HandlerAWS상에서 네트워크 리소스에 접근 할때, 보안을 위해 VPN을 많이 사용하는데요,원격 근무자가 AWS 환경에 연결된 네트워크에 안전하게 접속하기 위해 Client VPN을 사용합니다. 만약 원격 접속하려는 근무자가 많을 경우, 관리자가 이를 다 관리하기 힘들텐데요이때 Lambda Connection Ha.. 2024. 6. 17.
CodeBuild - empty git-upload-pack given for primary source and source version refs/heads/develop 갑자기 개발 팀에서 갑자기 배포가 안된다는 내용을 전달 받고 확인해보니 CodeBuild에서  에러를 자꾸 뱉고 있는 걸 확인했다. 잘 돌아가던 CodeBuild에서 특별히 설정한 것도 없는데, 문제가 생겨 모든 환경의 애플리케이션 배포가 실패하고 있단다. 문제를 해결하려면 로그부터 확인해보자 아래와 같은 메세지가 나오면서 배포가 되지 않고 있었다.# 로그 발생 메세지[Container] YYYY/MM/DD HH:mm Running on CodeBuild On-demand[Container] ...502885 Waiting for agent ping[Container] ..804890 Waiting for DOWNLOAD_SOURCEempty git-upload-pack given for primary .. 2024. 6. 13.