본문 바로가기
Cloud 개발

Oracle ATP 상시무료 DB 2개로 20GB·동접 30 구성 가이드(2025 최신)

by 굿대디~ 2025. 10. 25.
반응형

Oracle Cloud의 Always Free에서 Autonomous Transaction Processing(ATP)을 최대 2개 생성해 각각 20GB 스토리지로 운영할 수 있으며, 실사용 관점에서 동시 접속(세션/커넥션 수)과 연결 풀 설정을 적절히 구성하면 약 30개 수준의 동시 연결 시나리오도 가능합니다. 다만 Oracle의 공식 Always Free 문서와 사용자 경험에 따르면 세션 제한과 네트워크/리소스 제한이 존재하므로 커넥션 풀 최적화, APEX/SQL Developer 접속 동시성 분배, 리소스 소비 쿼리 최소화가 필수예요.

 

핵심 요약

  • Always Free로 ATP를 최대 2개까지 생성 가능, 각 인스턴스당 스토리지 20GB 제공해요.​
  • 동시 접속은 세션·프로세스 한계와 네트워크 정책의 영향을 받아 체감치가 달라질 수 있어요. 사용자 보고에선 동시 세션 수가 낮게 체감되는 케이스도 있어 커넥션 풀로 효율화가 필요해요.​
  • 목표가 “ATP 2개, 총 20GB, 동접 약 30”이라면 인스턴스 분산, 연결 풀 크기 상한, 짧은 세션 유지, APEX/SQL Dev 동시 접속 관리가 관건이에요.

 

Always Free ATP 사양과 한도

  • 생성 수: Autonomous Database 인스턴스 최대 2개(ATP/ADW 유형 선택 가능)예요.
  • 스토리지: 각 인스턴스 20GB 제공으로, 두 개 합산 시 최대 40GB가 아닌 “각각 20GB” 개별 한도임을 유의해요.
  • 컴퓨트: Always Free는 OCPU, 메모리, 네트워크에 기본 제한이 있어 고부하 트랜잭션에는 적합하지 않으니 연결 수보다 쿼리 경량화가 중요해요.

동시 접속 30개 달성을 위한 설계 팁

  • 인스턴스 분산: 2개 ATP로 트래픽을 나눠 연결 풀을 분리하면 개별 인스턴스의 세션 압력을 낮출 수 있어요.​
  • 연결 풀 사이징: 어플리케이션의 커넥션 풀 최대값을 보수적으로 설정하고, 아이들 타임아웃과 최대 수명(time-to-live)을 짧게 두어 세션을 재활용하세요.​
  • 짧은 트랜잭션: 오랜 트랜잭션/락을 피하고 자동 커밋 주기를 짧게 가져가면 동시성 효율이 올라가요.
  • APEX/SQL Dev 동시성: 도구 접속은 세션을 상시 점유할 수 있어 운영 트래픽과 분리하거나 오프피크에 사용하세요. 일부 사용자는 낮은 동시 접속 체감을 보고해 운영/개발 세션 분리가 안전해요.
  • 네트워크 접근: Always Free는 네트워크 접근 옵션 제약이 있어 공인 접근 구성 시 전자지갑, TLS, 서비스 레벨(_high/_medium/_low)에 맞춘 드라이버 설정이 필요해요​

Spring Boot 연결 풀 설정 예제

    hikari:
      # ATP Free Tier 30개 세션 제한을 고려한 설정
      maximum-pool-size: 15         # 최대 연결 수 (기본값보다 낮게 설정)
      minimum-idle: 5               # 최소 유휴 연결 수
      connection-timeout: 30000     # 연결 대기 시간 (30초)
      idle-timeout: 600000          # 유휴 연결 제거 시간 (10분)
      max-lifetime: 1800000         # 연결 최대 수명 (30분)
      leak-detection-threshold: 60000  # 연결 누수 탐지 임계값 (60초)

생성 절차 요약(ATP 2개)

  • 유형 선택: Autonomous Database 생성에서 Workload를 트랜잭션 처리(ATP)로 지정해요.​
  • Always Free 체크: Always Free 등급을 선택하면 OCPU 1, 스토리지 20GB로 생성돼요.
  • 접속 설정: ADMIN 비밀번호 설정, 전자지갑(클라이언트) 다운로드, tnsnames의 서비스(orcl_high 등)로 TLS 접속을 구성해요.

주의할 제한과 운영 팁

  • 세션/파라미터 제한: ATP는 시스템 파라미터 변경이 제한적이라 세션 관리 전략을 애플리케이션 단에서 해야 해요.​
  • 사용자 경험: 일부 사례에서 “문서상의 동시 세션 수” 대비 실제 체감 동시 접속이 낮을 수 있어 사전 부하 테스트가 필요해요.​
  • 모니터링: Always Free에서도 기본 모니터링을 통해 세션 수, 대기 이벤트, 쿼리 응답 시간을 점검하고 임계치에 맞춰 풀 크기를 조정하세요.​

Oracle ATP 모니털링 화면에서 세션 정보 확인 가능

실전 구성 예시

  • 목표: API 서버 2대 + ATP 2개 구성, 총 동시 연결 30.
  • 설계:
    • DB1 풀 최대 12, DB2 풀 최대 12로 애플리케이션 단 분산(총 24). 나머지 6은 APEX·운영 배치·툴 접속을 위해 예약해 세션 고갈을 방지해요.​
    • 풀 설정: 최소 2~4, 최대 12, idle timeout 60~120초, max lifetime 5~15분, 연결 유효성 검사(on-borrow) 활성화해요.
    • 쿼리: 인덱스 최적화, N+1 제거, 페이지네이션, 배치 쓰기 사용으로 CPU/IO를 절감하세요.

자주 묻는 질문

  • Q. “20GB까지 동접 30개”가 공식 보장인가요?
    • A. Always Free는 인스턴스·스토리지·컴퓨트 한도만 명시하며, 실효 동시 접속은 워크로드·도구 접속·네트워크 상태에 좌우돼 공식 “30개 고정 보장”은 아니에요. 따라서 2개 인스턴스로 분산·풀 최적화·부하 테스트를 통해 30개 수준 달성을 목표로 설계하는 접근이 안전해요.
  • Q. ADW 대신 ATP여야 하나요?
    • A. 트랜잭션 위주 서비스는 ATP가 적합하고, 분석·대량 스캔 중심은 ADW가 적합해요. Always Free 범위에선 둘 중 필요 유형을 2개까지 생성 가능해요.

단계별 체크리스트

    1. 계정/리전: Free Tier 가입과 리전 가용성 확인해요.​
    1. DB1/DB2 생성: Workload=ATP, Always Free 선택, 각 20GB로 생성해요.​
    1. 보안/접속: 전자지갑 다운로드, TLS 접속 문자열(orcl_high 등)으로 앱·APEX·SQL Dev 연결해요.​
    1. 풀/타임아웃: 각 앱 인스턴스의 풀 최대값 제한, idle/TTL 짧게, 헬스체크 설정해요.​
    1. 분산/예약: 운영 접속·배치·툴 접속 몫을 별도로 남겨 세션 고갈 대비해요.​
    1. 부하 테스트: JMeter·k6 등으로 30 동시 유저 시나리오를 리드/라이트 혼합으로 검증하고, 필요시 쿼리/인덱스·풀 설정을 조정해요.​

관련 링크

FAQ 스키마 가이드(요약)

  • Q: Always Free ATP 몇 개 생성? A: 최대 2개.
  • Q: 스토리지는? A: 각 20GB.
  • Q: 동접 30 가능? A: 커넥션 풀/분산/튜닝 시 현실적으로 가능, 공식 고정치 아님.
  • Q: 접속은? A: 전자지갑+TLS, tnsnames 서비스 사용.
  • Q: 튜닝 포인트? A: 풀 최대값 제한, 짧은 트랜잭션, 인덱스/쿼리 최적화.
    각 항목에 위 링크를 매핑해 마크업하면 좋아요.​​
반응형