第1章 なぜAWS運用にLinuxの知識が必要か

ここまでの初級〜上級では、Linuxというオペレーティングシステムそのものの操作を学んできました。このAWS運用実践編では、その知識を実際のAWSクラウド環境での運用にどうつなげていくかを扱います。AWSの個々のサービスを網羅的に解説するのではなく、「Linuxの知識がAWSのどの場面でそのまま活きるか」という橋渡しに重点を置いた、比較的コンパクトな全8章構成です。

EC2インスタンスの中身は、結局のところLinuxサーバーである

Amazon EC2(Elastic Compute Cloud)は、AWSが提供する仮想サーバーのサービスです。多くの場合、その中身はこれまで学んできたLinuxディストリビューション(Amazon Linux・Ubuntuなど)がそのまま動作しています。SSHで接続すれば、psやdf、systemctlといった、これまでのコマンドが同じように使えます。違うのは、物理的なハードウェアの代わりにAWSの管理画面やAPIを通じてサーバーを操作する、という周辺の仕組みの部分です。

実務のヒント: 「AWSを学ぶ」というと新しい専門知識ばかりに感じるかもしれませんが、実際にはこれまでのLinux運用の延長線上にある部分が多く、まったくのゼロからの学び直しにはなりません。

操作手段は2つ:マネジメントコンソールとAWS CLI

AWSの操作には、Webブラウザで操作するマネジメントコンソールと、コマンドラインから操作するAWS CLIの2種類があります。AWS CLIは結局のところシェルから実行するコマンドのため、パイプやリダイレクトなど、これまで学んだLinuxシェルの知識をそのまま活用できます。AWS CLIの具体的な使い方は、この編の後半の章で扱います。

AWSの責任共有モデルという考え方

AWSには責任共有モデル(Shared Responsibility Model)という考え方があります。データセンターの物理的な警備や、仮想化基盤(ハイパーバイザー)そのものの保守といった「クラウドのセキュリティ」はAWS側が担当し、ゲストOSの設定・パッチ適用・ネットワークのアクセス制御・データの管理といった「クラウドの中のセキュリティ」は利用者側が担当する、という役割分担です。この編で扱うEC2の設定やセキュリティグループの管理は、まさにこの「利用者側の責任範囲」にあたる部分です。

担当主な範囲
AWS側データセンターの物理的な警備、ハードウェア、仮想化基盤の保守
利用者側ゲストOSの設定・パッチ適用、ネットワークのアクセス制御、データの管理、アプリケーションの設定

「サーバーが増える」という変化への向き合い方

オンプレミス環境では、サーバー1台を用意するのに機材の調達から時間がかかるため、台数が増えすぎることはあまりありませんでした。一方でEC2では、コンソールやCLIから数分でサーバーを追加できるため、気づけば数十台、数百台のインスタンスを運用している、という状況になりやすいのが特徴です。1台ずつSSHでログインして状態を確認するやり方は、台数が増えるほど現実的ではなくなります。この編の後半で扱うCloudWatchによる監視の集約や、user-dataによる構築の自動化は、こうした「台数が増える」という前提に対応するための考え方だと捉えておくと、各章のつながりが見えやすくなります。

「壊れたら作り直す」という発想への切り替え

オンプレミスのサーバーは、一度構築したら長期間同じ機体を使い続けるのが基本でした。そのため、障害が起きたときはその機体を「直す」ことに主眼が置かれます。一方でEC2インスタンスは、コンソールから数クリックで起動・終了でき、実行中の時間に応じて料金が発生する従量課金の仕組みで提供されています。この性質から、AWS運用では調子の悪いインスタンスを時間をかけて直すよりも、正常な状態のAMIから新しいインスタンスを作り直すほうが早く確実、という判断がしばしば取られます。この「壊れたら直す」から「壊れたら作り直す」への発想の転換は、第5章で扱うAMIとuser-dataによる自動構築の重要性にも直結しています。サーバーを使い捨てにできる状態を保つには、サーバー固有の重要なデータをそのサーバー自身の中だけに置かず、第7章で扱うS3やEBSスナップショットのような形で外部に残しておく設計が前提になります。

豆知識: こうした「サーバーを固定的な資産ではなく、いつでも作り直せる使い捨ての存在として扱う」考え方は、家畜(Pets)ではなく家畜の群れ(Cattle)のように扱う、という比喩で説明されることがあります。1台1台に愛着を持って手作業でお世話をするのではなく、同じ設定のインスタンスを機械的に量産・破棄できる状態を目指す、という運用スタイルの転換を表しています。
豆知識: 手作業でサーバーを都度セットアップするのではなく、あらかじめ決めた手順やコードで環境を再現できるようにしておく考え方は、Infrastructure as Code(IaC)と呼ばれます。この編ではuser-dataによる簡易な自動化までを扱いますが、CloudFormationやTerraformといった専用ツールを使う場合も、根底にある考え方は同じです。

この編で扱う範囲

この編では、IAMの基礎、EC2への接続方法、セキュリティグループ、起動時の自動設定、CloudWatchによる監視、ストレージの使い分けという、AWS運用でよく登場する基本的なテーマを扱います。特定の資格試験(LPICやAWS認定資格など)の出題範囲を網羅するものではなく、あくまで実務でLinuxサーバーをAWS上で運用する際の橋渡しとして参照してください。各章は、これまでの初級〜上級で学んだLinuxコマンドや設定ファイルの知識を前提に、「AWSではその知識がどう形を変えて登場するか」という視点で構成されています。

先取り: この編で頻繁に登場する略語を先にまとめておきます。EC2(Elastic Compute Cloud、仮想サーバー)、IAM(Identity and Access Management、アクセス権限管理)、VPC(Virtual Private Cloud、仮想ネットワーク)、EBS(Elastic Block Store、ブロックストレージ)、S3(Simple Storage Service、オブジェクトストレージ)、AMI(Amazon Machine Image、サーバーのひな形)。最初は覚えきれなくても、各章で実際の使われ方とあわせて出てくるので、読み進めるうちに自然と定着します。
これまで学んだLinuxの知識この編でつながる先
ユーザー・グループ・パーミッションIAMユーザー・グループ・ポリシー(第2章)
SSHでのリモート接続Session Manager・IMDSv2(第3章)
firewalld・iptables・nftablesセキュリティグループ・ネットワークACL(第4章)
シェルスクリプトによる初期設定の自動化user-data・AMI(第5章)
tail・grepによるログ調査CloudWatch Logs・CloudWatch Logs Insights(第6章)

この章のまとめ

EC2インスタンスの実体は、多くの場合これまで学んできたLinuxサーバーそのものであること、AWS CLIはシェルから使うコマンドであるためこれまでの知識がそのまま活きること、そしてAWSの責任共有モデルにおいて利用者側が担当する範囲がこの編で扱う内容と重なること、の3点を押さえておきましょう。また、台数が増えることを前提にした運用への発想の転換が、この編全体を貫くテーマになっています。次章では、AWSの基本的な構成要素とIAMの基礎を扱います。

確認クイズ

Q1. EC2インスタンスの実体として、最も近い説明はどれですか?

解説: EC2インスタンスの多くは、Amazon LinuxやUbuntuなど、これまで学んできたLinuxディストリビューションがそのまま動作する仮想サーバーです。

Q2. AWSの責任共有モデルにおいて、一般的に利用者側が担当するとされる範囲に近いものはどれですか?

解説: データセンターの物理的な警備や仮想化基盤の保守はAWS側の責任範囲とされ、ゲストOSの設定やネットワークのアクセス制御は利用者側の責任範囲とされています。

Q3. AWSマネジメントコンソールとAWS CLIの関係について、正しい説明はどれですか?

解説: AWS CLIはLinuxシェルから実行するコマンドの一つであるため、パイプやリダイレクトなど、これまで学んだシェル操作の知識をそのまま活かせます。