Your SlideShare is downloading. ×
JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

JAWS-UG Hokuriku 第5回勉強会 AWS Elastic Beanstalkを使ってみた + こねたCDP

2,120

Published on

2013/4/12に行われたJAWS-UG北陸 in 金沢、第5回勉強会のセッション資料です。

2013/4/12に行われたJAWS-UG北陸 in 金沢、第5回勉強会のセッション資料です。

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,120
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
2
Comments
0
Likes
4
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×