• AWS

aws マネジメント、ガバナンス

AWS CloudFormationで作成したテンプレートを基に、複数のAWSアカウントもしくは複数のリージョンでスタックを構築したい場合には「スタックセット(StackSets)」を利用します。管理者アカウントで作成したテンプレートを利用して、ターゲットアカウント(プロビジョニングを行うアカウント)とプロビジョニングを行うリージョンを指定することで、一度の操作で複数の同じ環境を構築できます。
テスト環境を複数構築したい場合や、新たにアカウントを払い出す際に下準備となる操作(IAMやセキュリティグループの設定など)をスタックセットとして作成しておく、といった利用ができます。

AWS CloudTrailでは、企業や組織などにおいて複数のAWSアカウントを管理している場合、それぞれのCloudTrailのログを1つのS3バケットで管理することができます。例えばアカウントA、B、Cの操作ログを監査用のアカウントDに属するバケットに集約することで、監査を容易に行えたり、各アカウントによるログの改ざんを防ぐことができます。
複数アカウントのCloudTrailログを集約する際は、証跡情報の作成時に「ストレージの場所」を既存のS3バケットに指定します。なお、S3バケット名は全ユーザーで一意ですので、アカウントによらずバケットを特定することができます。また、指定するS3バケットは他のアカウントからアクセスが可能になるように事前にバケットポリシーを設定しておく必要があります。

AWS Systems Manager Session Managerは、EC2インスタンスへブラウザ(マネジメントコンソール)やAWS CLIからセキュアにログインできる機能です。

[マネジメントコンソールからEC2インスタンスへの接続画面]

AWS Trusted Advisorのチェック観点は「コスト最適化」「パフォーマンス」「セキュリティ」「フォールトトレランス」「サービスの制限」に分類されており、各観点の代表的なチェック項目には以下のようなものがあります。
[コストの最適化]
・EC2リザーブドインスタンスの最適化 … リザーブドインスタンス(予約購入したインスタンス)の利用状況をもとに最適な購入数を算出し、コストの節約が可能か
[パフォーマンス]
・EC2インスタンスの使用率 … 直近14日で1日のCPU使用率が90%以上の日が頻出していないか
[セキュリティ]
・開かれたポート … アクセス元の制限がない(0.0.0.0/0)セキュリティグループが定義されていないか(ポート番号に応じて警告を表示)
[フォールトトレランス]※
・ロードバランサ(ELB)の最適化 … ELB配下のインスタンスが複数AZで稼働しているか
※フォールトトレランス(fault tolerance):システムに障害が発生した場合にも、系統を切り替えるなどして正常に稼働させ続けること
[サービスの制限]
・各サービスに設定された制限値と利用状況を照会し、使用率がひっ迫したり上限に達していないか

AWS Systems Manager Run Commandは、AWSのEC2インスタンスやオンプレミスのサーバーに対してリモートでコマンドやスクリプトを安全に実行する機能です。サーバーにログインしなくても安全でセキュアに大規模なサーバー群をリモートで管理できるため、踏み台サーバー、手動でのSSH接続などが不要になります。

Amazon CloudWatchは、AWSサービスやオンプレミス(自社運用)のシステムを監視し、運用を支援するサービスです。しきい値(境界値)を超える・下回るなどした場合に管理者に通報するなど、サービスのリソース(CPU使用率やストレージの使用状況など)の状態に応じたアクションを取らせることができます。
CloudWatchが監視する様々なリソースの情報は「メトリクス」と呼ばれます。予め定義されているメトリクスは「標準メトリクス」と呼ばれ、AWSのサービスごとに、インスタンスのCPU使用率やディスクの使用状況(読み取り・書き込みの量)といったAWS側で取得できるリソースに関する情報を提供しています。

l

カスタムメトリクスを設定するには、EC2インスタンスへ「CloudWatchエージェント」をインストールし、AWS CLIコマンドやAPIを用いて監視項目をCloudWatchへ送信します。

Amazon CloudWatch LogsはAWSサービスやEC2インスタンスのOSやアプリケーションのログを収集し、一元管理するサービスです。例えば、CloudTrailにおけるAWSサービスの操作ログや、VPCフローログ(VPC利用時のIPトラフィック情報)などを収集することができます。収集したログは、メッセージの内容をフィルタリングして管理者に通知させることができます(例:EC2インスタンスのOSログで”Error”の文字列を1時間に5回検出した場合、管理者へメール通知する)。

なお、EC2インスタンス上のアプリケーションやOSのログを収集するには、対象のEC2インスタンスへ「CloudWatchエージェント」をインストールする必要があります。

AWS CloudTrailは、AWSサービスに対して「いつ」「誰によって」「どのような操作が行われたのか」を記録・保存するサービスです。監視対象となるイベントは以下の通りです:
・管理イベント … ユーザーのログイン、EC2インスタンスの作成 など
・データイベント … S3上のオブジェクト(データ)の操作、Lambda関数の実行
・インサイトイベント … 通常と異なる操作(書き込みAPIの呼び出し)

管理イベントとは具体的には管理コンソールからの操作やAWS CLI(コマンド)、APIによる操作です。これらはデフォルトでCloudTrailのダッシュボードから参照できます。
なお、ログの採取対象のリージョンは選択することができます(すべてのリージョンの選択も可能です)。

以上より、CloudTrailによって記録されない項目は
・OSのシステムログ
です。

AWS CloudTrailのログは「証跡情報」を登録することによりS3バケットへ保存することができます。S3バケットへログを保存することにより、90日を超えてもCloudTrailのログを保存しておくことができます。
以下は証跡情報の登録画面です。

・90日以上の操作ログの保存
・ログを記録するイベントの種類の設定
・保存する先のS3バケットの設定

AWS Elastic Beanstalk は、アプリケーションが動作する定番の構成を提供します。アプリケーションの開発者は、Elastic Beanstalkによって用意されている定番構成の中からアプリケーションの実行環境に適したものを選んで数クリックするだけで、環境(インフラ)を作成することができます。
EC2インスタンスは、OSはもちろん、Webサーバーソフトウェアやアプリケーションの実行環境などがインストール・設定された状態で提供されます。単一インスタンス・複数インスタンス(Multi-AZ)の構成を選択でき、関連する各種AWSサービス(ELBやS3、Auto Scalingグループなど)も設定済みのため、開発者はアプリケーションをアップロードするだけでデプロイ(実行環境への展開)を行うことができます。

以上より正解は
・EC2インスタンスが複数のAZに配置された可用性の高い構成を組むことができる。ELBが自動的に構成される
です。

AWS Systems Manager(SSM)は、複数のAWSリソースをグループ化し、グループ内リソースの運用データの一元化や運用タスクの自動化などができる運用管理サービスです。Systems Managerは役割ごとに複数の機能で構成されています。例えばOSパッチの適用を自動化する「Patch Manager」や、マネジメントコンソールからEC2インスタンスへセキュアにログインできる「Session Manager」などがあります。

したがって正解は
・複数のEC2インスタンスのOSパッチ適用を自動化する
・マネジメントコンソールからEC2インスタンスへセキュアにログインできる
です。

Amazon CloudWatch Container Insightsは、コンテナ環境のメトリクスやログデータを収集するサービスです。Amazon ECS、Amazon EKS、Amazon EC2上のKubernetesで管理されているコンテナに対して、メトリクスやログデータを自動的に収集します。Container Insightsが収集したデータを元に、CloudWatchでアラームを出すこともできます。

AWS Service Catalogは、主にCloudFormationテンプレートを製品として登録し、他のAWSユーザーへ共有できるサービスです。共有先のAWSユーザーは、セルフサービスで製品からAWS環境をデプロイ(構築)できます。製品の管理者は、製品のバージョンや、製品がいつ・誰に使用されたかを一元的に管理できるので、共有するAWS環境の一貫性とコンプライアンスを維持できます。

例えば、システム管理者が構築したAWS環境をService Catalogに登録してアプリケーション開発者に共有することで、アプリケーション開発者は容易に自身のAWSアカウント内に開発環境をデプロイできます。また、システム管理者は共有したAWS環境のバージョンや使用履歴を一元管理できます。

Dockerとはコンテナ型の仮想化ソフトウェアです。コンテナ型の仮想化とは、1つのホストOS上に複数の独立した環境(コンテナ)を作成できる技術のことです。独立した環境ですから、例えばコンテナに障害が発生した場合でもホストOSには何の影響も与えません。
Dockerは、ミドルウェアの設定や各種環境をDockerfileというテキストファイルにコード化して管理できるため、同じ環境を配布したり別の環境に持ち出したりできる、などの特徴があります。

Elastic BeanstalkはDockerに対応しているため、作成済みのDockerfileをElastic Beanstalkへアップロードすることで、EC2インスタンスやWebアプリケーション等の準備を行うことなくコンテナを稼働させることができます。
Dockerをプラットフォームとした場合、以下の2つの構成を選択できます:
・単一(シングル)コンテナ … 1つのEC2インスタンスに 1つのコンテナを作成する
・マルチコンテナ … 1つのEC2インスタンスに複数のコンテナをサポートする

なお、コンテナが動作する環境はElastic Beanstalkによって管理されますが、コンテナ上の環境(コンテナにインストールしたソフトウェアなど)は自分で管理する必要があります。

Amazon EventBridge(CloudWatch Events)は、AWS上のリソースの状態変化やスケジュールに応じてアクションを実行することができるサービスです。EventBridgeを利用すると、管理者は以下のような運用ができます:
・EC2インスタンスが起動状態(running)から停止状態(stopped)になったとき、再起動する
・毎日決まった時刻にアプリケーションのログを収集・圧縮するLambda関数(※)を呼び出す
※AWS Lambda … サーバーレスでプログラムの実行が可能なAWSサービス。他サービスと連携でき、イベントが発生したタイミングでプログラムを起動させることができる。Lambdaで起動するコードをLambda関数(Lambda Function)と呼ぶ。

アクションとしては、既に定義されているAPI(”EC2:RebootInstances”など)を呼び出したり、他サービスと連携したアクションをとることができます。特にLambda関数を使えばアクションを独自に定義することができますから、例えば毎日定時に決められたスクリプトを実行する、というルールを作成することも可能です。

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。