259-AWS SAP AWS 「理論・実践・一問道場」EC2ログの管理

 

理論

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)の背後に配置しています。インスタンスはオートスケーリンググループの一部です。このアプリケーションは予測不可能なワークロードを持ち、頻繁にスケールインおよびスケールアウトします。会社の開発チームは、アプリケーションのパフォーマンスを改善する方法を見つけるために、アプリケーションログを分析したいと考えています。しかし、インスタンスがスケールインした後、ログはもはや利用できません。
スケールインイベント後に開発チームがアプリケーションログを表示できるようにするソリューションはどれですか?
  1. A. ALBのアクセスログを有効にし、ログをAmazon S3バケットに保存する
  1. B. EC2インスタンスを設定して、統合されたCloudWatchエージェントを使用してAmazon CloudWatch Logsにログを公開する
  1. C. オートスケーリンググループを変更して、ステップスケーリングポリシーを使用する
  1. 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にログを送信する設定をする が最適な選択です。
260-AWS SAP AWS 「理論・実践・一問道場」CORSエラー258-AWS SAP AWS 「理論・実践・一問道場」AWS Amplify
Loading...
minami
minami
みなみの成長 🐝
Announcement

🎉 ブログへようこそ 🎉

名前: みなみ一人会社
性別:
国籍: China 🇨🇳
政治スタンス: 民主主義支持者
完全独学で基本情報技術者をはじめ、32個の資格を仕事をしながら取得。
現在はIT会社で技術担当として働きながら、ブログ執筆や学習支援にも取り組んでいます。
独学で合格できる学習法や勉強法、試験対策を発信中!

📚 発信内容

  • 💻 IT・システム開発
  • 🏠 不動産 × 宅建士
  • 🎓 MBA 学習記録