컨테이너 경계(Docker) · 물리 분리(SSH) · 도구형 셸(Strands Shell) — 격리 수준과 운영 부담의 트레이드오프
Docker 컨테이너
파일시스템·네트워크·프로세스를 컨테이너 경계로 격리
✓ 환경 재현성 높음
✓ 네트워크 정책 세밀 제어
✓ 이미지 기반 빠른 프로비저닝
✗ Docker 데몬 필요
✗ GPU 패스스루 설정 복잡
SSH 원격 실행
별도 서버에서 명령 실행 — 호스트와 물리적 분리
✓ 완전한 환경 분리
✓ 기존 인프라 활용 가능
✓ 멀티 테넌트 지원
✗ 네트워크 지연 발생
✗ 서버 관리 오버헤드
Strands Shell
Docker·SSH 격리 백엔드 안에서 실행되는 셸 환경
✓ 셸 실행을 도구로 바로 제공
✓ 백엔드 선택으로 격리 수준 조절
✓ 빠른 시작
✗ 격리 백엔드 별도 구성 필요
✗ 복잡한 워크플로우에 한계
takeaway
세 방식은 배타적이지 않습니다 — Strands Shell이 Docker·SSH 백엔드 위에서 도구를 제공하는 조합이 기본형입니다.
PART 5 · Sandbox
Docker Sandbox 연결
Agent 생성 시 sandbox=로 실행 중 컨테이너에 연결 — 파일·셸 작업 격리
python
from strands import Agent
from strands.sandbox.docker import DockerSandbox
# 사전에 실행 중인 컨테이너에 연결
sandbox = DockerSandbox(container="agent-workspace")
agent = Agent(
model="us.anthropic.claude-sonnet-4-6",
sandbox=sandbox,
# sandbox_bash, sandbox_file_editor 도구가 자동 등록됨
)
# 에이전트의 모든 파일/셸 작업이 컨테이너 내부에서 실행
result = agent("프로젝트의 테스트를 실행하고 결과를 요약해줘")