\chapter{Hosts} \ChapterLabel{Hosts} \index{hosts} \index{hosts!inventory} \index{hosts!naming convention} \index{development environment} \index{Amazon EC2} \section{Purpose} This chapter names the hosts that make up the development environment for \CourseNumber\ and records the role, platform, owner, and status of each. Hosts in service are described here at inventory level; their configuration and execution \gls{evidence} are recorded in the chapter for the activity that uses them. The inventory may grow or change depending on assignment requirements. \section{Naming Convention} \index{hosts!naming} Each \gls{host} that is provisioned for this course is named \texttt{ssw590-\textit{role}-\textit{nn}}, where \textit{role} identifies the function the machine serves and \textit{nn} is a two-digit ordinal within that role. Naming by role rather than by instance identifier keeps the name stable if the underlying machine is replaced, and keeps the inventory readable when more than one host serves the same purpose. Hosts that already exist independently of this course retain their existing names. \section{Host Inventory} \index{hosts!table} The \textbf{Status} column distinguishes machines already in use from those that will be configured in a later assignment. A host is marked \emph{In service} only once it exists and is reachable. \begin{tabularx}{\linewidth}{L{3.5cm}YL{3.0cm}L{2.2cm}} \caption{Host Inventory\label{Table:HostInventory}}\\ \toprule \textbf{Host name} & \textbf{Role} & \textbf{Platform} & \textbf{Status}\\ \midrule \endfirsthead \multicolumn{4}{l}{\small\itshape Host Inventory (continued)}\\ \toprule \textbf{Host name} & \textbf{Role} & \textbf{Platform} & \textbf{Status}\\ \midrule \endhead \bottomrule \endlastfoot \texttt{ssw590-group-web} & Group deployment target. Runs Color Buttons and the Gitea work hub in \ChapterRef{GiteaFoundation}; Elastic IP \texttt{100.49.80.94}. & Ubuntu 26.04 LTS on Amazon EC2, \texttt{t3.micro} & In service\\ \texttt{ssw590-dev-01} & Primary Linux host for the course. Target for service configuration, deployment exercises, and command-line work. & Ubuntu Server LTS on Amazon EC2 & Planned\\ \end{tabularx} \section{Access and Ownership} \index{hosts!access model} \index{least privilege} \texttt{ssw590-group-web} is shared by both authors and runs under Victor's AWS account, where each author has a separate IAM identity. For the Gitea deployment, both authors currently connect to the Linux \texttt{ubuntu} account using separate public keys. Victor is a Gitea site administrator; Payton has a separate regular Gitea account. Linux account-level attribution is shared; per-person Linux accounts remain a future improvement. Administrative SSH is restricted to approved source IPv4 addresses. The observed rules and connection limitations are in \ChapterRef{GiteaFoundation}. This inventory does not claim that SSH password authentication or sudo policy was independently audited during this exercise. \section{Cost and Cleanup} \index{hosts!cost} \index{hosts!teardown} \texttt{ssw590-group-web} runs on a \texttt{t3.micro} instance and is covered by a monthly AWS budget alert. Compute is billed per instance-hour, and attached storage and the public IPv4 address are billed as well, so each additional host adds cost independently of how heavily it is used: provisioning \texttt{ssw590-build-01} would approximately double the compute cost of the environment. It is therefore left unprovisioned unless required in the future, and would be stopped between uses rather than run continuously. Course hosts are disposable. Teardown consists of terminating the instance and deleting its storage volume. \texttt{ssw590-group-web} uses Elastic IP \texttt{100.49.80.94}, associated on October 12, 2026. Release that allocation when no longer required; stopping or terminating an instance alone does not release the Elastic IP.