EC2でWEBサーバを複数台用意して、そのWEBサーバ群のログを syslog か何かを利用して1台のEC2へ集約したい。仮に集約する先を「ログサーバ」と呼ぶとする。

ログサーバがダウンした場合に、EC2インスタンスを再起動すると IPアドレスもホスト名も変化してしまい、WEBサーバが syslog 経由で接続する先を見失ってしまう。WEBサーバからはどのようにログサーバを見つけ出せばよいのか???

...

AWS EC2インスタンスを START⇔STOP していると、(EIPではない)プライベートIPアドレスがコロコロ変化するのが問題な訳ですが……。どこかでチラッと聞いた話によると VPC というのを使えば、プライベートIPアドレスを固定的に占用できるらしい。


で、Simple Monthly Caluculator という Amazon 提供の見積もりツールで VPC の料金を計算してみると、4台のVPCを追加するだけで $8000 を超えてしまうんですけど……(゚∇゚ ;)

AWSに詳しい人(?)に質問してみたところ、どうやら プライベートIPアドレスを使うだけであれば特別な料金はかからないという話でした。見積もり機能で記載されているVPCとは「専用EC2インスタンス(=特別に専用のハードウェアを用意するサービス)」であって、ふつーのEC2インスタンスをプライベートIP空間に配備するだけなら 料金不要みたい。
見積額を見たときに、ちょっと焦ってしまった...。




ちなみに、1台(=1つのある役割を持った)のEC2インスタンスを固定的に識別する方法としては、VPCによるプライベートIPアドレス固定確保の方法以外に、EIPを使った解決方法もあるらしいです。例のログサーバに例えると…
  1. EIPを ログサーバに付与する
  2. EIPを正引きしてIPアドレスを得る
  3. 入手したIPアドレスを逆引きする
  4. 結果として「AWS内でのみ通用するローカルホスト名」が手に入る
  5. ローカルホスト名のマシンに対して通信する
これで、ログサーバを(EC2インスタンスが変化してローカルIPアドレスが変化しても)常に固定的に指定できるらしいです。でも、こんなメンドクサイ方法を、ふつーのミドルウェア(syslogとか)に処理させるには、どうしたら良いのだ?
⇒ そもそも syslog も設定したことないけどw
⇒ コレがメンドクサイから VPC のプライベートIPアドレスを利用するのかなぁ~



以下、参考URL。

Simple Monthly Caluculator
  http://calculator.s3.amazonaws.com/calc5.html?lng=ja_JP

Amazon Virtual Private Cloud FAQ
  http://aws.amazon.com/jp/vpc/faqs/



とりあえず、VPCを使ってプライベトIPアドレスを確保しても特別お高い料金がかかるわけではない……という点が分かったのでヨシとしよう。


次回からは、CloudWatch と AutoScaling を実験してみる。