Overview
S2 Lite uses object storage as its primary durability layer through SlateDB. This guide covers setup for popular S3-compatible storage providers.AWS S3
Prerequisites
- AWS account with S3 access
- IAM credentials or EC2 instance profile
- S3 bucket created in your desired region
IAM Permissions
Create an IAM policy with the following permissions:Local Development with AWS Profile
Configure AWS credentials
Create an S3 bucket
Run S2 Lite with Docker
Production with IAM Roles
EC2 Instance Profile
Create IAM role
Launch S2 Lite
Kubernetes with IRSA (EKS)
Create IAM role for service account
Install Helm chart with IRSA
Static Credentials (Not Recommended)
Tigris
Tigris provides globally distributed S3-compatible object storage with low latency.Setup
Create Tigris bucket
Get credentials
- AWS Access Key ID
- AWS Secret Access Key
Run S2 Lite
Kubernetes Deployment
Create secret for credentials
Deploy with Helm
Cloudflare R2
Cloudflare R2 provides S3-compatible storage with zero egress fees.Setup
Create R2 bucket
Generate API token
- Access Key ID
- Secret Access Key
- Account ID (for endpoint)
Run S2 Lite
Public Endpoint (Optional)
Cloudflare R2 supports custom domains for public bucket access:MinIO (Self-Hosted)
MinIO is a high-performance, self-hosted S3-compatible object store.Local Development
Start MinIO server
Create bucket
s2lite.Run S2 Lite
Production Deployment
For production MinIO deployments:Advanced Configuration
SlateDB Settings
Customize SlateDB behavior usingSL8_ prefixed environment variables:
Enable Pipelining (Experimental)
Enable append pipelining for improved performance:Path Organization
Use the--path flag to organize multiple S2 Lite instances in the same bucket:
Testing Your Setup
Check server health
200 OK.Configure S2 CLI
Create a basin
Test write and read
Troubleshooting
Connection Issues
Error: Failed to connect to object storage
Error: Failed to connect to object storage
- Verify bucket name is correct
- Check endpoint URL format (must include
https://orhttp://) - Ensure credentials have proper permissions
- Test connectivity:
aws s3 ls s3://your-bucket --endpoint-url $AWS_ENDPOINT_URL_S3
Error: Access Denied
Error: Access Denied
- Review IAM policy permissions
- Verify bucket exists in the specified region
- Check that credentials are not expired
- For IRSA, ensure service account annotations are correct
Error: Region mismatch
Error: Region mismatch
Performance Issues
High latency on appends
High latency on appends
- Reduce
SL8_FLUSH_INTERVALfor faster acknowledgment (at cost of more object store writes) - Enable pipelining with
S2LITE_PIPELINE=true(experimental) - Ensure S2 Lite is deployed in the same region as your object storage
Slow startup
Slow startup
manifest_poll_interval on startup to ensure proper fencing. This is expected behavior. Reduce interval if needed: