DVERSE / AWS · OPERATIONS

AWS 전원 관리.

필요할 때 켜고, 사용이 끝나면 확인하고 끄기.

EC2·RDS 전원 스크립트, 클라우드 실행과 자동 종료 경로를 연결해 봅니다.

기록일 Markdown 내려받기
이 노트의 목차

요청과 실제 상태를 구분하는 운영

운영 절차 · 명령을 실행하는 화면이 아닙니다

  1. 01

    대상 확인

    biolem-server · 서울 리전

  2. 02

    상태 조회

    EC2 · RDS 각각 확인

  3. 03

    전원 요청

    조건에 맞게 start / stop

  4. 04

    결과 확인

    최종 상태 · API 응답

설정 기록: 매일 10:00 AWS 자동 종료, 10:10 Claude·Codex 추가 점검. App Store 심사 기간에는 세 종료 경로를 함께 확인해야 합니다.

운영 구조

2026-09-27 기록 · biolem-server. 필요할 때 EC2 애플리케이션과 RDS 데이터베이스를 함께 켜고, 사용하지 않을 때 중지하는 운영 절차다. 앱은 이 서버를 이용하므로 전원 상태가 로그인·저장·조회 가능 여부에 직접 영향을 준다.

aws-power는 자연어 요청을 status, start, stop으로 연결하는 스킬이다. 실제 조작은 AWS API를 호출하는 실행 스크립트가 담당한다. 이 노트의 명령과 흐름은 설명이며 웹페이지에서 전원을 조작하지 않는다.

담당역할
EC2애플리케이션·Docker·배포 러너 실행
RDSPostgreSQL 데이터 보관과 요청 처리
aws-power대상 리소스 조회·시작·중지 요청
EventBridge SchedulerAWS 안에서 정해진 시간에 중지 실행
Claude·Codex 점검종료 여부를 확인하고 필요한 경우 stop 요청

상태와 전원 명령

로컬에서는 biolem-server 저장소에서 실행한다. 어느 앱을 켜는지 먼저 확인하고, 상태 조회 → 전환 요청 → 실제 상태 재조회 순서를 지킨다. 아래 세 명령 중 목적에 맞는 명령을 각각 선택한다.

# biolem-server 저장소에서 실행
bash infra/aws-power.sh status
bash infra/aws-power.sh start
bash infra/aws-power.sh stop
요청스크립트의 조건완료 판단
statusEC2·RDS 각각 조회두 상태가 모두 정상적으로 반환됨
startstopped인 리소스에 시작 요청EC2 running + RDS available + 핵심 API 응답
stopEC2 running / RDS available에 중지 요청두 리소스 모두 stopped

starting·stopping은 전환 중이다. 명령이 끝나거나 몇 분이 지났다는 이유로 완료라고 보고하지 않는다. 빈 응답·인증 실패·권한 오류도 정상 중지로 처리하지 않는다. 로컬 스크립트는 일부 조회 오류를 숨기므로 상태 출력이 비어 있으면 별도 오류 확인이 필요하다.

EC2가 켜진 뒤 Docker의 재시작 정책과 systemd 러너가 복구되도록 구성했다. 인스턴스 상태와 앱의 정상 응답은 별도로 확인한다.

로컬과 클라우드 실행

경로실행 위치준비와 확인
로컬 Macbiolem-server의 infra/aws-power.sh로컬 AWS 자격증명, CLI, 대상 리전 확인
Codex Cloudbiolem-aws-power 환경의 새 작업setup이 발급한 STS 임시 인증정보와 실행 래퍼 사용
Claude Cloudbiolem-server 세션과 저장된 환경전용 IAM 키·리전·스킬 설정, 실제 호출 확인

Codex Cloud에서는 setup 단계에서 전용 IAM 사용자로 1시간 STS 임시 인증정보를 발급한다. 저장소 밖에 보관하고 컨테이너 캐싱을 꺼 새 작업에서 다시 발급하도록 구성했다. 장기 키를 에이전트 파일이나 Git에 남기지 않는다.

# 준비된 Codex Cloud 환경의 실행 래퍼
~/.local/share/biolem-aws-power/aws-power status

Codex Cloud는 실제 EC2·RDS 조회와 EC2 start/stop 권한 dry-run을 확인한 기록이 있다. dry-run은 실제 전원 전환 성공을 뜻하지 않는다. Claude Cloud는 환경 저장·스킬 등록 기록까지 확인했고, 실제 AWS 호출은 해당 기록에서 미검증이다.

Cloud 실행은 Mac 전원과 독립적이다. 반면 Mac에서 실행하는 Codex 예약은 Mac과 앱이 실행 중이어야 한다. 이름이 같은 도구라도 실행 위치와 자격증명을 구분한다.

자동 종료와 추가 점검

저장된 설정·운영 기록 기준의 일정이다. 현재 활성 상태와 최근 실행 성공 여부는 작업 시 다시 조회한다.

시각 · 한국 시간실행 주체동작과 조건
매일 10:00AWS EventBridge SchedulerEC2·RDS 각각 중지. Mac 없이 AWS에서 실행
매일 10:10Claude Cloud 루틴상태 확인 후 필요한 경우 중지하도록 설정
매일 10:10Codex 로컬 자동화Mac·앱이 실행 중일 때 상태 확인 후 필요한 경우 중지

Scheduler 설정은 infra/create-auto-stop.sh의 cron(0 10 * * ? *), 시간대 Asia/Seoul이다. EC2·RDS용 스케줄 두 개와 지정 리소스의 중지만 허용하는 역할을 사용한다. 수동 전원 봇의 조회·시작·중지 권한과 Scheduler 역할은 별도다.

# 예약 목록 조회
aws scheduler list-schedules \
  --region ap-northeast-2 \
  --name-prefix biolem-auto-stop

스케줄 존재만으로 실행 성공을 판단하지 않는다. 최근 실행 결과와 EC2·RDS 실제 상태를 대조한다. 이미 중지된 RDS에 중지를 요청하면 오류가 날 수 있으므로 상태와 함께 읽는다.

비용과 가용성

RDS는 7일 연속 중지 후 자동으로 다시 시작한다. 중지 중에도 프로비저닝된 저장공간과 백업 비용은 남는다. 따라서 한 번 수동 중지한 것으로 장기 비용 관리가 끝나지 않는다. AWS RDS 중지 안내

EC2도 중지만으로 EBS와 유지하는 공인 IPv4 등 모든 비용이 없어지는 것은 아니다. 청구 항목을 따로 확인한다. AWS EC2 중지 안내

개발 중 비용 절감과 심사·서비스 가용성을 함께 결정한다. App Store 심사 중에는 테스트 계정과 API가 계속 동작해야 한다. EventBridge, Claude 루틴, Codex 로컬 예약 세 경로를 모두 확인해 심사 운영에 맞춘 뒤, API·로그인·기록 저장을 실제로 점검한다.

기본 스케줄을 설명하는 이 노트만 보고 예약을 해제하거나 서버를 켜지 않는다. 운영 기간·대상·변경 결과를 따로 기록하고, 기간이 끝나면 합의된 비용 관리 정책으로 복귀한다. 아이폰 앱 배포 절차

문제를 만났을 때

증상확인 순서
상태가 빈 값AWS CLI 오류·자격증명·권한·리전 확인. stopped로 해석하지 않음
ExpiredTokenCodex Cloud 새 작업에서 STS 다시 발급
Codex EC2 MissingActionQuery GET과 SigV4 헤더 인증을 사용하는 최종 setup 적용 여부 확인
시작 후 앱 접속 실패EC2·RDS 상태 → Docker·러너 → 네트워크·API 주소 → 앱 로그인
예약을 껐는데 다시 종료EventBridge·Claude·Codex 세 경로 확인
폰에서 요청 후 목록으로 이동클라우드 작업 목록을 다시 열어 실행 결과 확인

네트워크 오류를 해결하려고 TLS 검증을 해제하거나 자격증명을 공개하지 않는다. 실행 키, 계정 ID, 인스턴스 ID, 접속 IP와 심사 계정 정보는 이 공개 노트에 포함하지 않는다.

유지 관리할 원본

  • biolem-server: .claude/skills/aws-power/SKILL.md, infra/aws-power.sh, infra/create-auto-stop.sh
  • Codex Cloud: infra/codex-aws-power-setup.sh, docs/codex-aws-power.md와 웹에 저장된 setup
  • biolem2: docs/operations/aws-power.md, docs/state/aws-infra.md
  • Codex 로컬: ~/.codex/automations/biolem-aws/automation.toml

스크립트 수정 시 스킬 설명·예약 시각·클라우드에 저장한 실행 코드도 함께 대조한다. 이번 구성 경험은 이력서, 경력 상세, 프로젝트 도표에서 확인할 수 있다.