Listing Thumbnail

    Charon API Rate Limiter

     Info
    Sold by: VGOV LLC 
    Deployed on AWS
    Charon is a lightweight rate-limiting proxy that protects containerized APIs from excess traffic and basic abuse without requiring application code changes.

    Overview

    Charon runs in front of your API and checks each request before forwarding it to your application. It supports rate limits by IP address, API key, JWT subject, or custom header, with token-bucket and sliding-window options.

    Charon can be deployed as a sidecar or standalone gateway on Amazon ECS, Amazon EKS, AWS Fargate, or Docker. Configuration is handled through a YAML file and environment variables, and updates can be loaded without restarting the service.

    Traffic remains inside your AWS environment. Prometheus metrics, health checks, and structured JSON logs are included for monitoring with tools such as Amazon CloudWatch and Grafana.

    Highlights

    • Add rate limiting to an existing containerized API without changing application code.
    • Deploy on Amazon ECS, Amazon EKS, AWS Fargate, or Docker as a sidecar or standalone gateway.
    • Keep API traffic inside your VPC while using Prometheus metrics, health checks, and structured logs for monitoring.

    Details

    Sold by

    Delivery method

    Supported services

    Delivery option
    Charon Container Image

    Latest version

    Operating system
    Linux

    Deployed on AWS
    New

    Introducing multi-product solutions

    You can now purchase comprehensive solutions tailored to use cases and industries.

    Multi-product solutions

    Features and programs

    Financing for AWS Marketplace purchases

    AWS Marketplace now accepts line of credit payments through the PNC Vendor Finance program. This program is available to select AWS customers in the US, excluding NV, NC, ND, TN, & VT.
    Financing for AWS Marketplace purchases

    Pricing

    Charon API Rate Limiter

     Info
    Pricing is based on the duration and terms of your contract with the vendor. This entitles you to a specified quantity of use for the contract duration. If you choose not to renew or replace your contract before it ends, access to these entitlements will expire.
    Additional AWS infrastructure costs may apply. Use the AWS Pricing Calculator  to estimate your infrastructure costs.

    1-month contract (3)

     Info
    Dimension
    Description
    Cost/month
    Charon Starter
    Rate limiting and abuse protection for one containerized API service.
    $50.00
    Charon Team
    Rate limiting and abuse protection for up to five containerized API services.
    $200.00
    Charon Business
    Rate limiting and abuse protection for larger deployments with unlimited API services.
    $1,000.00

    AI Insights

     Info

    Dimensions summary

    You buy Charon as a contract, priced by how many containerized API services you protect. Three options scale with deployment size. Charon Starter covers one API service. Charon Team covers up to five API services. Charon Business covers larger deployments with unlimited API services. All three deliver the same rate limiting and abuse protection; only the number of protected services changes. Pricing does not scale with request volume. Instead, you pick the option matching how many services you need to put behind the proxy.

    Top-of-mind questions for buyers

    An API service is one containerized application you put behind the proxy. Charon runs as a sidecar or standalone gateway in front of each service, keying callers by IP, API key, JWT subject, or header. Each protected service counts toward your option: Starter covers one, Team covers up to five, Business covers unlimited.
    No. Charon is priced by the number of protected API services, not by request count. Your traffic can double and the contract cost stays the same. There are no per-request charges at any volume. Cost only changes if you need to protect more services and move to a different option.
    Replicas of the same service protect one API service, so they fit within one service count. Note that limits are currently held in memory per instance, so multiple replicas multiply the effective limit. For a hard global ceiling, run Charon as a single standalone gateway rather than one sidecar per replica.
    barthro.com
    Helpful?

    Vendor refund policy

    Refund requests may be submitted within 14 days of purchase. We will consider refunds for accidental purchases, duplicate orders, or confirmed technical issues that prevent use of the product. To request a refund, contact support@barthro.com  with your AWS account ID, order details, and reason for the request. Approved refunds will be processed through AWS Marketplace.

    How can we make this page better?

    Tell us how we can improve this page, or report an issue with this product.
    Tell us how we can improve this page, or report an issue with this product.

    Legal

    Vendor terms and conditions

    Upon subscribing to this product, you must acknowledge and agree to the terms and conditions outlined in the vendor's End User License Agreement (EULA) .

    Content disclaimer

    Vendors are responsible for their product descriptions and other product content. AWS does not warrant that vendors' product descriptions or other product content are accurate, complete, reliable, current, or error-free.

    Usage information

     Info

    Delivery details

    Charon Container Image

    Supported services: Learn more 
    • Amazon ECS
    Container image

    Containers are lightweight, portable execution environments that wrap server application software in a filesystem that includes everything it needs to run. Container applications run on supported container runtimes and orchestration services, such as Amazon Elastic Container Service (Amazon ECS) or Amazon Elastic Kubernetes Service (Amazon EKS). Both eliminate the need for you to install and operate your own container orchestration software by managing and scheduling containers on a scalable cluster of virtual machines.

    Version release notes

    Initial production release of Charon. This version includes per-caller API rate limiting, token-bucket and sliding-window algorithms, path-specific limits, basic abuse detection, Prometheus metrics, structured logs, health checks, and live policy reloads. It supports Docker, Amazon ECS, Amazon EKS, and AWS Fargate deployments.

    Additional details

    Usage instructions

    CHARON 1.0.0 QUICKSTART

    Charon runs in front of your API on port 8080 and forwards allowed requests to your backend.

    REQUIREMENTS

    • Docker, Amazon ECS, Amazon EKS, or AWS Fargate
    • A reachable HTTP backend
    • Linux AMD64
    • Ports 8080 and 9110

    IMAGE

    IMAGE="709825985650.dkr.ecr.us-east-1.amazonaws.com/vgov/charon:1.0.0"

    RUN WITH DOCKER

    Create a network for Charon and your application:

    docker network create charon-network

    Start your application on the network. Replace YOUR_APPLICATION_IMAGE with your image:

    docker run -d
    --name app
    --network charon-network
    YOUR_APPLICATION_IMAGE

    Start Charon and point it to the application:

    docker run -d
    --name charon
    --network charon-network
    -p 8080:8080
    -p 9110:9110
    -e CHARON_UPSTREAM=http://app:3000 
    "$IMAGE"

    For an Amazon ECS or AWS Fargate sidecar where both containers are in the same task, use:

    CHARON_UPSTREAM=http://127.0.0.1:3000 

    CHECK HEALTH

    Check the Docker health status:

    docker inspect
    --format='{{.State.Health.Status}}'
    charon

    The expected result is:

    healthy

    Check the health endpoint:

    curl http://localhost:9110/healthz 

    The expected response is:

    ok

    SEND REQUESTS

    Send traffic to Charon instead of connecting directly to your backend:

    curl -i http://localhost:8080/ 

    Allowed requests return your backend response. Requests that exceed the configured limit return:

    HTTP/1.1 429 Too Many Requests

    The response may include a Retry-After header.

    VIEW METRICS

    Prometheus metrics are available at:

    curl http://localhost:9110/metrics 

    Metrics include allowed requests, denied requests, abuse activity, upstream errors, active caller keys, and proxy latency.

    Keep port 9110 private and accessible only to trusted monitoring and health-check systems.

    VIEW LOGS

    docker logs charon

    Logs use JSON by default. For readable text logs, add this option when starting Charon:

    -e CHARON_LOG_FORMAT=text

    CUSTOM CONFIGURATION

    Create charon.yaml:

    listen: ":8080" admin: ":9110" upstream: "http://app:3000 " upstream_timeout: "30s" log_format: "json"

    key: from: ip trusted_proxy: false

    limits: algorithm: token_bucket rate: 100 window: "1s" burst: 200 overrides: - path_prefix: "/auth/" rate: 10 window: "1s" burst: 10

    abuse: burst: enabled: true threshold: 50 window: "1s" action: block

    response: status: 429 retry_after: true body: "rate limited\n"

    Validate the configuration:

    docker run --rm
    --entrypoint /usr/local/bin/charon
    -v "$PWD/charon.yaml:/etc/charon/charon.yaml:ro"
    "$IMAGE" check /etc/charon/charon.yaml

    Run with the configuration:

    docker run -d
    --name charon
    --network charon-network
    -p 8080:8080
    -p 9110:9110
    -v "$PWD/charon.yaml:/etc/charon/charon.yaml:ro"
    "$IMAGE"

    RELOAD CONFIGURATION

    After changing limits, abuse rules, path overrides, or denial responses, reload without restarting:

    docker kill --signal HUP charon

    Invalid changes are rejected, and the last valid configuration remains active. Changes to the upstream or listening addresses require a restart.

    PRODUCTION NOTES

    • Set trusted_proxy to true only behind a trusted load balancer or proxy.
    • Charon does not terminate TLS. Terminate HTTPS at your load balancer, ingress controller, or service mesh.
    • Rate-limit counters are stored separately in each Charon instance.
    • Keep your backend private so clients cannot bypass Charon.
    • Send application traffic to port 8080.
    • Restrict port 9110 to internal monitoring.

    Support

    Vendor support

    Support is available by email at support@barthro.com . Customers can contact us for installation help, configuration guidance, troubleshooting, and product-related questions. Standard support hours are Mon-Fri, 8am to 5pm, with responses typically provided within24 hours

    AWS infrastructure support

    AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.

    Similar products

    Customer reviews

    Ratings and reviews

     Info
    0 ratings
    5 star
    4 star
    3 star
    2 star
    1 star
    0%
    0%
    0%
    0%
    0%
    0 reviews
    No customer reviews yet
    Be the first to review this product . We've partnered with PeerSpot to gather customer feedback. You can share your experience by writing or recording a review, or scheduling a call with a PeerSpot analyst.