Skip to content

Improve AWS single-tier documentation#689

Merged
sbrossie merged 3 commits into
v3from
improve-single-tier-aws-doc
Jul 20, 2026
Merged

Improve AWS single-tier documentation#689
sbrossie merged 3 commits into
v3from
improve-single-tier-aws-doc

Conversation

@sbrossie

Copy link
Copy Markdown
Member

Summary

  • Reorganizes how-to-set-up-a-single-tier-system.adoc to mirror the actual EC2 launch-wizard flow (Name/tags, AMI, instance type, key pair, network settings, storage, launch) instead of the older, out-of-sync step sequence.
  • Removes the architecture diagram and nginx/443/8443 references, which no longer match the deployment — Kaui now listens directly on 3000 and Kill Bill on 8000, with no reverse proxy.
  • Drops the hardcoded AMI version requirement ("2023.3 or later"), which goes stale every release.
  • Explains what a public subnet is (route table with a 0.0.0.0/0 route to an Internet Gateway) and how to create/verify one, since every default VPC ships with one already.
  • Fixes the security group instructions: the AWS wizard auto-fills rules for 443/8443, which must be corrected to 3000/8000; the SSH/22 rule is now added inline during network settings instead of as a separate post-launch step.
  • Adds explicit guidance for the Storage step and updates all screenshots to match the current AWS Marketplace/EC2 console UI.
  • Removes tutorial-single-tier.adoc, an orphaned draft (not linked from index.adoc or any nav, superseded by this guide back in 2023) that duplicated the same stale content.

Fixes killbill/technical-support#285

Test plan

  • bundle exec asciidoctor build of the changed file completes with zero warnings/errors (--failure-level WARN)
  • Verified all image:: references resolve to existing files under userguide/assets/aws/
  • Verified no other doc references the removed images or the deleted tutorial page
  • Visual review of rendered HTML on docs site after merge

🤖 Generated with Claude Code

Reorganize how-to-set-up-a-single-tier-system.adoc to mirror the actual
EC2 launch wizard flow, and fix several discrepancies between the doc
and the real deployment:

- Remove the architecture diagram and nginx/443/8443 references, which
  no longer match the deployment (Kaui listens directly on 3000, Kill
  Bill on 8000, no reverse proxy).
- Drop the hardcoded AMI version requirement, which goes stale as new
  versions ship.
- Explain what a public subnet is (route table with a 0.0.0.0/0 route
  to an Internet Gateway) and how to create one.
- Fix the security group instructions: correct ports are 3000/8000, not
  443/8443, and the SSH/22 rule is now added during network settings
  instead of as a separate post-launch step.
- Add a Storage step and explicit Name/tags, AMI, and Instance type
  guidance, matching the sections actually shown in the EC2 console.
- Update screenshots to match the current AWS Marketplace/EC2 UI.

Also remove tutorial-single-tier.adoc, an orphaned draft that duplicated
this guide with the same stale content and wasn't linked from anywhere.

Fixes killbill/technical-support#285
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Jul 14, 2026

Copy link
Copy Markdown

Deploying docs-killbill-io with  Cloudflare Pages  Cloudflare Pages

Latest commit: f70b0eb
Status: ✅  Deploy successful!
Preview URL: https://e073c029.docs-killbill-io.pages.dev
Branch Preview URL: https://improve-single-tier-aws-doc.docs-killbill-io.pages.dev

View logs

@sbrossie
sbrossie requested a review from vnandwana July 15, 2026 03:03
sbrossie added 2 commits July 17, 2026 14:59
The single-tier AMI does run nginx as a reverse proxy in front of
Kaui and Kill Bill (ports 443/8443), not direct 3000/8000 access as
previously documented. Re-add the architecture diagram and fix the
security group and test-installation sections to reference the
correct ports.
- Move the SSH login instructions out of the single-tier setup steps
  into a new standalone doc (how-to-login-to-your-ec2-instance.adoc),
  since logging in is not required to run Kill Bill and the same
  instructions apply across single-tier, multi-tier, and CloudFormation
  deployments.
- Demote certificate setup from a required numbered step to an optional
  post-deployment task, and fix the dead certbot doc link to point to
  certbot's own site.
- Explain in the test-installation step that browsers (e.g. Chrome) will
  show a not-secure warning against the AMI's default self-signed cert,
  and that this is expected until a trusted CA certificate is installed.
- Update how-to-maintain-a-single-tier-system.adoc's stale cross-reference
  to point to the new SSH doc.
* Select the VPC where you want to deploy the EC2 instance.
* Choose a *public subnet* within that VPC.
* Ensure *Auto-assign public IP* is *enabled*.
image::../assets/aws/single-ami-network-settings.png[align=center]

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can break this screenshot into two parts (VPC and Subnet, and security group).

Also, the screenshot should have "Auto-assign public IP" enabled.

image::../assets/aws/single-ami-instances.png[align=center]
=== 5.3. Firewall (security group)

Leave *Create security group* selected. AWS pre-fills two inbound rules for you, for ports `443` and `8443`. *These are incorrect for this AMI* and must be changed to match the ports Kaui and Kill Bill actually listen on:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These ports are correct.

In a short time, the *Instance State* for your instance should indicate *Running*. Select the checkbox to the left of your instance ID. An information pane should open below with details about your instance.

[[step8]]
== Step 8: Login to Your Instance

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

After EC2 launch, we don't need to SSH to an instance. We can move step 9 here and add this step as optional (needed for troubleshooting or updating config files).

This document describes the procedures for setting up Kill Bill under AWS using the *single-tier* option. This option has limited capabilities but is very easy to setup. It uses a minimum of resources and may be suitable for very simple use cases. Everything you need for this option is bundled in the Kill Bill Amazon Machine Image (AMI) and will be launched on a single virtual Linux system, which AWS calls an *EC2 instance*.

The components of this system include Kill Bill, Kaui, a database manager (DBM), and a load balancer. The EC2 instance runs Ubuntu Linux. The DBM is an instance of https://mariadb.org[MariaDB], an open source version of MySQL. The load balancer is the open source package https://www.nginx.com[Nginx]. This package serves as a front end or reverse proxy, distributing the incoming traffic to either Kill Bill or Kaui based on the incoming port.
Kill Bill, Kaui, and the database all run on this single EC2 instance. The instance runs Ubuntu Linux, and the database is an instance of https://mariadb.org[MariaDB], an open source version of MySQL. Kaui, the administrative user interface, listens on port `3000`, and the Kill Bill server listens on port `8000`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should use the SSL ports 443 for Kaui, and 8443 for KB.

This document describes the procedures for setting up Kill Bill under AWS using the *single-tier* option. This option has limited capabilities but is very easy to setup. It uses a minimum of resources and may be suitable for very simple use cases. Everything you need for this option is bundled in the Kill Bill Amazon Machine Image (AMI) and will be launched on a single virtual Linux system, which AWS calls an *EC2 instance*.

The components of this system include Kill Bill, Kaui, a database manager (DBM), and a load balancer. The EC2 instance runs Ubuntu Linux. The DBM is an instance of https://mariadb.org[MariaDB], an open source version of MySQL. The load balancer is the open source package https://www.nginx.com[Nginx]. This package serves as a front end or reverse proxy, distributing the incoming traffic to either Kill Bill or Kaui based on the incoming port.
Kill Bill, Kaui, and the database all run on this single EC2 instance. The instance runs Ubuntu Linux, and the database is an instance of https://mariadb.org[MariaDB], an open source version of MySQL. Kaui, the administrative user interface, listens on port `3000`, and the Kill Bill server listens on port `8000`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

AMIs are configured to install MySQL 8.4 LTS

@sbrossie
sbrossie merged commit c93bdfd into v3 Jul 20, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants