79 lines
4.0 KiB
TeX
79 lines
4.0 KiB
TeX
\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 the website in \ChapterRef{CloudDockerDeployment}. & 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. The following rules are the target access policy
|
|
for course Linux hosts:
|
|
|
|
\begin{itemize}[leftmargin=*]
|
|
\item Interactive access is by \gls{ssh} public key only.
|
|
Password authentication is disabled in the server configuration.
|
|
The local account password recorded in \ChapterRef{Passwords} authenticates \texttt{sudo} only.
|
|
\item Inbound \gls{ssh} is restricted by source address to the local workstation
|
|
rather than opened to the public Internet.
|
|
\item Day-to-day work is performed by an unprivileged account. Administrative
|
|
rights are granted per command rather than by general membership in the
|
|
\texttt{sudo} group.
|
|
\item Teammates who require access after teams are formalized
|
|
receive a separate named account rather than a shared login, so that
|
|
access can be revoked individually and actions remain attributable.
|
|
\end{itemize}
|
|
|
|
\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 an automatically
|
|
assigned public address rather than a reserved static address, so there is no
|
|
address to release; its address changes if the instance is stopped and
|
|
started. |