목록전체 글 (253)
오늘도 한 뼘 더
# 배경 고객사에서 AWS 계정을 여러 개를 사용하는데 ECR 레포지토리와 ECR 이미지를 pull 받아서 사용하는 계정이 다른 상황이다.새로운 레포지토리가 추가되면 다른 계정에서 해당 이미지를 pull 받을 수 있도록 레포지토리 권한을 추가해줘야 한다. 매번 직접하는 것이 번거로워 해당 작업을 EventBridge와 Lambda를 통해 자동화할 수 있는 방법을 찾아보았다. ## EventBrdige 이벤트 규칙 생성하기이벤트 패턴CloudTrail에서 'CreateRepository'가 되었을 때 Lambda를 실행시키기 위한 이벤트 패턴을 생성한다.{ "source": ["aws.cloudtrail"], "detail-type": ["AWS API Call via CloudTrail"], "d..
# 배경 현재 사용중인 EKS의 AMI가 Amazon Linux 2(AL2)로 되어있다. AL2는 2025년 11월 26일 EOS되어 Amazon Linux 2023 (AL2023)으로 변경이 필요하다. # AL2와 AL2023 변경 점 AL2의 경우 AL2 자체의 /etc/eks/bootstrap.sh를 사용하여 userdata에 클러스터, 노드그룹 등의 정보를 스크립트에 넘기면 노드가 조인되었다. AL2023의 경우 nodeadm이 NodeConfig 값을 읽어 조인하는 형태이다, ## AL2 User Data 예시MIME-Version: 1.0Content-Type: multipart/mixed; boundary="BOUNDARY"--BOUNDARYContent-Type: text/x-sh..
# 배경 AutoScaling Group (이하 ASG)는 인스턴스의 상태를 확인하여 scale in, out 을 통해 서비스의 안정성을 높인다는 장점이 있다. 이로 인해 연결되어있는 EC2 인스턴스의 상태가 Unhealthy가 되면 다른 설정이 없었다면 기본적으로 해당 인스턴스를 교체하는 작업을 진행한다. EC2가 종료되는 것을 원치 않는다면 ASG가 적합하지 않은 서비스 일 수 있어 ASG를 삭제하고자 한다. 하지만 ASG가 삭제되면 EC2가 삭제되기에 EC2를 분리하고 안전하게 ASG를 삭제하고자 한다. # EC2 분리하기 ASG는 안정적인 운영을 위해 인스턴스의 상태가 비정상이라면 해당 인스턴스를 종료하고 교체하는 작업을 진행한다. EC2의 종료없이 ASG를 삭제하기 위해서는 ASG가 EC..
# 배경 갑작스럽게(?) 내부 EKS 교육을 준비해보라는 명을 받게 되었다.발표를 하는것은 싫었지만 그래도 덕분에 이해하고 있는 내용을 어떻게 전달하면 좋을 지 정리해 볼 수 있는 시간이었던 것 같다. 그래서 발표 내용에 대해 기록을 남겨보도록 한다. # 발표 내용 정리 1. Kubernetes 및 EKS 개요1-1. kubernetes란?쿠버네티스 공식 페이지에서는 쿠버네티스를 다음과 같이 정의하고 있다.“쿠버네티스는 컨테이너화된 워크로드와 서비스를 관리하기 위한, 이식 가능하고 확장 가능한 오픈소스 플랫폼이며, 선언적 구성과 자동화를 모두 지원한다”그렇다면, 쿠버네티스가 왜 필요했는지를 좀 더 쉽게 이해하기 위해, 먼저 컨테이너 기술의 발전에 대해 알아보면 좋을 것 같다.컨테이너 기술의 발전 배..
# 배경 이전에 Lambda에서 Health Dashboard 내용을 조회하는 코드를 작성했는데 조회한 내용을 csv로 저장하고 S3로 업로드하는 방법까지 추가해 보았다.2025.07.21 - [DevOps & Infra/AWS] - [AWS] Lambda를 사용하여 Health Dashboard 내용 조회하기 [AWS] Lambda를 사용하여 Health Dashboard 내용 조회하기# 배경 AWS 운영을 하면서 HealthDashboard의 내용에 대한 노티를 계속 받거나 서로 다른 계정에 있는 HealthDashboard에 대한 내용을 확인해야 하는 일이 자주 발생한다. EventBridge를 통해서 새로운 내용이baekji919.tistory.com # Lambda Role 권한 추가 {..
# 배경 AWS 운영을 하면서 HealthDashboard의 내용에 대한 노티를 계속 받거나 서로 다른 계정에 있는 HealthDashboard에 대한 내용을 확인해야 하는 일이 자주 발생한다. EventBridge를 통해서 새로운 내용이 등록되면 Lambda를 호출하고 Lambda를 통해서 HealthDashboard의 내용을 조회하는 방법을 사용한다면 수동이 아닌 방법으로 운영을 할 수 있지 않을까라고 생각해서 먼저 Lambda를 통해서 HealthDashboard 내용을 조회하는 코드를 python을 이용하여 작성해 보았다. # Lambda로 Health Dashboard 내용 조회하기 1. Lambda에서 AWS Health Dashboard 조회할 수 있도록 권한 부여하기{ "Ver..
# 배경 AWS 운영을 하다 보니 여러 계정을 관리하게 된다. 현재 역할 전환을 통해 계정을 변경하고 있는데 그때마다 계정과 역할 정보를 입력해야 하는 수고로움이 있는데 이 방법을확장 프로그램을 사용하여 관리할 수 있다고 하여 적용해보았다. # AWS extended switch roles 확장 사용하기 1. Chrome/Microsoft Edge 확장에서 AWS extended switch roles 검색, 설치 2. 설치 후 Configuration 작성 설치된 확장에서 아이콘을 클릭하면 아래 이미지와 같이 메뉴가 뜬다. Configuration 클릭 후 아래와 같은 계정, 역할 등에 대한 정보 입력- 역할 전환을 통해 계정을 변경하기 때문에 account_id와 role_name만 작성하..
# 배경 EBS 볼륨은 할당된 용량 크기에 따라 비용이 정책 되기 때문에 과도하게 볼륨의 크기가 크다면 축소하는 것이 좋다.다만, AWS에서 볼륨의 크기를 확장하는 것은 비교적 간단하나 축소하는 작업은 꽤 복잡하기에 스토리지 용량을 작게 잡고 늘려나가는 것이 바람직하다. 이미 늘어난 스토리지를 일단 축소해야 하기에 해당 작업을 진행하였다. # 필요한 리소스 - 볼륨이 큰 기존의 인스턴스 (old)- 볼륨을 축소한 새로운 인스턴스 (new)- 복구 및 마운트를 위한 임시 인스턴스 (temp) # 볼륨 축소하여 기존 인스턴스에서 사용하기 [ 사전 작업 ]- 작업 전 기존 인스턴스에 대한 AMI를 생성하여 EBS를 복구할 수 있도록 한다.- 데이터 이관의 확인을 위한 테스트 데이터 생성 1. old..
# Bastion 서버란?Bastion 서버(또는 Bastion Host)는 외부에서 내부 네트워크에 안전하게 접속할 수 있도록 중간 다리 역할을 하는 보안 게이트웨이 서버이다. 서버들(예: DB 서버, 내부 애플리케이션 서버 등)에 직접 접속하는 것을 막고, 엄격히 제어된 하나의 진입점만을 제공하여 보안을 강화한다. # Bastion 서버의 주요 특징목적외부 관리자의 내부 서버 접속 경로를 중앙화 및 보안 강화위치퍼블릭 서브넷 (인터넷에서 접근 가능)접속 대상프라이빗 서브넷의 서버들 (예: DB 서버 등)접속 방식SSH 또는 RDP를 통해 내부 서버로 접속 중계보안IP 제한, 포트 제한, MFA, 로그 수집, 세션 기록 등으로 보호 강화# Bastion 서버를 사용 이유공격 표면 축소: 내부 서버들에 ..
# 첫 직장 입사 자체 개발을 처음 시작하는 팀에 입사하게 되면서 개발자의 길을 걷게 되었다. 처음은 파란만장했다. 처음 채용공고의 내용은 기획/개발로 되어있어 원하면 기획도 가능할 거라는 생각으로 지원했던 게 사실 좀 더 있었던 것 같다. 웹페이지는 개발해본 적도 없고 그래도 데이터는 볼 줄 아니 그에 맞는 기획을 하면 되겠다는 생각으로 지원을 했던 나의 첫 회사!하지만 처음 입사하고 마주했던 건 웹 개발이었다웹 개발의 이응도 모르는 나에게 웹 개발이라니.. 어떻게 일을 해야 할지 사실 막막했다.처음 자체 개발을 시작한 회사였고, 나중에 알고보니 그냥 제로 베이스의 직원들을 키울 생각에 뽑았다고 했다.그게 아니었다면 지금까지 개발자로 일을 하고 있었을까 싶긴 하다. # DevOps의 시작 모..