원문 캡처 · github.com
원문 캡처 · github.com

Pogi는 AWS, Google Cloud, Azure의 서비스를 한 프로그램으로 로컬에서 실행하는 도구다. 계정이나 인터넷 연결 없이 SDK, 클라우드 CLI, Terraform, CDK를 연결해 개발·테스트할 수 있으며, 제작자는 181개 서비스를 지원한다고 설명한다.

설치와 빠른 시작

macOS에서는 Homebrew로 설치한다. Linux, Windows, Docker, Go 설치 방법은 설치 안내에 있다.

sh
brew install nrndev/tap/pogi

실행하면 실시간 터미널 화면이 열린다. 일반 로그만 보려면 --headless를 추가한다.

sh
pogi

다른 터미널에서 다음 명령을 실행하면 AWS, Google Cloud, Azure 도구가 사용할 엔드포인트와 테스트용 인증 정보를 설정한다.

sh
eval "$(pogi env)"

이후 기존 CLI를 사용해 리소스를 만든다.

sh
aws s3 mb s3://demo
gcloud storage buckets create gs://demo
az storage container create -n demo

http://localhost:7644/_pogi/에서 웹 콘솔을 열면 버킷과 실행한 모든 호출을 볼 수 있다. 애플리케이션 코드도 엔드포인트와 인증 정보만 바꾸면 되며, pogi env가 두 값을 설정한다.

macOS용 Homebrew 외에 Debian·Ubuntu에서는 .deb 패키지를 설치할 수 있다. Arm 시스템에서는 파일 이름의 amd64를 arm64로 바꾼다.

sh
curl -LO https://github.com/nrndev/pogi/releases/download/v0.1.0/pogi_0.1.0_linux_amd64.deb
sudo apt install ./pogi_0.1.0_linux_amd64.deb

Fedora, RHEL, Amazon Linux에서는 같은 위치의 .rpm 패키지를 사용한다.

sh
sudo dnf install ./pogi_0.1.0_linux_amd64.rpm

Windows에서는 Scoop으로 설치한다.

sh
scoop bucket add nrndev https://github.com/nrndev/scoop-bucket
scoop install nrndev/pogi

Docker 이미지는 별도 설치 없이 실행할 수 있다. 이미지에 Python과 Node.js가 포함돼 있어 함수가 컨테이너 안에서 실행된다. 포트 10000~10002는 Azure Storage용이다.

sh
docker run --rm -p 127.0.0.1:7644:7644 -p 127.0.0.1:10000-10002:10000-10002 ghcr.io/nrndev/pogi

Go 1.27.2 이상에서는 다음 명령으로 설치한다.

sh
go install github.com/nrndev/pogi/cmd/pogi@latest

Linux, macOS, Windows용 바이너리를 Intel 또는 Arm 환경에 맞춰 릴리스 페이지에서 받을 수도 있다. 설치 후 pogi doctor로 설정을 확인할 수 있으며, 자세한 내용은 설치 문서에 있다.

클라우드 도구와 콘솔

Pogi는 localhost:7644 한 곳에서 AWS 131개, Google Cloud 26개, Azure 24개 서비스를 제공한다. 각 서비스마다 별도 에뮬레이터를 설치할 필요가 없다는 것이 제작자의 설명이다. 공식 SDK를 대상으로 테스트하며, Lambda는 Python과 Node.js를 직접 실행한다. Terraform과 cdk deploy도 사용할 수 있고, S3에서 SQS로, SNS에서 Lambda로 이어지는 호출과 Pub/Sub push, Event Grid 등 서비스 간 연동도 지원한다고 한다.

테스트를 위해 한 번의 명령으로 상태를 초기화하고, 스냅샷을 저장·불러오며, 지정한 호출을 실패시키거나 지연할 수 있다. 상태는 디스크 또는 메모리에 둘 수 있고, CI에서 실행하거나 Go 테스트 안에서 시작할 수 있다.

LocalStack을 대체하는 용도로도 쓸 수 있도록 같은 헬스 엔드포인트와 초기화 훅, Ready. 로그 문구를 제공한다. --port 4566을 지정하면 기존 엔드포인트를 유지할 수 있다. LocalStack에서 마이그레이션하는 방법을 참고할 수 있다.

Pogi는 127.0.0.1에서만 요청을 받고, 다른 웹사이트에서 오는 요청을 거부하며, 제작자에게 데이터를 전송하지 않는다고 설명한다. 콘솔에는 호출 기록과 한 요청이 다른 서비스로 이어지는 호출 흐름, 리소스와 연결 관계를 보여주는 지도, 실시간 트래픽이 표시된다. 각 호출자가 실제로 한 작업을 바탕으로 최소 권한 IAM 정책을 만들고 --iam soft 또는 --iam strict로 적용할 수 있다. 실제 클라우드에서의 대략적인 월간 비용 추정, 장애 주입 규칙과 스냅샷, SQL 편집기, 비밀 정보, 애플리케이션이 보낸 이메일·SMS·푸시 메시지 받은 편지함도 제공한다.

AWS CLI와 SDK는 eval "$(pogi env)" 또는 pogi aws …로 연결한다. Terraform은 pogi tf > pogi_override.tf를 사용하고, AWS CDK는 래퍼 없이 cdk bootstrap과 cdk deploy를 실행한다. Google Cloud 클라이언트 라이브러리와 gcloud는 pogi env가 설정한 변수를 읽는다. Azure에서는 스토리지에 Azurite 포트를 사용하고 Cosmos DB와 Key Vault에는 HTTPS를 쓴다. Go 테스트에서 Pogi를 프로세스 안에서 시작하는 방법도 있다. 각 도구의 설정은 연결 안내에 정리돼 있다.

코딩 에이전트 연동

Pogi에는 MCP 서버가 내장돼 있어 Claude Code, Cursor, Codex 같은 AI 코딩 에이전트가 로컬 클라우드를 살펴보고 작업을 실행할 수 있다. 에이전트는 실제 계정에 접속하지 않고 스택을 배포하거나 작성한 함수를 호출하고, 함수 로그와 큐를 확인하며, 거부된 IAM 호출을 살펴볼 수 있다.

Pogi를 실행한 상태에서 Claude Code에 다음 명령으로 추가한다.

sh
claude mcp add pogi -- pogi mcp

pogi mcp --print-config는 Cursor와 Codex용 설정도 출력한다. pogi agents init은 Pogi 사용법을 간략히 설명하는 내용을 프로젝트의 AGENTS.md에 추가한다. MCP 서버는 22개 도구를 제공한다. 에이전트는 이를 이용해 리소스와 상세 정보, 요청 로그와 개별 요청 전체를 확인하고, IAM 판단과 대기 중인 메시지, 앱이 보낸 이메일·SMS, 함수 로그를 살펴볼 수 있다. 함수 호출, CloudFormation 스택 배포·삭제, 리소스 초기화, 상태 초기화도 가능하다. 스냅샷을 저장·불러오거나 장애 주입 규칙을 추가·삭제해 실패 상황을 시험할 수도 있다.

클라우드 호출은 여전히 일반 SDK와 CLI를 거친다. 따라서 에이전트는 사용자가 직접 코드를 시험할 때와 같은 방식으로 코드를 테스트한다. 전체 도구 목록은 CLI 참조 문서에 있다.

지원 서비스와 제한

총 181개 서비스 가운데 AWS가 131개, Google Cloud가 26개, Azure가 24개다. 다음은 제공되는 서비스의 주요 목록이다.

클라우드지원 서비스
AWSS3, SQS, SNS, DynamoDB와 Streams, Lambda, API Gateway v1·v2, Step Functions, EventBridge와 Scheduler, Kinesis·Firehose, CloudFormation, IAM, STS, KMS, Secrets Manager, CloudWatch Logs·Metrics, SES v1·v2, Cognito 사용자 풀, AppSync, EventBridge Pipes, API Gateway WebSockets, Cognito 자격 증명 풀, IoT Core, Cloud Map, CloudTrail, Fault Injection Service, CodeDeploy·CodePipeline, Organizations와 SCPs, Verified Permissions, Resource Explorer, AppConfig, CloudFront, S3 Vectors, SES SMTP, IAM Identity Center, 보안 서비스, Transfer Family, DataSync, S3 Tables, AWS Backup, Config, Managed Prometheus, RUM, OAM, Cloud Control API, Beanstalk, EMR, MWAA, Flink, Lightsail, DMS, Lake Formation, Connect, Bedrock 및 AI 서비스, 비용 서비스, ACM, Route 53, EC2 네트워크, Tagging과 그 밖의 16개 장기 꼬리 서비스. 장기 꼬리 서비스는 AWS API 모델에서 생성되며 문서에 설명돼 있다. Docker 실행 시 Systems Manager(SSM), RDS·ElastiCache, ECR, ECS, ELB v2, EC2 transit gateways·flow logs·hosts·images, EKS, EC2 instances, Auto Scaling·Application Auto Scaling, Batch, CodeBuild, RDS 추가 기능, ElastiCache users·MemoryDB, MSK, Amazon MQ, OpenSearch Service, Glue·Athena, Redshift·Data API·Serverless, Timestream for InfluxDB도 제공한다.
Google CloudCloud Storage, Pub/Sub, Firestore(Native·Datastore mode), Secret Manager, Cloud Logging, Cloud Monitoring, Cloud Tasks, Cloud Scheduler, Eventarc, IAM, IAM Credentials, OAuth2, STS, Resource Manager, Service Usage, Cloud KMS, Firebase Auth, 장기 실행 작업. Docker 실행 시 Cloud SQL, Cloud Run, BigQuery, Cloud Functions, Managed Kafka, Kubernetes Engine, Compute Engine, Artifact Registry도 제공한다.
AzureBlob Storage, Queue Storage, Table Storage, Cosmos DB(NoSQL), Key Vault, Service Bus, Event Hubs, Event Grid, App Configuration, SignalR, Communication Services email, Resource Manager, Entra ID, Managed Identity, Graph, 관리 평면(ARM), Azure Monitor, Virtual Network, API Management. Docker 실행 시 Azure Functions, Azure SQL, PostgreSQL, MySQL, MariaDB, Cache for Redis, Kubernetes Service, Container Registry, Container Instances, Container Apps, Virtual Machines도 제공한다.

대부분의 서비스는 Pogi 안에서 실행된다. 목록에서 Docker 실행이 필요한 서비스는 Postgres, Redis, Kafka 같은 실제 소프트웨어를 Docker, Podman, Colima 또는 OrbStack에서 시작한다.

Pogi는 실제 클라우드가 아니다. 일부 서비스는 다른 서비스와 연동되는 실제 동작을 폭넓게 지원하지만, 일부는 일반적인 생성·읽기·삭제 호출만 지원한다. 서비스별 지원 범위와 아직 지원하지 않는 기능은 지원 범위 문서에서 확인할 수 있다.

로컬 개발과 테스트용으로 만들어졌으며 기본적으로 데이터를 메모리에 보관한다. 업로드 크기는 기본 10MB로 제한되고 --max-upload-mb로 높일 수 있다. 다른 사람을 위한 서버로 실행하지 말아야 한다. 실제 클라우드에 연결하지 않으므로 실제 인증 정보를 제공해서는 안 되며, pogi env가 테스트용 인증 정보를 설정한다.

Pogi는 버전 0.x의 초기 단계 제품이다. 플래그, 설정 키, API는 릴리스 사이에 바뀔 수 있으며 변경 내역은 변경 기록에 정리된다. 문서에는 첫 실행 튜토리얼, FAQ, 버그 신고와 기여 방법을 다룬 CONTRIBUTING.md, 취약점 비공개 신고 방법을 담은 SECURITY.md가 있다. 기본 라이선스는 MIT다. AWS API 모델에서 생성된 일부 서비스에는 Apache 2.0 라이선스가 적용되며 자세한 내용은 NOTICE에 있다.