【SAA試験対策】AWS認定ソリューションアーキテクト-アソシエイトの暗記用語のまとめ 〜 運用編
目次
こんにちは。
久々のAWS認定試験対策シリーズです。
AWSの認定試験で特にSAA(ソリューションアーキテクト - アソシエイト)試験で出てきそうな重要用語と公式ドキュメントへのリンクをまとめてみました。
試験概要はこちら:AWS 認定 ソリューションアーキテクト – アソシエイト
自分が勉強していて覚えにくかった用語を元にしていますので、認定試験では出題されない可能性もあります。あくまでも参考程度に御覧ください。
そもそもAWSって何?という方はこちらの記事を御覧ください。
AWS公式ドキュメントでは概念的な言葉でわかりにくい表現がどうしてもあります。このブログではふわっとした言葉を極力なくして、わかりやすく伝えていこうと思います。
AWSの基礎や体系立てた知識の習得には書籍もオススメです。
AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト
今回はSAAの中でも運用の優秀性に注目したサービスについてまとめています。
とはいえ、SAA-C02からはこの運用の優秀性に関する問題は対象外になったようです。なので、ハズレの選択肢に出てきても焦らないように、サービス名と役割の概要をふわっと理解するだけでもOKだと思います。
運用の優秀性とは
ホワイトペーパーによると6つの設計原則があります
- 運用をコードとして実行する
- ドキュメントに注釈をつける
- 定期的に・小規模な・元に戻せる変更
- 運用手順を定期的に改善する
- 障害を予測する
- 運用上のすべての障害から学ぶ
特に重要なポイントは
- 環境の自動化 (コードで環境を記述)
- モニタリングによる障害の予測
を実現して手間を減らしたいということだと思います。
また、ベストプラクティスの分野として準備、運用、進化が挙げられており、不可欠なAWSサービスとしてAWS CloudFormationが挙げられています。
主要サービス
正直解釈と使い方による気がしますが、今回の記事では以下についてまとめます。
準備
- AWS CloudFormation (CFn)
- AWS Config
- AWS Codeシリーズ
運用
- Amazon CloudWatch
- System Manager
- Service Catalog
- CloudTrail
- AWS Artifact
- AWS Trusted Adviser
関連するサービス名はこちらの試験ガイドとWell-Architedフレームワークの資料を参考にしています。
AWS Certified Solutions Architect – Associate (SAA-C02) Exam Guide
AWS CloudFormation
AWSのインフラリソースをテンプレート化してプロビジョニングを自動化するサービス。
リソースとパラメータの定義書であるテンプレートの記述にはJSONかYAMLが使えます。リソースを管理するユニット(リソースの集合)をスタックと呼びます。
ソフトウェアのようにインフラを管理できるので、再構築や複製も容易になります。
便利な機能がいくつかあります。
- ドリフト
- リソース展開時に元テンプレートとの差分をチェックできる。
- 変更セット
- スタック更新時、元からの変更点のリスト。実装前に変更の影響を確認できる。
- StackSets スタックセット
- 1つのテンプレートで複数のAWSアカウントと複数のリージョンに対してスタックを作成できる
- CloudFormationデザイナー
- 視覚的にテンプレートを作成
- カスタムテンプレート
- 直接サポートされていないリソースを含めることができる
テンプレートの中身も知識として必要そうなので一応まとめておきます。
Resources
内にリソースを宣言するListを記述するType
属性にリソースの種類を指定する (YAML例:Type: AWS::S3::Bucket
)Properties
属性に複数のプロパティを設定する- S3の場合はACL
- EC2の場合はセキュリティグループなど
Mappings
属性で、たとえばリージョンごとに異なるAMIといった名前と値のペアを指定できるDependOn
属性にリソース間の依存関係を記述できる!Ref
などの組み込み関数が使えるOutputs
にプロビジョニング後の出力値と出力先を定義できる
より詳細はドキュメントで。
カスタムリソースで直接サポートされていないリソースを独自ロジックで作ることも可能です。
AWS Config
AWSリソースの変更をキャプチャして履歴を残すサービス。これによってリソースの構成管理ができるようになります。
何か変更があったときに、その変更がいつ行われたかというのが確認できるようになります。
また、AWSルールもしくは独自ルールを評価基準として設定し、変更内容が規則に沿っているかをチェックして結果通知を飛ばすこともできます。
履歴の取得パターンとして、リソースの作成・変更・削除に対してSNSトピックに通知設定するパターンと、任意の期間・ある時点の構成情報を定期的もしくはトリガーでS3バケットに保存するパターンが使えます。
AWS Codeシリーズ
Codeシリーズはここでは深堀りせずに、それぞれのサービスの大まかな役割を整理することに留めます。
AWS Code Commit
コードを管理・共有するGitリポジトリ。要はAWS版のGitHubと考えて問題ない。(はず。)
プルリクエストとレビューも可能。
AWS CodeCommit - 高度にスケーラブルなプライベート Git リポジトリをセキュアにホスト。コードでコラボレーション。
AWS Code Build
ビルド環境を構築してソースコードのビルド(コンパイルとリンク)を実行するサービス。
ビルド用のサーバー準備・管理・スケーリングが不要になる完全マネージドサービスです。
ビルドのアウトプットはS3バケットに保存してバージョニングも可能です。
AWS CodeBuild - 継続的スケーリングによるコードのビルドとテスト費用は構築する回数分のみ
AWS Code Deploy
デプロイの自動化でリリースを素早く簡単にできるようにするサービス。
デプロイ先はEC2だけでなくFargateコンテナやLambda、オンプレミスサーバーも可能です。
デプロイ先にはCodeDeployエージェントをインストールし、AWSCodeDeployRole
といったIAMポリシーをアタッチする必要があります。
AWS CodeDeploy - コードデプロイを自動化してアプリケーションのアップタイムを管理する
AWS Code Pipeline
継続的デリバリーを実現するサービス。上記のCode Commit、Code Build、Code Deployの一連の流れを定義して自動化できます。
つまり、ソースコードをコミットしたらビルドされてデプロイされる、といった流れを自動化できます。
AWS CodePipeline - 素早く確実性のあるアップデートのためにパイプラインの継続的デリバリーを自動化
Amazon CloudWatch
AWS上のリソースとアプリケーションのモニタリングサービス。
分類してCloudWatch, CloudWatch Logs, CloudWatch Events(Event Bridge)の3種類あります。
名前が似てますが、特性が違うので別サービスとしてとらえた方が良いです。(ドキュメントも分かれてるし。)
Amazon CloudWatch
稼働するシステムの監視ができて、メトリクスという指標で稼働状況の把握とアラームを飛ばすことができます。
たとえばEC2インスタンスの時間毎のCPU使用率を確認できます。マネジメントコンソールのページでダッシュボード的に見られます。
Macでいうところのアクティビティモニタ、Windowsでいうところのタスクマネージャみたいなやつ。
デフォルトメトリクス(標準メトリクス)とカスタムメトリクスがあり、つまりデフォルトで自由に取得できるものとユーザが指定しないと取れないメトリクスがあります。
例えばEC2の場合、CPU・ネットワーク・ディスク使用率はデフォルトのメトリクスで、メモリ使用率はカスタムメトリクスで有料です。
EC2以外にも様々なAWSサービスのメトリクスがモニタリングできます。
閾値を設定してアラームを飛ばすこともできます。アラームの状態の種類はOK、ALARM、INSUFFICIENT_DATAといった形式。Amazon SNSトピックに通知を送信したり、EC2アクション(停止・終了・再起動とか)、Auto Scalingアクションを実行したりできます。
EC2インスタンスにCloudWatchエージェントをインストールしておくことで内部システムレベルのメトリクスを収集することもできます。
sudo yum install amazon-cloudwatch-agent
また、インスタンスにはCloudWatchAgentServerPolicy
というIAMロールのアタッチが必要です。ややこしい...
CloudWatch エージェントを使用した Amazon EC2 Instances インスタンスとオンプレミスサーバーからのメトリクスとログの収集
Amazon CloudWatch Logs
こちらはメトリクスではなくログファイルをモニタリングしたり保存できるサービス。
EC2にCloudWatch Logsエージェントをインストールしてサーバーログの記録などに使用します。ログファイルはS3にエクスポートすることも可能です。
404
とか505
といったエラーの種類をフィルターでカウントしてアラートを上げる、といった使い方もできます。
デフォルトではログは無制限保存されます。(1日〜10年の期間指定も可能。)
CloudWatch Logs Insightという機能を使って、集計関数を使ったログの集計や分析もできます。
CloudWatch Logs Insights を使用したログデータの分析
Amazon CloudWatch Events
EventBridgeと呼ばれるようになったみたいです。
メトリクスではなくイベントに連動して何らかのアクションを実行するサービスです。
イベントとは、例えばAutoScalingグループでインスタンスが増減した、EC2インスタンスが停止した、など。
外部からイベントが発生しなくてもクーロン(cron, 時間実行式)でイベントを起こすこともできます。よくある使い方はスナップショットをとったりするユースケースで、つまりオートメーションとしても使えるサービスです。
AWS Systems Manager
リソースの運用作業を自動化したり、リソース構成を可視化できるサービス。
運用作業とは、EC2へのパッチ適用や設定変更・削除・停止・デプロイなど。
また、リソースグループの状態を可視化して確認できます。
SSMエージェントというソフトウェアを入れることでオンプレミスサーバーも同様に管理できるようになります。これによりAWSとオンプレミスのハイブリッド管理が一括でできるようになります。
マネージメントコンソール上でShellとCLIコマンドを使えるセッションマネージャーなんかはハンズオンでよく出てきます。
主要な機能群は
- 高速セットアップ
- Operations Manager (リソース管理)
- アプリケーション管理
- 変更管理
- ノード管理
などなど。色々あるみたい。
AWS Service Catalog
AWSでの使用が承認されたITサービスのカタログを作成・管理するサービス。
ITサービスとは例えば仮想マシンイメージ、サーバー、ソフトウェア、データベースなど色々。
AWS CloudFormationテンプレートを利用してリソースの定義や利用権限を一元管理する機能を提供しています。
従業員はカタログから組織で利用できるITサービスをすばやく見つけてデプロイできるようになります。
AWS CloudTrail
AWS上のAPIコールのログを追えるサービス。
基本的にAWSの裏側ではユーザが操作するたびにAPIコールが飛び交っているので、つまりユーザの操作履歴がわかる。
なんか見たこと無いリソースがある...なんてときに、誰がいつ作ったのかを調べられます。
イベント履歴は過去90日間に遡って検索・ダウンロードができます。
ログファイルは暗号化されてS3に保存されていて、KMSによる暗号化もできます。
AWS Artifact
AWSの重要なコンプライアンス関連情報がまとまった一元管理型のリソース。
マネジメントコンソールからオンデマンドで無料アクセスできます。
Artifact ReportsでAWSのコンプライアンスレポートを確認したり、Artifact AgreementsでAWSとの契約を確認、承認、管理できます。
ちなみに、Artifactとは天然遺物に対する人工遺物とか骨董品・芸術品みたいな意味っぽい。豆。
AWS Artifact - AWS のコンプライアンスレポートにオンデマンドでアクセスできる無料のセルフサービスポータル
AWS Trusted Adviser
AWSのベストプラクティスに沿ったアドバイスを提供し、それに従って最適化してくれるサービス。
チェックによってアカウントが評価され、インフラの最適化・セキュリティとパフォーマンスの向上・コスト削減などに対するアドバイスが貰えます。
当然(?)、AWSを使い込んでいるほどこのサービスの利用料金は高い。。
AWS Trusted Advisor - コストを削減、パフォーマンスを向上、セキュリティを強化
まとめ
というわけで、AWS認定試験のSAA(ソリューションアーキテクト - アソシエイト)で必要となりそうな運用関連の用語について忘れないようにまとめてみました。
いろいろなサービスがあるので、賢く使って楽に運用できるようになりたいところ。
このページも定期的に見直して知識の定着を行っていきたいです。
また別のカテゴリについてもまとめる予定です。
AWSの基礎からの勉強や、体系立てた知識の整理には書籍もオススメです。こちらは2020年の最新試験(SAA-C02)の問題にも対応しています。
(模擬問題付き)改訂新版 徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書[SAA-C02]対応