type
status
date
slug
summary
tags
category
icon
password
理論
1. スケーラブルなアーキテクチャの基本
クラウドでのスケーリング、特にオートスケーリングにおいて重要なのは、リソース(EC2インスタンス)が動的に増減することです。スケールアウト時にはインスタンスが増え、スケールイン時には減少します。これにより、インスタンスの状態やローカルストレージが変わるため、ローカルストレージに依存したデータ管理は不安定になります。
2. ログの管理と永続化
スケーリングイベントによってインスタンスが削除されると、そのインスタンスに保存されていたログも消失してしまいます。このため、ログを外部に永続的に保存することが必須です。これを実現するために、以下のような手法があります:
- Amazon CloudWatch Logs: EC2インスタンスやアプリケーションログをCloudWatch Logsに送信することで、インスタンスのスケーリングに依存せず、ログを中央で管理・保存できます。これにより、インスタンスが削除されてもログが失われず、後で分析や監視が可能になります。
- Amazon S3: ALBのアクセスログやアプリケーションログをS3に保存する方法です。S3は非常に高い耐久性(11 9’s)を提供し、ログを長期にわたって保存できます。S3に保存したログは、どのインスタンスがスケールインしてもアクセス可能です。
3. 耐障害性と可用性
AWSでは、インフラをスケールさせるためにリソースが頻繁に変更されるため、データの耐障害性と可用性を確保するための設計が求められます。スケールインによりインスタンスが削除されても、外部のログストレージ(CloudWatch LogsやS3)に保存されていれば、ログは失われません。
- 耐障害性: ログがインスタンスに依存しない外部のストレージサービス(CloudWatch LogsやS3)に保存されていれば、インスタンスの障害やスケーリングに関わらず、ログデータは安全に保持されます。
- 可用性: 分散型のストレージ(例えばCloudWatchやS3)を使用することで、ログの可用性を高め、スケールに対応したシステム全体でログの分析が可能になります。
実践
略
一問道場
質問 #259
トピック 1
ある会社は、Amazon EC2インスタンスにデプロイされたアプリケーションを、アプリケーションロードバランサー(ALB)の背後に配置しています。インスタンスはオートスケーリンググループの一部です。このアプリケーションは予測不可能なワークロードを持ち、頻繁にスケールインおよびスケールアウトします。会社の開発チームは、アプリケーションのパフォーマンスを改善する方法を見つけるために、アプリケーションログを分析したいと考えています。しかし、インスタンスがスケールインした後、ログはもはや利用できません。
スケールインイベント後に開発チームがアプリケーションログを表示できるようにするソリューションはどれですか?
- A. ALBのアクセスログを有効にし、ログをAmazon S3バケットに保存する
- B. EC2インスタンスを設定して、統合されたCloudWatchエージェントを使用してAmazon CloudWatch Logsにログを公開する
- C. オートスケーリンググループを変更して、ステップスケーリングポリシーを使用する
- D. アプリケーションにAWS X-Rayトレーシングを組み込む
解説
問題:
アプリケーションのEC2インスタンスがスケーリングされるたびに、ログが失われてしまいます。これを防ぐ方法として、最適な選択肢を選ぶ必要があります。
正しい選択肢:
B. EC2インスタンスがCloudWatch Logsにログを送信する設定をする
解説:
EC2インスタンスがスケーリングイン(インスタンスが削除される)しても、インスタンス上のログが失われないようにするためには、CloudWatch Logs にログを送信する方法が適しています。
- CloudWatch Logs は、インスタンスがスケーリングインされてもログがクラウドに保存され続けるため、後で確認できます。
- CloudWatch エージェントをEC2インスタンスに設定し、ログをリアルタイムでCloudWatchに送信することが可能です。
これにより、スケーリングイン後でも、ログが失われることなくアクセス可能になります。
他の選択肢:
- A. ALBのアクセスログを有効にし、ログをS3に保存する
- これは、ALBが生成するアクセスログをS3に保存する方法です。これもログを保存する手段の一つですが、アプリケーションログそのものを分析することが目的であれば、ALBのログではなく、アプリケーションのログが必要です。ALBのログはHTTPリクエストに関する情報を記録しますが、アプリケーションの内部ログ(エラーやパフォーマンス関連のログなど)は含まれません。
- C. Auto Scalingグループでステップスケーリングポリシーを使用する
- スケーリングポリシーの設定は、ログの永続化には直接影響しません。スケーリングのタイミングやインスタンス数の調整に関するものです。
- D. アプリケーションにAWS X-Rayトレースを組み込む
- X-Rayはアプリケーションのトレースやパフォーマンスの分析を行いますが、アプリケーションログの保存とは関係ありません。X-Rayはパフォーマンス向上に寄与するツールですが、ログ永続化の解決策ではありません。
結論:
アプリケーションログの永続化を解決するには、B. EC2インスタンスがCloudWatch Logsにログを送信する設定をする が最適な選択です。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/174d7ae8-88e2-80c7-a3df-da80fb9aadd0
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章