Quack on WebAssembly

Quack on WebAssembly (WebAssembly에서의 Quack)

CloudFormation 스택

큐약 베이킹된(사전 구성된) public AMI(Ubuntu 기반)로 CloudFormation 스택을 초기화하는 예시 템플릿을 제공해요. 이 템플릿은 다음을 수행해요:

  • DuckDB를 통해 Quack을 설치·로드하고, 무작위 토큰을 생성하고, 0.0.0.0:1294 포트에서 quack_serve를 실행한다.
  • nginx를 통해 0.0.0.0:1294와 들어오는 :443 포트 사이 프록시를 설정한다
  • Let's Encrypt로 유효한 TLS 인증서를 얻는다

이 모든 것이 로컬 0.0.0.0:1294 포트를 HTTPS를 통해 public EC2 인스턴스 IP로 노출하게 해줘요.

출처: 문서

본문

템플릿은 https://duckdb-quack-ami.s3.us-east-1.amazonaws.com/quack.yaml에서 접근할 수 있고, (현재) 8개 리전의 이미지로 지원돼요:

  • us-east-1
  • us-east-2
  • us-west-1
  • us-west-2
  • eu-central-1
  • eu-west-1
  • ap-northeast-1
  • ap-southeast-1

입력은 인스턴스 타입(기본 t3.micro)과 스택 이름(같은 org/리전에서 고유해야 함)뿐이에요.

템플릿은 https://github.com/duckdb/duckdb-quack-infra에서 유지 관리돼요.

Web UI로 배포

  1. https://console.aws.amazon.com/cloudformation/home#/stacks/quickcreate?templateURL=https://duckdb-quack-ami.s3.us-east-1.amazonaws.com/quack.yaml&stackName=my-duckdb-quack-demo 방문
  2. 로그인하고, 이름을 선택하고, 가능하면 인스턴스 클래스를 선택한 다음 Launch Stack 클릭.

이는 과금이 발생해요. 이후 스택 페이지를 확인하고 더 이상 관련 없는 스택은 삭제해야 해요.

aws CLI로 배포

us-east-2 리전에 my-quack-demo라는 이름으로 Quack 데모를 배포하려면:

aws cloudformation create-stack \
  --stack-name my-quack-demo \
  --template-url https://duckdb-quack-ami.s3.us-east-1.amazonaws.com/quack.yaml \
  --region us-east-2

배포가 완료될 때까지 약 2분 기다려요 (이 명령은 블로킹입니다):

aws cloudformation wait stack-create-complete \
  --stack-name my-quack-demo \
  --region us-east-2

자동 생성된 출력을 확인해요:

aws cloudformation describe-stacks \
  --stack-name my-quack-demo \
  --region us-east-2 \
  --query 'Stacks[0].Outputs' \
  --output table

이제 관련 링크를 방문할 수 있어요. 그 링크는 방금 만든 quack 서버에 DuckDB-Wasm으로 연결하는 것을 인코딩해요.

삭제 (Destroy)

aws cloudformation delete-stack \
  --stack-name my-quack-demo \
  --region us-east-2

Web UI

AWS 웹 사용자 인터페이스에서 CloudFormation 스택의 상태를 보려면 CloudFormation 콘솔을 방문해요.

더 알아보기 (Learn more)

Quack 프로토콜의 전체 참조는 [Reference]({% link docs/current/quack/reference.md %}) 문서를 참고해요.