第8章 AWS運用チェックリストとまとめ
この編で扱ってきたIAM・接続方法・セキュリティグループ・自動設定・監視・ストレージの内容を、実際の運用でよく確認される観点からチェックリスト形式で振り返ります。
セキュリティの基本チェックリスト
| 確認項目 | 関連する章 |
|---|---|
| ルートユーザーを日常的な作業に使っていないか | 第2章 |
| IAMポリシーが必要最小限の権限になっているか | 第2章 |
| セキュリティグループで不要なポートを開けたままにしていないか | 第4章 |
| OS側のファイアウォール(firewalld等)もあわせて確認したか | 第4章 |
| 新規インスタンスでIMDSv2が有効になっているか | 第3章 |
運用・監視のチェックリスト
| 確認項目 | 関連する章 |
|---|---|
| CPU・メモリ・ディスクなど主要なメトリクスを継続的に確認できる状態か | 第6章 |
| アプリケーションログがCloudWatch Logsなどに集約されているか | 第6章 |
| しきい値超過時に、担当者へ自動的に通知が届く仕組みになっているか | 第6章 |
| EBSスナップショットなど、バックアップが定期的に取得されているか | 第7章 |
| サーバー構築の手順がuser-dataやAMIとして再現できる状態になっているか | 第5章 |
| タグ付けのルールが決まっており、リソースの用途が一目で分かるか | 第2章 |
よくあるつまずきポイント
この編の内容を実際に試す中でつまずきやすいのは、多くの場合「AWS側の設定は合っているのに、OS側の設定を見落としている」か、その逆のパターンです。セキュリティグループを正しく設定していてもOS側のファイアウォールで止まっている(第4章)、IAMロールを正しく割り当てていてもIMDSv2のトークン取得を忘れている(第3章)、CloudWatchエージェントを起動していても設定ファイルでメトリクスの送信対象を指定し忘れている(第6章)、といった具合です。「AWS側」と「OS側」の両方を必ずセットで確認する、という習慣が、この編全体を通じて最も汎用性の高い教訓かもしれません。
AWS CLIとLinuxシェルの組み合わせ
AWS CLIの出力は既定でJSON形式のため、jqコマンドと組み合わせることで、これまで学んだgrep・awk・sortと同じような感覚で、AWSの情報を絞り込み・加工できます。また、AWS CLI自体にも--queryオプションによるJMESPath形式の絞り込み機能が用意されており、簡単な抽出であればjqを使わずAWS CLI単体でも完結できます。
$ aws ec2 describe-instances --query "Reservations[].Instances[].InstanceId" --output json | jq -r '.[]'
i-0abcd1234efgh5678
i-0wxyz5678ijkl9012
接続できない・動かないときのトラブルシュートの型
この編で扱ってきた個々のテーマをつなげると、AWS上のLinuxサーバーで問題が起きたときの調査は、おおむね次の順序で進めることができます。まずコンソールでインスタンスのステータスチェックを確認し、OS自体が正常に起動しているかを見ます。次にセキュリティグループとネットワークACLで、想定した通信が許可されているかを確認します。それでも解決しない場合は、Session Manager等でインスタンスに接続し、OS側のfirewalldやサービスの起動状態(systemctl status)、そして関連するログ(cloud-init・アプリケーションログ・CloudWatch Logs)を確認します。「外側(AWSのネットワークレイヤー)から内側(OS・アプリケーション)へ」という順序で切り分けていく型を意識しておくと、原因不明のまま長時間悩むことを避けやすくなります。
次のステップとして意識しておきたいこと
この編で扱った内容は、あくまでAWS運用の入り口にあたる部分です。実際の現場では、ここにInfrastructure as Codeによる構成管理(CloudFormationやTerraformなど)、複数アカウントでの権限設計、コンテナサービス(ECS・EKSなど)を使った運用など、さらに専門的なテーマが積み重なっていきます。ただし、どのテーマに進むにしても、この編で扱ったIAMによるアクセス管理の考え方、ネットワークレベルとOSレベルの両方でのセキュリティ確保、そして監視とログの集約という3つの基本は、共通の土台として役立ち続けます。
また、この編の内容の多くは、練習用ターミナルの課題モードの「AWS運用」カテゴリで、実際にコマンドを入力しながら試すことができます。SSH秘密鍵のパーミッション設定、cloud-initログの調査、IMDSv2でのメタデータ取得、ファイアウォールの許可設定、監視エージェントの起動、S3へのバックアップといった一連の操作を、章の内容と対応させながら手を動かして確認しておくと、知識の定着がより確実になります。
この編のまとめ
ここまでの内容を振り返ると、IAMによるアクセス管理、Session Managerを含む複数の接続手段、セキュリティグループとOS側ファイアウォールの多層防御、user-data/AMIによる構築の自動化、CloudWatchによる監視、EBS/インスタンスストア/S3の使い分けという流れで、AWS運用の土台となる考え方を一通り押さえてきました。実際の現場では、ここに個々のサービスの詳細知識やチームごとの運用ルールが積み重なっていきますが、この編で扱った「Linuxの知識がどこで活きるか」という視点は、どのクラウド環境でも共通して役立つはずです。