Skip to content

Install tooling

Progress checklist

Install and version-check these tools before Prerequisites and the walkthrough. The lab needs a current AWS CLI so aws kinesis create-channel exists.

ToolMinimumDemo / verified hereWhy
AWS CLI v22.36.352.36.38create-channel shipped in 2.36.35; 2.36.38 is the latest stable used for this guide
Java1121 (OpenJDK)Replay sample pom.xml targets 11; 17/21 LTS also work
Maven3.8+3.9.6Builds the replay JAR
jq1.6+1.7.1scripts/demo.sh reads .lab-state.json

Follow the official install guide.

User-local install — works when you cannot write to /usr/local:

Terminal window
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64-2.36.38.zip" -o "awscliv2.zip"
unzip awscliv2.zip
mkdir -p "$HOME/.local/bin" "$HOME/.local/share/aws-cli"
./aws/install \
--bin-dir "$HOME/.local/bin" \
--install-dir "$HOME/.local/share/aws-cli" \
--update
export PATH="$HOME/.local/bin:$PATH"
aws --version

Put 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.

Terminal window
which aws
aws --version

Looks like after a successful pin to 2.36.38:

~/.local/bin/aws
aws-cli/2.36.38 Python/3.14.6 Linux/… exe/x86_64.fedora.41

Confirm the channel APIs exist (this is the gate that fails on older CLIs):

Terminal window
aws kinesis help | grep channel

Looks like:

o create-channel
o delete-channel
o describe-channel
o list-channels
o update-channel

Gate check you can paste:

Terminal window
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
}

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.

Terminal window
# Fedora / RHEL-family example — use your distro equivalents
sudo dnf install -y java-21-openjdk-devel maven jq
Terminal window
java -version
mvn -version | head -3
jq --version

Looks 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/maven
Java version: 21.0.9, vendor: Red Hat, Inc., runtime: /usr/lib/jvm/java-21-openjdk
jq-1.7.1
Terminal window
aws configure --profile sandbox
export AWS_PROFILE=sandbox
export AWS_REGION=ap-southeast-2
aws sts get-caller-identity

demo.sh refuses to run without both variables set, and refuses AWS CLI versions below 2.36.35.

Continue to Prerequisites, then the CLI overview.