본문 바로가기

DevOps

(14)
AWS Kinesis Data Firehose로 이벤트 로그 수집부터 S3 적재까지 (Node.js 실습) 1. 실습 환경OS: Windows 11 (Windows 10도 가능)Node.js: v20.x (LTS 버전)AWS SDK: v22. AWS 리소스 준비2-1. S3 버킷 생성로그를 저장할 버킷을 하나 만듭니다.aws s3api create-bucket ` --bucket gl-logs ` --region ap-northeast-2 ` --create-bucket-configuration LocationConstraint=ap-northeast-2 ` --profile gl-dev 2-1-1. aws s3api create-bucketAWS CLI 명령어S3에 새로운 버킷(bucket)을 생성할 때 사용s3api는 S3의 로우레벨 API를 직접 쓰는 모드 (좀 더 옵션이 세밀함)2-1-2. -..
Amazon Linux 2 – Apache CPU 제한하기 (systemd + cpulimit) 1. 배경Apache(httpd)가 top에서 CPU 70% 이상 점유순간 트래픽이 몰리면 서버 전체가 느려지는 문제 발생cpulimit 유틸리티를 이용해 httpd 프로세스 전체 CPU 사용률을 40%로 제한2. cpulimit 설치sudo yum install -y epel-release sudo yum install -y cpulimit3. systemd 서비스 생성httpd 전용 CPU 제한 서비스 파일 생성: sudo nano /etc/systemd/system/httpd-limit.service내용:[Unit]Description=Limit CPU usage of httpd via cpulimitAfter=httpd.serviceRequires=httpd.service[Service]Type=..
AWS Lambda에 ECR Docker 이미지 배포하기 (Python 예제 + MoviePy 환경 구성) 1. 개요AWS Lambda는 기본 zip 배포 외에도 Docker 이미지를 지원 (기존 py 라이브러리 용량 떄문에 선택함)대용량 패키지(MoviePy, OpenCV 등)나 특정 OS 라이브러리가 필요한 경우 유용이번 예제는 Python 3.12 + MoviePy + OpenCV 기반 Lambda를 ECR로 배포하는 과정2. 디렉토리 구조project/ ├─ Dockerfile ├─ requirements.txt └─ app.py 3. requirements.txt boto3numpyopencv-python-headlessmoviepyPillowrequestsmysql-connector-pythonimageioimageio-ffmpegdecorator 4. DockerfileFROM public.ecr..
[ELK 스택 실습 2편] Elasticsearch에 샘플 로그 넣고 Kibana에서 확인하기 1. Elasticsearch에 샘플 로그 넣기curl -X POST http://localhost:9200/test-logs/_doc/1 -H "Content-Type: application/json" -d "{\"timestamp\": \"2025-05-29T11:00:00\", \"level\": \"info\", \"message\": \"서버 시작됨\", \"service\": \"node-api\"}" 2. Kibana에서 인덱스 패턴 만들기 http://localhost:5601 접속왼쪽 메뉴에서 “Discover” 클릭 (처음에는 Index Pattern 없다고 나올 수 있음) Create data view 클릭 index-pattern에 아까 등록한 test-logs 를 입력한다 ..
[ELK 스택 실습 1편] Docker로 Elasticsearch + Kibana 설치하기 🔧 ELK Stack 실습 개요: Elasticsearch, Kibana, Logstash란?✅ Elasticsearch란?Elasticsearch는 대용량 데이터를 빠르게 저장하고 검색할 수 있는 오픈소스 검색 엔진입니다.JSON 형태로 데이터를 저장하며, 특히 서버 로그, 사용자 이벤트, 지표 분석 등에 자주 사용됩니다.로그 검색 및 분석을 실시간으로 처리할 수 있음구조화된 데이터를 고속으로 인덱싱하고 조건 검색 가능NoSQL 기반이며 RESTful API로 조작함✅ Kibana란?Kibana는 Elasticsearch 데이터를 웹 UI로 시각화해주는 도구입니다.Elasticsearch에 저장된 데이터를 테이블, 차트, 그래프로 시각화실시간 로그 검색, 필터링, 대시보드 구성 가능코딩 없이 웹 브라..
Docker 로컬 개발환경 만들기 (Apache + MariaDB + PHP) 1.폴더 구조 세팅 (기존 코드 포함)TEST/├── app/ ← 기존 소스 코드 넣을 곳│ └── index.php 등├── Dockerfile ← 추가├── docker-compose.yml ← 추가├── docker/│ └── apache/│ └── default.conf ← 추가└── .env ← (선택, DB 설정용)2. Dockerfile 만들기 #Dockerfile FROM php:8.3-apache #php:8.3-apache 이미지를 기반으로 새 컨테이너를 만듦RUN docker-php-ext-install mysqli pdo pdo_mysql #PHP에서 MySQL과 연동하는 확장 기능들을 설치함CO..
[AWS] ECR + ECS(Fargate)로 웹 앱 배포하기 (Windows 환경 기준) 1. 준비 과정 (Windows 기준)1-1. AWS 계정 생성 및 기본 설정AWS IAM 사용자 생성, AdministratorAccess 정책 부여Access Key ID / Secret Key 발급 1-2. AWS CLI 설치Windows용 AWS CLI v2 설치:👉 다운로드 링크설치 후 PowerShell에서 확인:aws --version 1-3. AWS CLI 설정aws configureAWS Access Key ID: IAM에서 발급받은 키Default region name: 예) ap-northeast-2 (서울)Default output format: : json1-4. Docker 설치 (Docker Desktop + WSL2)Docker for Windows 설치..
[AWS] Lambda에 node_modules 용량 초과 시 대응 방법 (with 자동화 스크립트) NestJS 프로젝트를 Lambda에 배포하려고 lambda.zip을 만들었는데 .. node_modules만 300MB 넘어서 Lambda 업로드 실패....문제 요약 Lambda는 압축 해제 기준 250MB 이하만 허용node_modules가 크면 무조건 에러 발생해결법: 의존성들을 Layer로 분리해결 방법node_modules를 2개의 Layer로 나눈다layer_core → NestJS + TypeORM 등 핵심 프레임워크layer_vendor → axios, tesseract, mysql2 등 외부 라이브러리 자동화 스크립트: make-lambda-layers.js const fs = require('fs');const path = require('path');const { execSync..