AWS EC2에서 리눅스 자동화 스크립트 5개를 만든 방법

발행: (2026년 5월 23일 PM 05:21 GMT+9)
6 분 소요
원문: Dev.to

출처: Dev.to

2026년 5월에 AWS EC2에서 Ubuntu 22.04 서버를 하나 띄우고 SSH로 접속해 한 달 내내 실제 작업을 진행했습니다.
제가 만든 것들을 소개합니다.

도구상세 내용
클라우드AWS EC2 t2.micro
운영체제Ubuntu 22.04 LTS
편집기VS Code Codespaces
인증SSH 키 기반 인증
자동화Bash 스크립팅 + cron 작업
  • 사용자 및 그룹 관리
  • 파일 권한 관리 (chmod, chown)
  • 프로세스 관리 (ps, top, kill, systemctl)
  • 네트워킹 기본 (ss, curl, UFW, DNS)
  • apt 를 이용한 패키지 관리

자동화 & 스크립팅

  • Bash 스크립팅 — 함수와 검증
  • 로그 관리
  • cron 작업 스케줄링
  • SSH 워크플로우 (scp, rsync)
  • grep, awk, sed 를 활용한 로그 분석

🔧 5개의 자동화 스크립트

한 달이 끝날 무렵, 프로덕션 수준의 Bash 스크립트 5개를 만들고 자동화했습니다.

1. 서버 상태 모니터링 스크립트

다음 항목을 확인합니다.

  • CPU 사용량
  • RAM 사용량
  • 디스크 사용량
  • 서비스 상태
  • 인터넷 연결 여부

cron 으로 15분마다 실행됩니다.
./server_health.sh

예시 출력

================================================
        SERVER HEALTH CHECK REPORT
================================================

Date: 2026-05-12 10:00:00
Hostname: ip-172-xx-xx-xx

--- CPU Usage ---
✅ CPU is OK (2.3%)

--- Memory Usage ---
✅ RAM is OK (45%)

--- Services Status ---
✅ ssh: RUNNING
✅ nginx: RUNNING
✅ docker: RUNNING

--- Network ---
✅ Internet: CONNECTED

================================================

2. 디스크 사용량 알림 스크립트

파티션을 스캔하고 사용량이 임계값을 초과하면 알림을 생성합니다.

  • 임계값 기반 알림
  • 파티션 모니터링
  • 로그 생성
  • 색상 구분 터미널 출력

cron 으로 매시간 실행됩니다.

3. 로그 정리 스크립트

  • 오래된 로그 압축
  • 오래된 로그 삭제
  • 디스크 사용량 자동 감소

find, gzip, mtime 필터를 이용해 로그 보존 정책을 관리합니다.
매주 일요일 실행됩니다.

4. 사용자 프로비저닝 스크립트

일관된 설정으로 사용자를 생성합니다.

  • 사용자명 검증
  • 그룹 할당
  • 홈 디렉터리 생성
  • 임시 비밀번호 생성
  • CSV 파일을 이용한 배치 생성
sudo ./user_creation.sh --file users.csv

5. 백업 스크립트

tar.gz 아카이브로 압축 백업을 생성합니다.

  • 백업 검증
  • 보존 정책
  • 오래된 백업 자동 정리
  • 로그 및 무결성 검사

매일 새벽 2시에 실행됩니다.


cron 설정 예시

# Health check — every 15 minutes
*/15 * * * * /home/ubuntu/scripts/server_health.sh >> /home/ubuntu/logs/health_cron.log 2>&1

# Disk alerter — every hour
0 * * * * /home/ubuntu/scripts/disk_alerter.sh >> /home/ubuntu/logs/disk_cron.log 2>&1

# Backup — daily at 2 AM
0 2 * * * /home/ubuntu/scripts/backup.sh >> /home/ubuntu/logs/backup_cron.log 2>&1

# Log cleaner — every Sunday at 11 PM
0 23 * * 0 /home/ubuntu/scripts/log_cleaner.sh >> /home/ubuntu/logs/cleaner_cron.log 2>&1

설정이 완료되면 서버가 일상적인 유지보수를 자동으로 처리합니다.
처음엔 기본 터미널 명령이 낯설었지만, 원격 서버에서 매일 작업하면서 Linux를 명령줄로 다루는 것이 자연스러워졌습니다.
빠른 방법은 없으며, 매일 직접 해보는 수밖에 없습니다.

가장 큰 사고 전환은 “반복 작업을 자동화할 수 있을까?” 라는 생각을 바로 떠올리는 것이었습니다.
이 사고 전환만으로도 스크립팅이 훨씬 실용적이고, 솔직히 더 재미있어졌습니다.

실제 EC2 인스턴스에서 작업하면서 로컬 환경에서는 쉽게 겪지 못하는 문제들을 마주했습니다.

  • SSH 인증 문제
  • 파일 권한 문제
  • cron 디버깅
  • 디스크 사용량 관리
  • 로그 분석 워크플로우

실제 서버에서 문제를 해결하면서 문서에 적힌 명령어만 보는 것보다 훨씬 많은 것을 배웠습니다.

다음 단계는 AWS 핵심 인프라(VPC, IAM, RDS, Terraform)로 확장하는 것입니다.
그 작업은 2026년 6월에 시작됩니다. 비슷한 길을 걷고 있다면 함께 지켜봐 주세요.

모든 스크립트와 문서는 오픈소스입니다:
👉 https://github.com/tanayjdev/linux-bash-scripts

BCA 학생 • 클라우드·DevOps 엔지니어 지망생

0 조회
Back to Blog

관련 글

더 보기 »

내 스킬

프로젝트를 위한 AI 지시문을 만들고, 설치하고, 관리하세요 — 코딩이 필요 없습니다. CREATE 이름을 정하고, 카테고리를 선택하고, 원하는 것을 설명하세요 — 마법사가 자동으로 구성합니다.