목록전체 글 (247)
잡다한 IT 지식
1. Custom Controller 기반 Cluster AutoscalingUnschedulable 이벤트가 발생하면 custom controller 또는 watcher가 이를 감지(현재 트래픽 기반으로 추가 개수 설정)AWS CLI 또는 SDK를 통해 EC2 인스턴스를 생성 (Auto Scaling Group 또는 직접)EC2는 User Data를 통해 kubeadm join을 자동 실행하여 클러스터에 등록Pod가 정상적으로 스케줄됨고려사항kubeadm join을 어떤 방식으로 구성할 것인지 결정 필요인증서 기반: /etc/kubernetes/pki를 S3 등에 저장 → 보안 문제 발생 가능성토큰 기반: kubeadm token create → EC2 인스턴스에 안전하게 전달하는 방식 필요토큰 만료 ..

문제 상황저희 팀 프로젝트는 사기 의심 거래가 발생하면 FCM을 통해 사용자에게 알림을 보내도록 설계했습니다.이제 첫 테스트를 하는 중인데 첫 번째 알림 발송까지 무려 33초가 걸렸습니다.아래는 CloudWatch Log insights를 통해 추출한 로그입니다.[ { "@timestamp": "2025-07-09 08:50:41.765", "@log": "secret:/aws/lambda/FinGuard-Backend-dev-createTransaction" }, { "@timestamp": "2025-07-09 08:51:14.996", "@log": "secret:/aws/lambda/sns-receive-and-send-fcm" ..

팀프로젝트 중, 백엔드 개발 담당 팀원이 Lambda 함수가 SageMaker와 통신이 안된다는 문제를 겪고 계셔서 트러블 슈팅을 진행했다.문제 상황 Lambda 함수가 SageMaker Endpoint로부터 응답을 받지 못하고 타임아웃 후 종료원인 추측하기추측 1. Lambda의 제한 시간이 짧다.SageMaker serverless 엔드포인트는 Lambda와 동일하게 Cold Start 현상이 존재한다.첫 호출 시엔 프로비저닝에 수 초 이상 소요될 수 있다.Lambda의 제한 시간이 짧다면, SageMaker의 프로비저닝 시간을 기다리는 동안 시간 초과가 발생했을 수 있다.반론:- Cold Start는 첫 요청에만 발생하며, 이후엔 Hot Start로 빠른 응답이 가능하다.- 하지만 Lambda의 두..
Terraform 1.5부터 도입된 check 블록은 인프라를 구성하기 전에 외부 리소스나 시스템 상태를 검증할 수 있도록 지원하는 기능입니다.이 기능은 terraform plan, terraform apply 시점에서 동작하며, 리소스의 상태, 연결성, 응답 값 등을 검증하는 데 유용합니다.check 블록 기본 개념Terraform의 check 블록은 주로 다음과 같은 경우에 사용됩니다.배포 전 API 또는 외부 서비스가 정상 동작 중인지 확인하고 싶을 때RDS, S3, DNS 등 리소스의 상태를 별도 조건으로 확인하고 싶을 때특정 변수나 입력값이 유효한지 사전에 검증하고 싶을 때기본 문법 예제check "health_check" { data "http" "terraform_io" { url =..

Terraform을 사용해 AWS 인프라를 구성할 때, 보안 그룹(Security Group)을 설정하는 과정에서 종종 순환 참조(Circular Dependency) 문제가 발생하곤 합니다.특히 서로 통신해야 하는 두 리소스가 각자의 보안 그룹에서 서로를 참조하는 구조일 경우 이 문제가 쉽게 발생합니다.대표적인 예로, AWS Lambda 함수가 RDS(MySQL 등)에 접근해야 하는 상황을 들 수 있습니다.RDS와 Lambda 연결 예제기본적으로 Lambda와 RDS가 통신하기 위해선 보안그룹 허용이 필요합니다.Lambda에선 egress로 RDS의 보안그룹을, RDS에선 ingress로 Lambda의 보안 그룹이 필요합니다.이제 해당 코드를 작성해보겠습니다.resource "aws_vpc" "main..

테스트 코드를 작성할 때 가장 중요한 지표 중 하나는 테스트 커버리지(Test Coverage)입니다. 이 지표는 테스트가 실제 코드의 몇 %를 실행하고 있는지를 보여주며, 코드의 신뢰성과 안정성 확보에 직결됩니다.1. Code Coverage란?Code Coverage는 테스트 코드가 전체 코드 중 얼마나 많은 부분을 실행하는지를 측정하는 지표입니다.보통 “실행된 라인의 비율”로 계산되며, 일반적으로 다음과 같은 코드 유형을 기준으로 분류합니다:Syntax Line함수 정의, 닫는 중괄호 등 구조적인 코드 (예: def, return)Logic Line변수 연산, 값 처리, 실제 동작하는 라인Branch Line조건문(if, for, while)으로 분기되는 라인 예제 코드def some_functio..