jaws-ug hokuriku 第5回勉強会 aws elastic beanstalkを使ってみた + こねたcdp
DESCRIPTION
2013/4/12に行われたJAWS-UG北陸 in 金沢、第5回勉強会のセッション資料です。TRANSCRIPT
![Page 1: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/1.jpg)
AWS Elastic Beanstalk を使ってみた
+こねた CDP
- Hokuriku -勉強会 第5回
![Page 2: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/2.jpg)
中道 健一( nkmc )JAWS-UG 北陸コアメンバー
創屋株式会社 所属(石川県白山市)ソフトウェア・エンジニア(中間管理職)PHP/Python/Ruby/.NET/VC++ とか
好きな AWS サービス: Route53好きな CDP : ---
自己紹介
![Page 3: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/3.jpg)
創屋(そうや)株式会社2005 年創業http://www.souya.biz/
システム開発全般AWS を利用したサービス構築言語・プラットフォームにとらわれず、
広い範囲のシステム開発を1社で行える
開発室:石川県白山市日御子町ハ 13-6
東京事務所:東京都台東区西浅草 3-10-10-201
![Page 4: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/4.jpg)
最近ネタ切れ全然目新しいことできてない小ネタなら・・・
◦Simple Email Service(SES) でメール送信
◦Elastic MapReduce(EMR) でログ結合◦EC2 上で Ruby on Rails 使ってみた
![Page 5: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/5.jpg)
ちょっとだけ新しいこと
やってみようか
AWS Elastic Beanstalk初めて(!)
![Page 6: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/6.jpg)
AWS クラウド内でのアプリケーションのデプロイと管理を簡単にするサービス
Web アプリケーションをアップロードするだけで、アプリケーションの運用に必要な環境の作成からデプロイ、ロードバランシングなどが自動で行われる
AWS Elastic Beanstalk とは
![Page 7: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/7.jpg)
サンプルアプリを動かしてみよう
百聞は一見に如かず
![Page 8: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/8.jpg)
AWS Management Console からElastic Beanstalk を選択
プラットフォームを選んで Start
サンプルアプリ動かす
![Page 9: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/9.jpg)
サンプルアプリ(起動待ち) アイコンがグリーンになるまで5分ぐらい待つ グリーンになったらブラウザでアクセス
![Page 10: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/10.jpg)
今 AWS の中の人が一生懸命構築してます
これでワンセット
![Page 11: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/11.jpg)
サンプルアプリ(起動したよ)
こんな感じの画面がブラウザにでます
![Page 12: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/12.jpg)
言語言語
バージョンコンテナ /
フレームワークサポートツール提供 IDE
Java 5 or 6 Apache + Tomcat6, 7
Eclipse
PHP 5.3 or 5.4 CAKE PHPSymfony2
Python 2.6 DjangoFlask
Ruby 1.8.7, 1.9.3
RailsSinatra
.NET .NET 2.0以降
IIS7.5, 8 Visual Studio2008, 2010
Node.js ExpressGeddy
プラットフォーム
詳細はhttp://docs.aws.amazon.com/elasticbeanstalk/latest/dg/Welcome.html
![Page 13: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/13.jpg)
この辺り読めば nkmc の話は必要ありませんでした!http://aws.amazon.com/jp/elasticbean
stalk/faqs/http://
www.slideshare.net/AmazonWebServicesJapan/getting-startedwithbeanstalk-20130111
http://www.slideshare.net/dateofrock/net-cobol20130222
書籍Amazon Web Servicesプログラミング
参考
![Page 14: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/14.jpg)
VS.NET で WEB アプリをデプロイ
これだけの発表ではアレなので
Visual Studio.NET(2008)
のデプロイをデモしてみます!
![Page 15: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/15.jpg)
VisualStudio.NET で WEB アプリをデプロイ(前準備1)
Microsoft Visual Studio.NET 2008/2010 を用意 (Express でもOK か不明)
AWS Toolkit for Microsoft Visual Studio をインストール◦http://aws.amazon.com/jp/visualstudi
o/Web Deploy をインストール
◦http://www.iis.net/downloads/microsoft/web-deploy
![Page 16: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/16.jpg)
VS.NET で WEB アプリをデプロイ(前準備2)
VS.NET を起動したら、 AWS Toolkitにアクセスキーとシークレットキーを設定
![Page 17: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/17.jpg)
VS.NET で WEB アプリデプロイ (1)
WEB アプリケーション・プロジェクトを作成・実装
![Page 18: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/18.jpg)
VS.NET で WEB アプリデプロイ (2)
ASP.NET WEB サイトを選択
![Page 19: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/19.jpg)
VS.NET で WEB アプリデプロイ (3)
プロジェクトを右クリックしてPublish to AWS… を選択
![Page 20: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/20.jpg)
VS.NET で WEB アプリデプロイ (4)
AWS Elastic Beanstalk を選択
![Page 21: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/21.jpg)
VS.NET で WEB アプリデプロイ (5)
アプリケーション名 (Name) を入力
![Page 22: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/22.jpg)
VS.NET で WEB アプリデプロイ (6)
環境名 (Name) を入力
![Page 23: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/23.jpg)
VS.NET で WEB アプリデプロイ (7)
コンテナタイプを指定 (Container type)インスタンスタイプを指定 (Instance
type)
![Page 24: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/24.jpg)
VS.NET で WEB アプリデプロイ (8)
内容を確認して Deploy ボタン
![Page 25: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/25.jpg)
VS.NET で WEB アプリデプロイ (9)
イベントウィンドウが表示されますデプロイが完了したら通知ウィンドウが表
示されます
![Page 26: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/26.jpg)
まとめアプリケーション開発者から使いやす
いほとんどの言語に対応開発、テスト、ステージング、プロダ
クション環境などを分けて管理できる設定ファイルで細かくカスタマイズ可能
![Page 27: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/27.jpg)
こねた CDP
Web Storage Archiveパターン
![Page 28: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/28.jpg)
こねた CDPELB の下に複数の EC2 をぶら下げたWEB サーバのアクセスログどうしよ
う?複数台のサーバを見るのは面倒だか
ら、 S3 に集めたいな
Web Storage Archiveパターンだ!
![Page 29: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/29.jpg)
こねた CDP
Web Storage Archiveパターン
http://aws.clouddesignpattern.org/index.php/CDP:Web_Storage_Archiveパターン
![Page 30: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/30.jpg)
こねた CDPWeb Storage Archiveパターン
クラウドストレージ (S3) の無限キャパシティでログなどを貯め続けることができる
S3 の高可用性・耐久性でファイルのバックアップも不要
S3 の単価が安い1箇所にファイルを集めることができる
![Page 31: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/31.jpg)
こねた CDPEC2 からのログの転送方法は?S3sync ではなく Fluentd を使って
みた。◦ http://fluentd.org/
この辺りを参考にしてインストール◦ http://
blog.suz-lab.com/2012/11/centos6fluentd.html◦ http://dev.classmethod.jp/cloud/amazon-linux-fluent
d-setup-plugin/$ sudo -s# cd# curl -OL http://toolbelt.treasure-data.com/sh/install-redhat.sh# chmod 755 install-redhat.sh# ./install-redhat.sh
![Page 32: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/32.jpg)
こねた CDP
$ sudo chgrp td-agent /var/log/httpd/
$ sudo chgrp td-agent /var/log/messages
$ sudo chgrp td-agent /var/log/secure
$ sudo chgrp td-agent /var/log/cron
$ sudo chmod g+rx /var/log/httpd/
$ sudo chmod g+rx /var/log/messages
$ sudo chmod g+rx /var/log/secure
$ sudo chmod g+rx /var/log/cron
転送するファイルのフォルダに権限設定
![Page 33: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/33.jpg)
こねた CDP
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem update
$ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-s3 $ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-forest $ sudo /usr/lib64/fluent/ruby/bin/fluent-gem install fluent-plugin-config-expander
Gem のアップデートとプラグインのインストール
fluent-plugin-s3 S3 にログを書き出すプラグインfluent-plugin-forest タグを動的に扱うプラグイン
fluent-plugin-config-expander プレースホルダを扱えるようにするプラグイン
![Page 34: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/34.jpg)
こねた CDP
<source> type forward port 24224</source> <source> type config_expander <config> type tail format apache path /var/log/httpd/access_log tag ${hostname}/apache.access </config></source> <source> type config_expander <config> type tail format syslog path /var/log/messages tag ${hostname}/syslog.messages </config></source>
<match *.**> type forest subtype s3 <template> aws_key_id AKI****** aws_sec_key ************** s3_bucket log.test.com s3_endpoint s3-ap-northeast-1.amazonaws.com path ec2/${tag}/ buffer_path /var/log/td-agent/buffer/${tag} time_slice_format %Y/%m/%d/ec2-%Y-%m-%d-%H flush_interval 1m# time_slice_format %Y/%m/%Y-%m-%d# time_slice_wait 10m </template></match>
$ sudo vi /etc/td-agent/td-agent.conf
![Page 35: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/35.jpg)
こねた CDP
これでインストールと設定は完了
$ sudo service td-agent restart
を実行してブラウザからサイトにアクセス。しばらくすると S3 上にファイルが転送された!
![Page 36: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/36.jpg)
こねた CDP
暫く放置していたら問題発覚
ファイルの更新間隔が短すぎるのか、分単位でファイルができてしまう!?
設定間違ってたみたい。細切れのログファイルが一杯できた・・・。
![Page 37: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/37.jpg)
こねた CDPAWS の中の人に EMR でファイル結合
できるって教えてもらったコマンドは S3DistCp
◦ http://imai-factory.s3.amazonaws.com/decks/log_aggregation_with_emr.pdf
◦ http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/UsingEMR_s3distcp.html
EC2 の micro インスタンスを起動して、EMR をキック。
これでファイルが結合された!
![Page 38: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/38.jpg)
こねた CDPEC2 のマイクロインスタンス起動してすぐ実行する方法
$ cd$ mkdir elastic-mapreduce-cli$ cd elastic-mapreduce-cli$ wget http://elasticmapreduce.s3.amazonaws.com/elastic-mapreduce-ruby.zip$ unzip elastic-mapreduce-ruby.zip $ vi credentials.json{"access_id": "AKI*****************","private_key": "**************************","keypair": "keypair_name","key-pair-file": "mykeypair.pem","log_uri": "s3n://log-merge.test.com/","region": "ap-northeast-1"}
キーを置いとく$ chmod og-rwx mykeypair.pem
EMR のインスタンスを起動し、 jobflow番号を取得する。$ ./elastic-mapreduce --create --name logmerge --instance-type m1.small --num-instances 1 --aliveCreated job flow j-1IFZNUBP3U123
EMR で S3distCp 実行./elastic-mapreduce --jobflow j-1IFZNUBP3U123 \--jar s3://ap-northeast-1.elasticmapreduce/libs/s3distcp/1.latest/s3distcp.jar \--step-name S3DistCp \--args '--src,s3://log.test.com/2013/03/,--groupBy,.*([0-9]{4}-[0-9]{2}-[0-9]{2}).*.gz,--outputCodec,gzip,--dest,s3://log-merge.test.com/merge/'
![Page 39: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/39.jpg)
こねた CDP
と思ったら、更に失敗に気づく
Fluentd が作るファイルは JSON形式フツーは MongoDB (なにそれ)に入れ
て解析したりするらしいが・・・今回は単純に Windows 用のビュ
ワーで Apache ログを見たいだけ!
![Page 40: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/40.jpg)
こねた CDPJSON 対応ログビュワーがないよ (́ ・ ω ・` )
仕方ないので人力で解決Fulentd の JSON形式ファイルから Apache ロ
グ形式に変換するツールを自作 (VB.NET + Json.NET)◦ https://
s3-ap-northeast-1.amazonaws.com/public.nkmc/tools/JSON2Apache.zip
◦改変自由で配布します。
最初から S3sync でローテートしたログをアップすればいいだけでした・・・
![Page 41: JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP](https://reader035.vdocuments.net/reader035/viewer/2022062406/558e67d01a28ab9b218b4750/html5/thumbnails/41.jpg)
おしまい
以上、まとまりませんでしたがおしまい。