반응형

AWS 33

ec2 종료 트리거로 AMI 만들기(Lambda, EventBridge, SNS)

EC2 인스턴스를 예약 종료하는 스케줄링을 걸어두고 나면, 혹시나 모를 상황을 대비해서 해당 시점의 AMI를 만들어놓고 싶을 때가 있다.예를 들면 리전 용량(capacity) 이 부족해서, 다른 리전이나 AZ로 이사를 가야 할 가능성이 있는 상황이다.이럴 땐 EC2를 정지시키기 전에 AMI를 생성해두는 게 좋다. 왜냐하면 동일한 환경으로 다시 인스턴스를 띄워야 하기 때문이다.AMI와 EC2의 차이: 리전 기반 vs AZ 기반먼저 이걸 이해하고 가자.EC2 인스턴스는 AZ(가용 영역) 단위로 생성된다.반면에 **AMI(아마존 머신 이미지)**는 리전 단위로 존재한다.즉, AMI를 하나 만들어두면, 그 리전 내의 어떤 AZ에서도 인스턴스를 복원할 수 있다.하지만 만약 리전 자체가 안 되는 상황이라면? → A..

AWS 2025.08.05

NVIDIA A100 "RmInitAdapter failed" 에러와 PCI 디바이스 리셋

문제 상황AWS EC2에서 A100 GPU 8장을 사용하는 인스턴스를 띄웠는데, nvidia-smi로 확인해보니 7장만 잡히는 상황이 발생했다. 분명히 8장짜리 인스턴스를 요청했는데 하나가 빠져있었다.# nvidia-smi(base) [ec2-user@{instance-id} ~]$ sudo nvidia-smiMon --- - --:--:-- 2025+-----------------------------------------------------------------------------------------+| NVIDIA-SMI 570.133.20 Driver Version: 570.133.20 CUDA Version: 12.8 ||-----------------..

AWS 2025.08.04

AWS Nuke로 모든 리소스 한 번에 정리하기

AWS 계정을 사용하다 보면 테스트용으로 만든 리소스들이나 불필요한 서비스들이 쌓이게 된다. 이런 리소스들을 하나하나 찾아서 삭제하는 것은 정말 번거로운 일이다. 이럴 때 AWS Nuke를 사용하면 모든 리소스를 한 번에 깔끔하게 정리할 수 있다!AWS Nuke 다운로드먼저 AWS Nuke를 다운로드 받아야 한다. GitHub 릴리즈 페이지에서 최신 버전을 받을 수 있다.다운로드 링크: https://github.com/rebuy-de/aws-nuke/releases운영체제에 맞는 바이너리를 다운로드 받고 PATH에 추가해주면 된다.1. AWS Nuke 설정 파일 준비먼저 config.yml 파일을 작성해야 한다. KMS 같은 경우는 삭제가 불가능하거나 위험할 수 있어서 resource-types의 ex..

AWS 2025.08.01

AWS Systems Manager(SSM) EC2 자동 시작/중지 스케줄링

p4de.24xlarge와 같은 고가의 EC2 인스턴스를 사용할 경우, 항상 켜두는 방식은 비용 부담이 클 수 있다. 그래서 실제 사용 시간 외에는 꺼두고, 필요할 때만 자동으로 시작하는 방식으로 스케줄링을 구성해 비용을 절감하려 한다.이를 위해 AWS Systems Manager(SSM)의 유지관리 기간(maintenance window) 기능을 활용해 자동 시작/중지 작업을 등록하는 방법을 정리해보려 한다.✅ 사전 조건자동화가 제대로 작동하려면 몇 가지 전제 조건이 필요하다:EC2 인스턴스에 SSM Agent가 설치되어 있어야 한다.SSM Agent가 AWS와 통신할 수 있도록 인터넷 또는 VPC 엔드포인트가 구성되어 있어야 한다.EC2에 적절한 IAM 역할이 연결되어 있어야 한다.1. EC2에 IA..

AWS 2025.07.30

AWS KMS 키 접근 권한 상실 후 복구 경험기

🧩 문제 발생 배경필자가 속한 팀에서는 AWS KMS(Key Management Service)를 활용하여 중요 데이터를 암호화하고 있었다. 그런데 최근 교육생이 실습 도중, 실수로 KMS 키를 생성했던 IAM 사용자 계정을 삭제하는 일이 발생하였다. 이로 인해 해당 KMS 키에 대한 정책 수정 권한과 관리 권한을 모두 상실하게 되었다.❌ 확인된 문제KMS 키의 정책을 수정할 수 없음콘솔에서 키 정책 편집 버튼 비활성화kms:PutKeyPolicy, kms:ScheduleKeyDeletion 등 관리 작업 시 AccessDeniedException 발생복호화 요청은 정상 처리되나, 키 자체의 제어는 불가능한 상태🔎 원인 분석AWS KMS는 IAM 정책 외에도 Key Policy라는 별도의 권한 관리 ..

AWS 2025.07.21

OpenVPN 클라이언트 설정 파일을 자동으로 생성하는 Python 스크립트

회사나 팀에서 OpenVPN을 사용하다 보면 새로운 사용자가 추가될 때마다 인증서를 생성하고 설정 파일을 만드는 작업이 반복됩니다. 한두 명이야 수동으로 할 수 있지만, 여러 명의 사용자를 한번에 처리해야 할 때는 상당히 번거로운 작업이죠.이런 반복 작업을 자동화하기 위해 Python 스크립트를 만들어 보았습니다.🤔 왜 만들게 되었나요?OpenVPN에서 새로운 클라이언트를 추가하는 일반적인 과정은 다음과 같습니다:Easy-RSA로 클라이언트 인증서 생성개인 키 생성서버 설정과 인증서를 조합해서 .ovpn 파일 생성사용자에게 전달이 과정을 여러 사용자에게 반복하다 보면 실수할 가능성도 높아지고, 시간도 많이 걸립니다. 특히 회사에서 새로운 팀원들이 동시에 여러 명 들어올 때는 더욱 그렇죠.🛠️ 스크립트..

AWS 2025.07.09

www 도메인은 되는데 naked domain 접속이 안될 때 - DNS 라우팅 문제 해결

오늘 클라이언트로부터 도메인 접속 문제가 발생했다는 연락을 받았다. 문제를 파악하고 해결한 과정을 기록해둔다.문제 상황www.example.com은 정상 접속 됨example.com은 접속 불가 (www 없는 naked domain)사용자들이 브라우저 주소창에 example.com을 입력했을 때 페이지가 뜨지 않는 상황이었다.문제 분석DNS와 도메인 기본 개념먼저 기본 개념부터 정리하자면:Naked Domain: www가 없는 도메인 (example.com)Subdomain: www가 붙은 도메인 (www.example.com)A Record: 도메인을 IP 주소로 매핑하는 DNS 레코드ALB (Application Load Balancer): AWS의 로드밸런서 서비스문제 원인 파악DNS 설정을 확인해..

AWS 2025.07.04

AWS 다중 계정 비용 관리 시스템 구축

프로젝트 배경Payer 계정에서 여러 링크 계정의 AWS 비용을 효율적으로 관리하고 모니터링하기 위한 시스템을 구축하였습니다. 각 계정의 비용을 개별적으로 확인하는 것이 아니라, 통합된 리포트를 정기적으로 이메일로 받아볼 수 있는 자동화된 솔루션을 개발하였습니다.최종 구현 결과결과적으로 Lambda + SNS + EventBridge + S3를 조합하여 다음과 같은 시스템을 구축하였습니다:1. 데이터 수집 (각 링크 계정)Lambda 함수: cost-explorer.py역할: 개별 계정의 비용 데이터를 Cost Explorer API로 조회저장: 계정별 S3 버킷에 JSON 형태로 저장실행 주기: EventBridge 스케줄러로 하루 2회 (12시, 18시)2. 데이터 통합 (Payer 계정)Lambda..

AWS 2025.07.03

Amazon EKS 실습 환경 구축하기

최근 Kubernetes 관련 업무를 하면서 Amazon EKS(Elastic Kubernetes Service)에 대해 더 깊이 알아보고 싶어서 실습 환경을 구축해보기로 했다. AWS EKS Workshop을 활용한 실습 환경 구축 과정을 정리해보려고 한다.시작하기 전에 알아두어야 할 것들실습을 진행하면서 몇 가지 주의사항이 있어서 미리 체크해보는 것이 좋다:VPC 제한: 각 리전당 VPC는 기본적으로 5개까지만 생성할 수 있다. 현재 사용 중인 VPC 개수를 확인하고 여유가 있는지 체크해보자.Elastic IP 제한: 마찬가지로 Elastic IP도 5개 제한이 있으니 확인이 필요하다.Default VPC: 없으면 환경 구축에 실패할 수 있어서 다른 리전을 선택해야 한다.cloud9 기존 사용자여야한..

AWS 2025.06.24

AWS CodeBuild, CodeDeploy를 사용한 CI/CD 구축

AWS에서 CodeBuild, CodeDeploy를 사용해서 CI/CD를 구축하는 과정에서 무엇이 어려웠는지, 시간이 걸렸는지 작성해보려고 한다. GitLab Self-managed와 AWS 서비스를 연동하면서 겪었던 시행착오와 해결 과정을 상세히 기록했다.🎯 프로젝트 목표소스: GitLab Self-managed (nginx 웹서버)빌드: AWS CodeBuild (Docker 이미지 빌드 → ECR 푸시)배포: AWS CodeDeploy (EC2 인스턴스에 컨테이너 배포)트리거: main 브랜치 merge 시 자동 배포📋 전체 아키텍처GitLab (dev → main merge) ↓ WebhookCodePipeline ↓CodeBuild (Docker 빌드) → ECR ↓Co..

AWS 2025.05.27
반응형