By · Last updated 2026-06-05

블로그로 돌아가기기술

6주에서 3일로: 관리형 PII API vs. Presidio 자체 호스팅

의료 SaaS 팀이 관리형 API로 전환하기 전 Presidio 프로덕션 배포에 6주를 소비했습니다. 관리형 API가 배포 작업을 대체한 방법을 알아보세요.

June 5, 20267 분 읽기
managed PII APIPresidio productionPHI anonymizationhealthcare SaaSbuild vs buy

DevOps 6주 고통에서 3일 통합으로

2026년 업데이트.

6주. 엔지니어 2명. 4번의 실패한 배포 시도. 한 의료 SaaS 팀이 Presidio 자체 호스팅 설정에 이 모든 것을 쏟아부었습니다. 그리고 관리형 API로 전환했습니다. 전환에는 3일이 걸렸습니다.

오픈 소스 소프트웨어의 "무료" 라벨은 매력적입니다. 완전한 제어라는 약속도 마찬가지입니다. 그러나 실제 비용은 엔지니어링 시간에 나타납니다. 라이선스 비용이 아닙니다.

Presidio 문서가 다루지 않는 것

Presidio 문서는 로컬 설정을 잘 다룹니다. Docker 컨테이너 두 개를 실행합니다. 익명화기를 분석기에 연결합니다. 노트북에서는 작동합니다.

프로덕션은 다른 이야기입니다.

확장: 로컬 Presidio는 단일 인스턴스로 실행됩니다. 프로덕션에는 로드 밸런서 뒤에 여러 인스턴스, 헬스 체크, 정상 종료가 필요합니다. Presidio 문서에는 이에 대한 안내가 없습니다. 각 팀이 독립적으로 해결합니다.

메모리 사용: spaCy 모델은 인스턴스당 RAM에 로드됩니다. en_core_web_lg 모델만 741MB입니다. 메모리 압박 하에서 성능이 저하됩니다. 그러면 프로세스가 메모리 부족 오류로 충돌합니다. Presidio에는 이에 대한 내장 안내가 없습니다.

타임아웃: 대용량 문서는 더 오래 걸립니다. 프로덕션 코드에는 설정 가능한 타임아웃, 안전한 타임아웃 응답, 재시도 로직이 필요합니다. 이 중 어느 것도 Presidio에 문서화되어 있지 않습니다.

모델 로딩 실패: 높은 동시성 하에서 여러 워커가 동일한 spaCy 모델을 동시에 로드하려 합니다. 이는 경쟁 조건입니다. 결과는 재현하기 어려운 무작위 500 오류입니다. Presidio GitHub 이슈에 문서화되어 있습니다. 주요 문서에는 없습니다.

감사 로그: GDPR과 HIPAA는 PII 처리에 대한 감사 추적을 요구합니다. Presidio에는 내장 로깅이 없습니다. 각 팀이 자체 미들웨어를 작성해야 합니다.

API 버전 관리: Presidio의 API는 버전 간에 변경되었습니다. Presidio 2.0용으로 구축된 코드는 2.2 이상에서 업데이트가 필요할 수 있습니다. 버전 고정이 도움이 됩니다. 하지만 자체적인 유지보수 부담을 추가합니다.

의료 SaaS 팀의 6주

이 팀은 연구 데이터 내보내기 파이프라인에 PHI 익명화를 구축했습니다.

1주차: Presidio 문서를 따랐습니다. 로컬 개발이 작동했습니다. Kubernetes 배포가 실패했습니다. Pod 초기화에서 모델 로딩 오류가 발생했습니다. 팀이 Kubernetes 설정 문제를 추적했습니다.

2주차: Kubernetes 설정이 수정되었습니다. 모델 로딩이 때로는 작동했습니다. 부하 테스트에서 약 15%의 요청이 모델 로딩 타임아웃으로 실패했습니다. 재시도 로직을 추가했습니다.

3주차: 재시도 로직이 근본 문제를 숨겼지만 부하 테스트를 통과했습니다. 컴플라이언스 검토에서 감사 로그를 요청했습니다. 팀이 사용자 정의 로깅 미들웨어를 작성했습니다.

4주차: 의료 엔터티 유형 — 의료 기록 번호, 건강보험 ID — 이 Presidio 기본값에 없었습니다. 팀이 사용자 정의 인식기 두 개를 작성했습니다.

5주차: 프로덕션에 배포했습니다. 메모리 누수가 나타났습니다. spaCy 모델 객체가 요청 간에 쌓였습니다. 팀이 임시방편으로 매일 Pod 재시작을 추가했습니다.

6주차: 실제 트래픽 하에서 프로덕션이 실패했습니다. 매일 재시작이 서비스 중단을 일으켰습니다. 근본 원인이 명확했습니다. 메모리 누수는 대규모 앱 재설계나 다른 도구가 필요했습니다.

검토: 엔지니어링 관리자가 수치를 계산했습니다. 6주 × 엔지니어 2명 = 12엔지니어 주. 배포는 라이브였지만 불안정했습니다. 지속적인 유지보수는 주당 5~10시간으로 추산되었습니다.

전환: 팀이 anonym.legal API를 테스트했습니다. PHI 엔터티 커버리지가 즉시 작동했습니다. 사용자 정의 인식기 없이. SLA 보장 가동 시간. 감사 로깅 포함. 통합에는 기존 API 클라이언트 코드를 사용하여 3일이 걸렸습니다.

비용 비교:

  • 12엔지니어 주 × 미국 시장 요율: 48,000~72,000달러
  • 자체 호스팅 연간 유지보수 추산: 25,000~40,000달러
  • anonym.legal Business 플랜: 연간 348유로 (약 385달러)

관리형 API는 자체 호스팅 구축의 첫 번째 시간보다 첫 번째 주에 더 적은 비용이 듭니다.

데이터가 네트워크를 벗어날 수 없는 경우

일부 의료 팀은 외부 서비스로 데이터를 전송할 수 없습니다. 에어갭 규칙이나 데이터 주권 정책이 차단합니다.

이러한 경우, Desktop Application (anonym.plus)은 로컬 설치로 동일한 엔진을 제공합니다.

  • 동일한 감지 엔진: Presidio + XLM-RoBERTa
  • 외부 서비스 호출 없음
  • 임상 기록 및 연구 데이터셋의 배치 처리
  • 설치 외 별도 설정 없음
  • 자동 모델 관리

이것은 관리형 SaaS의 주요 반론을 제거합니다. "데이터가 나가면 안 됩니다." 관리형 도구를 가치 있게 만드는 단순함은 여전히 유지합니다.

구축 vs. 구매: 간단한 프레임워크

관리형 API를 선택할 때:

  • 팀에 전담 인프라 엔지니어가 없는 경우
  • 몇 주가 아닌 며칠 안에 출시해야 하는 경우
  • SLA 보장 가동 시간이 요구 사항인 경우
  • 관리형 서비스가 필요한 엔터티 유형을 커버하는 경우
  • 감사 로그와 컴플라이언스 기록이 포함되어야 하는 경우

자체 호스팅을 선택할 때:

  • 규정이 데이터가 네트워크를 벗어나는 것을 금지하는 경우 (먼저 Desktop App을 확인하세요)
  • 처리량이 규모에서 자체 호스팅을 더 저렴하게 만드는 경우
  • API가 지원할 수 없는 깊은 사용자 정의가 필요한 경우
  • 이것을 여러 관리형 서비스 중 하나로 취급하는 플랫폼 팀이 있는 경우

Desktop Application을 선택할 때:

  • 오프라인 처리가 필요한 경우
  • 의료 연구 데이터가 임상 환경을 벗어날 수 없는 경우
  • 금융 데이터에 지리적 처리 제한이 있는 경우

결론

6주의 엔지니어링 시간은 Presidio의 결함이 아닙니다. 프로덕션급 NLP 서비스를 직접 운영하는 예상되는 비용입니다. 확장, 메모리 문제, 모델 로딩 실패, 감사 로그, 사용자 정의 엔터티 작업이 모두 빠르게 합산됩니다.

관리형 API가 그 비용을 흡수합니다. PII 익명화에서 — 제품 기능이 아닌 컴플라이언스 요구사항 — 관리형 경로가 거의 항상 총 소유 비용 측면에서 승리합니다.

anonym.legal API가 PHI 감지를 어떻게 처리하는지 확인하세요. 전체 컴플라이언스 세부 정보는 보안 개요를 참조하세요. 플랜 비교는 가격 페이지에서 확인하세요.

참고 자료

  • Ploomber: Presidio 프로덕션 배포 심층 분석 — ploomber.io.
  • Microsoft Fabric 커뮤니티: PySpark를 활용한 Presidio — blog.fabric.microsoft.com.
  • Presidio GitHub: 프로덕션 배포 이슈 — github.com/microsoft/presidio/issues.

데이터 보호를 시작할 준비가 되셨나요?

48개 언어로 285개 이상의 엔티티 유형으로 PII 익명화를 시작하세요.

About this page

We update this page when our platform or the law changes.

Read our founder note for how we work.

Each change shows up in the timestamp at the top.

Related reading

We follow these rules

  • GDPR (EU 2016/679).
  • ISO/IEC 27001:2022.
  • NIS2 (EU 2022/2555).
  • HIPAA safe harbor under 45 CFR § 164.514(b)(2).

Our promise

We do not sell your data.

We do not train models on your text.

We store your files in Germany.

You can delete your account at any time.

You own your work.

Where we run

Our servers live in Falkenstein, Germany.

We use Hetzner. They hold ISO 27001 certification.

All data stays in the EU.

Backups run every day.

Need help?

Email support@anonym.legal.

We reply within one business day.

How we test

We run a full check suite on every release.

Each surface gets its own sweep script and report.

Human reviewers spot-check the output each week.

We track recall and precision on a labelled set.

Bad runs block the deploy.

What we never do

  • We never sell your information to third parties.
  • We never train models on what you upload.
  • We never keep your work after you delete it.
  • We never share keys with any outside firm.
  • We never run ads inside the product.

Plans in plain words

We sell credits, not seats.

One credit covers one short job.

Long jobs use a few credits each.

You can top up at any time.

Unused credits roll over each month.

Read the plans page for current rates.

Who built this

A small team of engineers and lawyers built this.

We ship from Europe and work in the open.

Our founder note spells out why we started.

Where to start

How the parts fit

A browser add-on cleans text inside Chrome.

A Word plug-in handles drafts in Office.

A small desktop tool works on whole folders.

An agent protocol link feeds large models safely.

All four share one core engine and one rule set.

Words from our team

We started this work after a lunch about cookies.

One friend kept getting odd ads on her phone.

We asked why a court file leaked through a draft.

We sketched the first build on a napkin that week.

By month three we had a tiny demo for a friend.

She used it on her first case the next day.

Common questions we hear

Can the tool read scanned PDFs? Yes, with OCR.

Does it work on long files? Yes, in small chunks.

Can I roll my own rule set? Yes, save it as a preset.

Does it run offline? The desktop build runs offline.

Do you keep my files? No, the cloud build wipes after each run.

Will it learn from my work? No, we never train on inputs.

A short tour of the workflow

Upload a file or paste a snippet of prose.

Pick the entities you want gone from the draft.

Choose a method: replace, mask, hash, encrypt, or redact.

Press run and watch the side panel show each hit.

Skim the result and tweak any rule that misfired.

Save the cleaned file or send it to a teammate.