awsサービスのdynamodbにおける適切な監視方法

パソコン13

awsの中でデータベースを構築したいというケースにおすすめなのがdynamodbです。自由な設計やシンプルな利便性、最適なコストなどを実現しているツールです。データベースは企業の生命線にもなり得る情報が蓄積され、適切な監視を入れておく必要があります。

監視は強化されればされるほど心強いのですが、影響やリスクなどを加味しておく必要があります。最適な監視方法を紹介します。

⇒awsの死活監視の重要性と活用できるサービス

dynamodbとは

Amazon DynamoDBは、awsのサービスの1つでデータベースです。規模を問わず信頼性が高いパフォーマンスを維持できる、非リレーショナルデータベースとして親しまれています。組み込み型のセキュリティやバックアップと復元、インメモリキャッシュなども標準的に利用できるようになっている便利なツールです。

具体的にはモバイルやWeb、ゲーム、広告、IoTのようなサービスのバックエンドなどに活用されることが多く、データの格納や取得に特化したフルマネージドサービスであり、キーバリューストアなどシンプルに利用できる機能も活用できます。

ストレージ容量とデータ転送量のみで利用コストが決定するため、コストの最適化にも有利で、利用する容量が頻繁に変動するようなサービスでも無駄なコストを発生させません。データベースでリスクとしてつきまとうバックアップ構造も、オンデマンドバックアップと継続的バックアップの二種類を搭載しており、状況などに応じてセレクトすることができます。

dynamodbとはデータベースを高機能で構築することが容易にできると利用価値が高まっているawsのサービスです。

dynamodbの監視の必要性

データベースは、データの集まりです。企業やデータベースの種類によっては個人情報などが含まれることもあり、生命線になる可能性もあります。そのため、データベースに不正なアクセスがないかどうかは常時確認することが必要になります。

一般的に監視といえば、あらかじめ想定した以上のアクセスが短時間でなされる場合や、不正に取得されたアカウントでのアクセス、なりすましなど第三者による攻撃を防止することが対象となりますが、データベースの監視においては、データ改ざんなどについての監視も忘れてはなりません。

意図的にデータを改ざんすることも悪意があるものの目的になるケースでもあるため、正しいデータが出し入れされているか、過去のデータとすり替わっていないかなどを検知させる必要性もあります。監視のスパンは短くすればするほど有効的ですが、監視スパンを短くすることで負荷がかかり、データベースへの影響を及ぼす可能性もあります。

データベースの容量と重要度、利用頻度などに応じて監視スパンを考慮する必要があります。

dynamodbの監視設計

awsのdynamodbに監視を取り入れる場合、監視の設計が最初に必要です。単純に監視といっても、データベースの用途や利用状況などによって適切な監視方法は異なります。

重要なデータベースには、より緻密な監視体制を敷くことがおすすめになります。そのため最初に適切な監視設計を行うことが大事なポイントです。考慮する内容として、まず、監視の目的です。目的はデータベースの改ざんや不正アクセスなどを防止するなど想定される悪意の行為を挙げます。

次にターゲットリソースです。モニタリングをデータベース全域にすることも可能ですが、テーブル毎に設定を変えるなど工夫をすることで監視負荷を軽減させることも可能です。最適なリソースに分けることがポイントです。

そして頻度です。データの出し入れが多い場合には、監視頻度も高める必要があります。バックアップタイミングも同時に考慮するのがベストな方法です。モニタリングタスクの実行者も考慮事項です。モニタリングタスクの実行は手動で人で行う場合と自動で行う場合に分かれます。

自動で行う場合には、時間経過とともに自動実行されるケースと、アラートなどトリガーによって実行するケースに分類されます。どのケースで実行されるのがベストなのかを考慮します。そして最後に異常事態発生時の挙動です。

データベース自体はアプリケーションではないため停止させることなどはできませんが、データベースに接続するアプリケーションに連動させ自動的に停止させる、データベースのバックアップを自動で行うなどアクションを考える必要があります。

これらの項目を構築前に設計しておきます。

監視ツールのセレクト

監視を何で行わせるのかも大事なポイントです。awsには、監視ツールが複数準備されています。最も監視機能が高いとされるツールが、Amazon CloudWatchです。Amazon CloudWatchは、様々なawsのサービスに監視体制を設置することができるとともに、各種アプリケーションなどと連動させることができるようになっています。

そのため、異常を検知した段階で、アラートメールをシステム管理者に発するなど通知機能を行うだけでなく、システムを自動的に制御することも可能です。

アプリケーションの自動停止やバックアップの自動処理などです。影響が広範囲に広がるようなデータベースに接続されているアプリケーションは未然に停止させることが望ましいですが、停止の閾値を低くすることでサービスの停止というリスクも逆に生じるため、バランスを考慮して設計することがおすすめです。

Amazon CloudWatchにはログやイベント機能もあります。

ログは、監視を行ったタイミングに発生する記録を蓄積して残しておくことです。後に時系列で分析して異常の発生前後の状態を調べたりすることができます。また、異常がなかったことを証明するエビデンスとして使用することなどもできます。

⇒awsの監視の基本は用途に応じた監視ツールを導入すること

監視ツールとの連動

Amazon CloudWatchのイベント機能を使えば、監視ツールとアプリケーションなどの連動を簡単に構築できます。イベント機能はイベントに一致したものを1つ以上のターゲットの関数またはストリームに渡し、変更、状態の情報の収集や是正措置を行う機能であるため、監視の結果から推測などを行い、判断させるなどAIのような機能を持たせることはできません。

あくまでもあらかじめ設定した閾値を超過したことに対して1つのアクションを実行させる程度になります。このアクションは、アプリケーションの停止やサービスのシャットアウト、システムの強制停止などあらゆる機能に接続できるのが特徴です。

複数のデータベースを利用している場合、異常時に異なるデータベースへの接続に変更するなど工夫することも可能です。設計次第で高度な運用を実現させることができるようになります。

dynamodbにおける適切な監視は利用状況に応じた設計がポイント

awsのdynamodbは便利なデータベースツールですが、監視も抜かりなく行う必要があります。データベースで取り扱うデータの重要性や利用頻度、アクセスの機密性などを考慮した上で、ツールのセレクトや監視頻度の設定、アラート挙動の対応などを考える必要があります。

同じawsのCloudWatchを使えば、ログやイベントなど多機能な上、使い勝手も良いのが特徴です。