CDP:Self Registrationパターン
提供:AWS-CloudDesignPattern
自分の情報をデータベースに自動登録
目次 |
解決したい課題
サーバーを起動/停止する場合、当然、それに伴うモニタリングやバックアップなどの設定も変更する必要がある。
サーバーの数や頻度が少ない場合は、人の手で実施する場合が多いが、多くなってくるとオペレーションミスや、そもそも設定にかかる時間が現実的ではなくなってしまうので、自動化する仕組みが必要となる。
クラウドでの解決/パターンの説明
サーバーの調達が容易なクラウド環境では、負荷や処理量に応じて仮想サーバーを増減する仕組みは常套手段である。
クラウドの中にはサービスとしてデータベースを提供しているものもある。そのデータベースに自分(仮想サーバー)の情報を起動時に登録する形にしておき、定期的にモニタリングしたりバックアップの対象情報を参照したりすれば、仮想サーバーの増減への追従が容易となる。ただし、仮想サーバーが停止する場合は、データベースから自分の情報を削除する必要もある。
実装
EC2の情報は、メタデータサービスから容易に取得でき、SimpleDBやDynamoDB といった利用量課金型のデータベースサービス(KVS)も提供されている。 このEC2のメタ情報を、SimpleDBまたはDynamoDBのKVSへ、起動時に登録し、停止時に削除することで容易に実現可能である。[関連ブログ 1]
- メタデータサービスからIPアドレスなどの自分の情報を取得。
- 仮想サーバー起動時にKVSに保存。
- 仮想サーバー停止時はKVSから削除。
- 適当なタイミングでKVSの登録情報を参照して、モニタリングやバックアップの設定をアップデート。
構造
利点
- DynamoDBやSimpleDBを利用しているため、データベース部分がSPOFにならず、またコストも低く抑えられる。
- メタデータを検索することも可能((DynamoDBやSimpleDB は簡単な検索条件が利用可能)。
注意点
- 仮想サーバーのシャットダウンが正常に終了しなかった場合は、データベースとの不整合が起きてしまう。そのため、定期的に整合性をチェックする仕組みも必要。