최신 포스트
-
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.06
-
k8s KEDA 사용하기
KEDA는 HPA와 달리 여러 종류의 스케일링을 지원하는데, 원하는 metadata를 선택하면 그에 해당 하는 조건의 autoscaler를 생성할 수 있다.Scaling을 위한 HPA를 KEDA가 생성하고 참조하기에 기존 HPA가 있을 경우 충돌할 수 있다.기존 HPA 소유권 이전도 된다고 한다.KEDA 설치설치 방법 (Helm)$ helm repo add kedacore $ helm repo update$ helm install keda kedacore/keda --namespace keda --create-namespace --set installCRDs=true잘 설치 되었는지 helm list -A 명령어로 확인할 수 있다. 또한 yaml 설치도 가능하다.KEDA | Deploying KEDA K..
2024.11.25
-
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
-
LangSmith 설치
베하~ 안녕하세요 1-Tier팀 입니다.이번에는 LangSmith 설치 방법에 대해 알아보려고 합니다.생각보다 설치는 간단하니 관심있으면 직접 해보셔도 좋을 것 같습니다! 그럼 시작하겠습니다~!설치 과정github에서 하위 파일 3개를 원하는 위치에 복사하여 가져옵니다.docker-compose.yamlusers.xml.env.example* .env.example 파일은 .env로 이름을 변경하여 사용* user.xml 파일은 그대로 사용 했습니다. 본 포스팅에서는 /data001/langsmith 경로에서 생성 및 진행했습니다.# docker-compose.yamlservices: langchain-playground: image: langchain/langsmith-playground:${_..
2024.10.14
-
Karpenter의 k8s 효율적인 자원관리
karpenter는 node를 정리 및 통합하는 디-프로비저닝(de-provisioning) 메커니즘이 있다.pod가 별로 없거나 놀고 있는 node를 정리하여 비용을 아낄 수 있겠다.1. Consolidation (통합)기능: consolidation은 클러스터 내에서 자원이 비효율적으로 사용되고 있을 때, 노드를 통합하여 자원을 최적화하는 기능작동 방식:Karpenter가 클러스터 내의 자원 사용률을 모니터링자원 사용률이 낮은 노드들에서 실행 중인 파드를 다른 노드로 이동할 수 있는지를 체크이동이 가능하다면, 자원이 덜 사용되고 있는 노드들을 통합하여 불필요한 노드를 종료❓ 어떤 노드를 통합할지는 Karpenter 내부 최적화 알고리즘에 의해 결정되는 것 같다. spec: consolidation..
2024.09.27
-
MaaS (Metal as a Service)
베하~ 안녕하세요 1-Tier 팀 입니다.오늘은 수십, 수백대의 서버의 OS 환경을 관리할 수 있는 베어메탈 서비스인 MASS에 대해 알아보고자 합니다.그럼 MASS 가 뭔지 바로 알아볼까요?MAAS (Metal as a Service) 란?베어 메탈 서버와 가상 머신을 관리하기 위한 클라우드 플랫폼으로, 네트워크, 머신 및 OS 이미지에 대한 확장 가능한 자동화, 재구성 및 안정성을 위한 단일 제어 지점을 만듭니다.물리적인 서버들을 관리하기 위한 용도로 사용하며 같은 네트워크 대역대의 서버 환경을 중앙 제어할 수 있도록 하고 콘솔 뿐만 아니라 GUI 환경도 제공하여 편리하고 직관적으로 파악 및 조작이 가능합니다. 주요기능- 하드웨어 리소스 관리- 관리 대상 노드에 대한 모니터링- DHCP / DNS ..
2024.09.09
-
Teams Workflow 생성하기
베하~!! 안녕하세요 1-Tier 팀 입니다.Teams Webhook 기능 Expire 에 따라 알림 수신 대체재로 Workflow를 사용해야 하는 상황이 발생했습니다.MS 측에서 기한을 늘려줬으나 실무에서 사용중이었던 모든 Teams Webhook을 수정해야 하는 번거로움이 발생했고 해당 업무를 수행하며 Workflow 생성 과정을 정리하면 좋을 것 같아 본 게시물을 작성하게 되었습니다. 대상 앱: Incoming Webhook ( OS365 connector)신규 앱 생성 중단일: 2024-08-15기존 앱 작동 중단일: 2024-10-01 => 2025.12 에 중단으로 변경되었으나 2024년 12월 31일 이후에도 사용하려면 URL 업데이트가 필요하며 만료 90일 전 Teams 측에서 지침 전송..
2024.08.20