본문 바로가기
반응형

CLOUD266

Azure DevOps Agent - 비용, 사용량 확인, Self-hosted vs Microsoft-hosted, 전환 전략 들어가며Azure DevOps를 쓰다 보면 반드시 한 번은 부딪히는 질문이 있다.Agent를 꼭 VM에 설치해야 하나?Microsoft-hosted agent는 비용이 어떻게 계산되나?파이프라인 + 릴리스 사용 시간은 어디서 보나?Self-hosted agent는 왜 사용량이 안 보이나?결국 로그를 직접 봐야 하나?Self-hosted → Microsoft-hosted로 바꾸려면 스크립트를 다 고쳐야 하나?이 글은 이 질문들에 대한 실무 기준의 정답을 한 번에 정리한다.1. Azure DevOps Agent는 반드시 VM에 설치해야 할까?정답부터 말하면 아니다.*Azure DevOps**의 Agent는“잡(Job)을 실행할 수 있는 실행 환경”이면 어디든 설치 가능하다.Self-hosted Agent 설.. 2025. 12. 30.
AWS CloudFront 요금 정액제 출시 (2025. 11 업데이트) AWS CloudFront는 글로벌 CDN(Content Delivery Network) 서비스로, 전 세계 엣지 로케이션을 통해 사용자에게 콘텐츠를 빠르고 안전하게 전달합니다. 클라우드 기반 서비스 특성상 요금 구조가 다소 복잡할 수 있는데, 2025년 말 AWS는 이를 훨씬 단순화한 정액 요금제(Flat-Rate Pricing Plans) 모델을 도입했습니다. 🔹 CloudFront 요금 모델의 두 가지 축CloudFront 비용은 크게 두 가지 모델로 나뉩니다:1) 📊 종량제(Pay-As-You-Go)기존 방식으로:데이터 전송량(GB)요청 수(요청당 요금)리전/엣지 로케이션별 요율에 따라 사용량만큼 과금되는 방식입니다.장점: 실제 사용량만 지불, 유연함단점: 트래픽이 많을 때 비용 예측이 .. 2025. 12. 23.
Azure App Registrations “외부(또는 내부) 애플리케이션이 Azure 리소스에 접근할 때, 인증·보안을 중앙에서 관리하기 위한 Azure AD(Microsoft Entra ID)의 기능” 이라고 보면 됩니다. 🔐 1️⃣ 개념 요약App Registration = Azure AD(Entra ID)에서 애플리케이션의 ‘신원(identity)’을 등록하는 서비스이걸 등록하면 Azure는 그 앱에 대해 다음을 관리합니다: 역할 설명자격 증명(Credentials)Client ID, Secret(비밀번호), Certificate 등 발급 및 관리권한(Permissions)Microsoft Graph, KeyVault, ACR, Storage 등 어떤 리소스 접근 허용할지 지정정책 및 보안 제어MFA, Conditional Acces.. 2025. 10. 27.
ASG + 스팟 인스턴스 + 사설 DNS 자동등록 잘 안쓰이는이유 구성을 해보는데 asg + spot instance 구성은 그렇게 어렵지 않았습니다. 하지만 private DNS 를 ec2 에 연결하면서부터 굉장히 복잡하게 구성이 됩니다. dns cache, spot instance의 부족으로 인하여 다른 인스턴스가 생성되며 다른 subnet 에 생성이 되어 제어하기가 굉장히 까다롭더군요. 생각해보니 대부분의 개발환경에서는 on-demand를 사용하던데 그이유를 좀더 자세히 알아보고자 포스팅합니다. 왜 잘 안 쓰일까?1) 스팟 특성과 개발 생산성의 충돌예고형 중단(2분 전 통지): 개발 중/테스트 중에 인스턴스가 종료되면 워크플로우가 끊깁니다.가용 용량 변동: 특정 타입/AZ에 스팟 용량이 모자라 스케일-아웃이 실패할 수 있음. “개발=빠른 반복”과 상충.비용 .. 2025. 9. 24.
Spot 인스턴스를 안정적으로 쓰는 방법: ASG + Capacity-Optimized + Capacity Rebalancing 2편(단점, 무중단, 장점) 공식 문서에서 말하는 한계 & 주의사항AWS 문서 “Capacity Rebalancing in Auto Scaling”에 따르면 다음 같은 고려사항들이 있어요: AWS Documentation 항목 내용Application의 관용성애플리케이션이 Spot 중단/교체에 내성이 있어야 함. 상태 저장(stateful) 작업이나 연결 유지가 중요한 경우, graceful shutdown, 데이터 복제, 리플리카/리스너 종료 처리 등이 필요. AWS DocumentationLaunch Template / 인스턴스 타입 / AZ 다양성Spot 풀(pool)의 여유(capacity)가 많은 타입/AZ들을 여러 개 열어야 재보충(reserve)이 가능. 단일 타입/AZ만 쓰면 그 풀의 여유가 없을 때 복구가 어려움... 2025. 9. 22.
Spot 인스턴스 안정성 확보: ASG + Capacity-Optimized + Capacity Rebalancing 활용하기 인프라 비용 절감 측면에서 Spot 인스턴스는 매력적입니다. 할인폭이 크지만, 중요한 단점은 “언제든 종료(interruption)”될 수 있다는 것.이 글에서는 Auto Scaling Group(ASG) + Capacity-Optimized 할당 전략 + Capacity Rebalancing 조합을 써서 Spot 인스턴스의 불안정성을 완화하고 높은 가용성을 확보하는 방법을, AWS 문서와 실제 운영 팁 중심으로 설명합니다.주요 컴포넌트 개념 정리 구성 요소 역할 요약Auto Scaling Group (ASG)인스턴스 수(desired capacity)를 자동으로 유지하며, Spot/On-Demand 혼합 가능. 실패/종료 시 보충 가능.Capacity-Optimized Allocation Strateg.. 2025. 9. 22.
EKS kubectl 연결 오류 해결기: NAT 교체 이후 발생한 함정 운영 중인 AWS EKS 환경에 Kafka 인프라를 추가하던 중, 갑자기 kubectl이 동작하지 않는 상황을 맞았습니다.이번 글에서는 문제 발생 원인과 해결 과정, 그리고 얻은 교훈을 정리했습니다.문제 상황Kafka 서브넷을 추가한 뒤, kubectl이 더 이상 연결되지 않았습니다.$ kubectl get nodesUnable to connect to the server: dial tcp 10.0.11.83:443: i/o timeout이전까지는 정상 작동DNS는 EKS Private IP로 정상 해석VPN도 연결 상태 양호즉, VPN–DNS–보안그룹 모두 정상인데 트래픽이 도달하지 못하는 상황이었습니다.(새로 생성한 kafka는 vpn에서 접속이 정상적으로 동작하고 있음) 진단 과정1. EKS 엔드포.. 2025. 9. 22.
AWS Network Loadbalancer의 ALPN이란? NLB의 ALPN(Application-Layer Protocol Negotiation) 기능은 TLS 연결에서 클라이언트와 서버가 어떤 애플리케이션 프로토콜(HTTP/1.1, HTTP/2, gRPC 등)을 사용할지 협상하는 메커니즘입니다.즉, 클라이언트가 서버로 TLS 핸드셰이크를 할 때 "난 HTTP/2 또는 HTTP/1.1을 지원한다"라고 알리고, 서버(NLB 뒤의 Target 그룹)가 지원하는 프로토콜을 골라주는 방식이에요.1. ALPN 기본 개념TLS 확장(extension) 중 하나.애플리케이션 계층 프로토콜을 TLS 핸드셰이크 중에 미리 결정.Upgrade 헤더 방식보다 빠르고 안전하게 프로토콜 협상 가능.예:브라우저(클라이언트)가 HTTP/2 + HTTP/1.1 지원을 선언.서버가 HTTP.. 2025. 9. 9.
CORS “보여주기 vs 읽기”, 프리플라이트, S3·CloudFront 정리 다른 오리진 리소스를 “그려 넣기(표시/적용)”만 하면 보통 CORS 불필요: , , , 등.JS가 응답 “내용을 읽는 요청”(예: fetch/XHR, 픽셀 읽기, 웹폰트)은 브라우저가 SOP로 막음 → 서버가 CORS 헤더로 예외 허용해야 함. MDN Web Docs,2프리플라이트(OPTIONS) 는 “단순 요청(simple request)”이 아니면 뜸(예: Content-Type: application/json, 커스텀 헤더, PUT/DELETE 등). MDN Web Docs, 2Credentials(쿠키/서명/Authorization) 사용 시 Access-Control-Allow-Origin: * 금지, 정확한 오리진을 돌려야 함 + 필요 시 Vary: Origin. MDN Web DocsC.. 2025. 8. 28.
[AWS IAM] 사용자에게 S3 전체 버킷 조회 + 객체 Get/Put/Delete 권한 부여하기 S3를 다루는 사용자·역할(예: 개발자, CI/CD 러너)에게 모든 S3 버킷을 목록에서 보이게 하고, 각 버킷의 객체 업/다운로드 및 삭제까지 가능하도록 권한을 부여하는 방법을 정리했습니다.실무에서 바로 쓸 수 있는 정책(JSON), 콘솔/CLI/Terraform 적용 예시, 보안 팁(최소권한 설계)까지 포함합니다. 1) 권한 설계 요점버킷 목록 보기: s3:ListAllMyBuckets (계정 단위 동작 → Resource는 반드시 "*").버킷 내부 탐색: s3:ListBucket (버킷 리소스 ARN 필요, 콘솔/CLI에서 객체 키 목록 조회).객체 작업: s3:GetObject, s3:PutObject, s3:DeleteObject (객체 ARN 필요 → /* 포함).콘솔 편의: s3:GetB.. 2025. 8. 26.
CloudFront + S3로 이미지 서빙하기: 한 배포, 여러 도메인, 경로 기반 라우팅 왜 CloudFront 앞에 S3를 두나?S3는 원본 저장소, CloudFront는 글로벌 캐시 + TLS + WAF + 헤더정책 + 로그의 허브 역할.버킷은 비공개로 두고, CloudFront만 읽게 하면 보안과 캐시 전략을 깔끔하게 가져갈 수 있어요(이때 OAC 권장). “한 배포에 여러 서브도메인”은 가능할까?가능합니다. 하나의 CloudFront 배포에 여러 개의 Alternate Domain Name(CNAME)(예: example.com, a.example.com, b.example.com …)을 등록할 수 있어요. 단, 같은 CNAME을 두 개 배포에 동시에 등록할 수는 없습니다(중복 불가). TLS 인증서는 us-east-1(버지니아 북부) 의 ACM에 있어야 CloudFront에 붙일 수.. 2025. 8. 25.
AWS CloudFront 대체 도메인(Alternate Domain Names)와 Route 53 A 레코드 정리 CloudFront를 이용해 커스텀 도메인(example.com, app.example.com)을 연결할 때, 흔히 대체 도메인(Alternate Domain Name, CNAMEs) 과 Route 53의 A 레코드(Alias) 를 함께 사용합니다. 하지만 *.example.com 와일드카드와 루트 도메인(example.com) 처리가 달라 혼란이 생길 수 있습니다. 이번 글에서는 그 차이를 명확히 정리합니다. 구분*.example.com (와일드카드)example.com (루트 도메인)CloudFront Alternate Domain (CNAMEs)- 모든 서브도메인(app.example.com, api.example.com, …) 적용- 루트 도메인 포함 ❌- 반드시 별도로 추가해야 함- *.exam.. 2025. 8. 20.
반응형