Install tooling
Progress checklist
Overview
Section titled “Overview”Install and version-check these tools before Prerequisites and the
walkthrough. The lab needs a current AWS CLI so aws kinesis create-channel exists.
Version matrix
Section titled “Version matrix”| Tool | Minimum | Demo / verified here | Why |
|---|---|---|---|
| AWS CLI v2 | 2.36.35 | 2.36.38 | create-channel shipped in 2.36.35; 2.36.38 is the latest stable used for this guide |
| Java | 11 | 21 (OpenJDK) | Replay sample pom.xml targets 11; 17/21 LTS also work |
| Maven | 3.8+ | 3.9.6 | Builds the replay JAR |
| jq | 1.6+ | 1.7.1 | scripts/demo.sh reads .lab-state.json |
Install AWS CLI v2
Section titled “Install AWS CLI v2”Follow the official install guide.
User-local install — works when you cannot write to /usr/local:
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.36.38.zip" -o "awscliv2.zip"unzip awscliv2.zipmkdir -p "$HOME/.local/bin" "$HOME/.local/share/aws-cli"./aws/install \ --bin-dir "$HOME/.local/bin" \ --install-dir "$HOME/.local/share/aws-cli" \ --updateexport PATH="$HOME/.local/bin:$PATH"aws --versionPut export PATH="$HOME/.local/bin:$PATH" in your shell profile so a newer system CLI cannot
shadow it. Use awscli-exe-linux-aarch64-2.36.38.zip on ARM.
curl -fsSL https://awscli.amazonaws.com/v2/install.sh | bashexport PATH="$HOME/.local/bin:$PATH"aws --version# requires root for /usr/local installssudo aws update# or:curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.36.38.zip" -o "awscliv2.zip"unzip awscliv2.zipsudo ./aws/install --updateaws --versionConfirm the pin
Section titled “Confirm the pin”which awsaws --versionLooks like after a successful pin to 2.36.38:
~/.local/bin/awsaws-cli/2.36.38 Python/3.14.6 Linux/… exe/x86_64.fedora.41Confirm the channel APIs exist (this is the gate that fails on older CLIs):
aws kinesis help | grep channelLooks like:
o create-channel o delete-channel o describe-channel o list-channels o update-channelGate check you can paste:
aws --version# expect: aws-cli/2.36.38 …
aws kinesis help | grep -E 'create-channel|describe-channel' || { echo "Channel APIs missing — upgrade AWS CLI to >= 2.36.35" exit 1}Install Java, Maven, and jq
Section titled “Install Java, Maven, and jq”Needed for optional ./scripts/demo.sh replay. up / status / producer / down need the
AWS CLI and jq (producer also needs zip). Optional viz needs python3 (stdlib only) to
build the HTML report.
# Fedora / RHEL-family example — use your distro equivalentssudo dnf install -y java-21-openjdk-devel maven jqConfirm versions
Section titled “Confirm versions”java -versionmvn -version | head -3jq --versionLooks like on this authoring host (OpenJDK 21, Maven 3.9.6, jq 1.7.1):
openjdk version "21.0.9" 2025-10-21
Apache Maven 3.9.6 (Red Hat 3.9.6-7)Maven home: /usr/share/mavenJava version: 21.0.9, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-21-openjdk
jq-1.7.1Configure the profile
Section titled “Configure the profile”aws configure --profile sandboxexport AWS_PROFILE=sandboxexport AWS_REGION=ap-southeast-2aws sts get-caller-identitydemo.sh refuses to run without both variables set, and refuses AWS CLI versions below
2.36.35.
Continue to Prerequisites, then the CLI overview.