목록AWS (48)
오늘도 한 뼘 더

# 배경 이전에 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 서버를 사용 이유공격 표면 축소: 내부 서버들에 ..

# 배경 aws eks를 통해 만들어진 nodegroup을 삭제하는 과정에서 다음과 같은 에러 메시지가 뜨면서 삭제가 되지 않는 문제가 발생했다. # 문제 pod가 삭제되는 중에 pending 문제가 발생하여 해당 에러가 발생할 수 있다는 걸 알았고 명령어로 검색한 결과 다음과 같이 pod들이 pending이 되고 있었다. 이중 해당 문제를 발생시키는 pod는 ebs-csi-controller pod이다. # 해결 방법 ebs-csi-controller pod를 삭제한 후 nodegroup을 삭제하도록 한다.$ kubectl delete deployment ebs-csi-controller$ eksctl delete nodegroup --cluster [CLUSTER] --name [NODE..

# 배경 eksctl 명령어를 통해서 AWS EKS 서비스에 클러스터를 생성하는 작업을 진행했다. 클러스터의 버전을 config 파일에 명시해서 진행을 하는 중에 다음과 같은 에러가 발생하였다. apiVersion: eksctl.io/v1alpha5kind: ClusterConfigmetadata: name: test region: ap-northeast-2 version: "1.29" # 문제 eksctl 명령어를 사용하여 클러스터를 생성하는 중 다음과 같은 에러가 발생하였다. Error: invalid version, supported values: 1.21, 1.22, 1.23, 1.24 eksctl 버전에 따라 지원하는 쿠버네티스 버전이 다른데 구 버전의 eksctl을 사용..

# 배경 현재 회사에서 사용하고 있는 Lambda 함수의 런타임은 node.js 14.X와 16.X인데 두 버전 모두 지원에 대한 종료가 되어 18.X로 버전을 업데이트하라는 이메일을 받았다. # 함수 업데이트 하기 ## 함수 런타임 변경 AWS Lambda > 함수 > 코드 탭 밑에 런타임 설정 편집 > 런타임 변경 >> 업데이트 진행 완료로 뜬다. ## 계층 생성 현재 회사에서 함수에 node axios를 계층으로 사용하고 있는데 이전에 사용하던 계층으로도 작동은 되었지만 버전을 같게 하면 좀 더 안정적일 것으로 생각하여 18.X 버전의 node.js 에서 axios를 설치하여 올리기로 하였다 밑의 단계는 linux 환경에서 진행하였다. 1. node js 설치하기 $ sudo apt update &..

# Provider 란? Terraform Provider는 Terraform에서 특정 Infrastructure플랫폼 AWS, Azure 등과 상호 작용하기 위한 플러그인이다. Terraform은 여러 프로바이더를 지원하여 다양한 클라우드 서비스 및 인프라 리소스를 코드로 관리할 수 있게 해주는 역할을 한다. 각각의 Terraform Provider는 해당 플랫폼의 API와 통신하여 리소스를 생성, 수정, 삭제 등을 수행하고 이를 통해 Infrastructure를 정의하고 관리할 수 있다. Provider는 Terraform 코드에서 사용되는 리소스 유형을 제공하고, 해당 리소스를 생성하거나 수정할 때 필요한 설정을 정의한다. # AWS Provider 설정 terraform { required_pro..

# 배경 현재 회사에서 AWS 클라우드를 사용하고 있고 인프라 관리를 쉘스크립트를 통해서 진행하고 있다. 최근 많은 회사들이 Terraform, Ansible과 같은 IaC(Infrastructure as Code)를 많이 사용하고 있다고 해서 관심을 같게 되었다. 같은 환경의 리소스를 복제하여 만들 때 유익하다는 이야기를 듣고 클러스터 복원하는 스크립트를 만들어볼 수 있을 것 같다는 생각으로 시작하게 되었다. # Terraform이란? Terraform(테라폼)은 하시코프에서 오픈소스로 개발 중인 클라우드 Infrastructure 자동화를 지향하는 IaC(Infrastructure as Code) 도구이다. # Terraform 구성 출처 : https://developer.hashicorp.com/..