본문 바로가기

CSP (Cloud Service Provider)/AWS424

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.
S3 취약점 - 허용되지 않은 요청에 S3 요금 부과되는 현상 어느 사용자가 AWS S3 테스트 버킷을 eu-west-1 지역에 만들고 일부 파일을 업로드했는데, 며칠 후 AWS 청구 페이지에서 예상치 못한 비용을 발견하였는데, 하루 동안 약 1억 건의 S3 PUT 요청이 발생하는 것을 확인하였다.엥 이게 뭐지? 싶었겠지 그래서 확인해보니 AWS 기본 설정으로는 S3 버킷에 대한 요청이 기록되지 않지만, CloudTrail 로그를 통해 외부 계정에서 대량의 쓰기 요청이 들어오고 있음을 발견하였음.그런데 왜?유명한 오픈소스 라이브러리 중 하나가 기본 설정으로 S3에 백업을 저장하는 기능이 있는데, 하필 오픈 소스 샘플 코드에 하필 해당 사용자와 같은 버킷 이름을 사용하고 있었음. 아무도 안쓰는 줄 알았겠지. S3 bucket name은 global unique  bu.. 2024. 5. 21.