ヤマ

こんにちは、

 

先日、リビングに敷くためのラグを

パルコの雑貨屋さんで購入しました。

 

インドでの手作りラグは、機械で作るのとは違い

見た目も決して綺麗に整っているわけではないですが、

シンプルで手作り感もあり、気に入っています。

 

で、リビングに置いたわけですよ。

 

ルンバさんの居る、リビングにね。

 

 

対する、ラグは、

http://honda-kagu.net/shop/item/honda/picture/goods/10222_1_expand.jpg

 

こんなイメージのもので、

四隅に、ヒラヒラがついているわけですよ。。。。

 

 

完全に、忘れてましたね。

ルンバさんのことを。

 

で、戦いの結果は、

 

ルンバ:(#`皿´)

ラグ:(_TдT)

 

こんな感じでした、、、ヤマです。

 

 

 

本題

 

 

ELB(AWSサービスの一つ、バランサ)

を一つ構えて、配下にEC2インスタンスを2台設置しました。

 

設置当初は、何も考えて無かったのですが、

ログの扱いをすっかり忘れていたことに、気づきました。

 

ログと言っても、WEBサーバのアクセスログではなく、

アプリから吐き出すログです。

 

セッションはDBに持っており、

どちらのサーバに振られてもいい様になっています。

 

この状況で、以下の解決方法を試してみました。

 

1)ログ出力先をS3にする

 サーバ1もサーバ2も、ログの出力先を同じS3バケットにすることで解決しようとしました。

 施策としては非常に簡単です。

 EC2からS3の特定バケットをマウントするだけ。

 

 結果

  S3へのアクセスが遅すぎて使えない

  実用に耐えられないほどの遅さでしたので、断念。。。

 

 

2)Cloudwatch Logsを利用する

 CloudWatch LogsのAgentをインストールして、定期的にログをCloudWatch Logsへ上げる。

 最初から素直に、この方法にしておけばよかったです。

 

 一つ懸念としては、複数EC2インスタンスから、同じロググループ、ログストリームに

 アップした事がなかったので、実現できるか心配だったこと。

 

 結果

  ほぼリアルタイムで閲覧でき、大満足

 

  各種ログをほぼリアルタイムで同期でき、サーバへアクセスすることなく、

  CloudWatch Logsコンソール上でログを閲覧できるので、かなり役立っています。

 

 

手順を簡単に書いておきます。

前回書いた記事も参考に。「CloudWatch Logs

 

 

1)IAM Roleを設定

 

CloudWatch Logsへのアクセス権限を持つIAM Policyを作り、

それを特定のIAM Roleに割り当てます。

で、そのIAM RoleをEC2インスタンスに割り当てます。

 

2)スクリプト入手&実行

https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py

 

実行権限を与えて、pythonで実行してください。

python ./awslogs-agent-setup.py –region ap-northeast-1

 

 

3)設定ファイル編集

/var/awslogs/etc/awslogs.conf

を良い感じに編集してください。

 

 

この設定を、2つのサーバ(EC2インスタンス上)で設定して、

それぞれのサーバのログを、CloudWatch Logsで収集するようにしました。

 

 

プロフィール

愛知県名古屋市にあるジャスウィルで働く社員です。

ジャスウィルは大学事業に特化したシステムを提案しています。『大学向け事務・教務統合パッケージ―TriR Campus』を開発しています。


Facebookページでは、イベントや普段の社員の様子を公開中♪
ぜひご覧ください☆

過去一年の月別記事 全て表示