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

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

on

  • 2,374 views

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

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

Statistics

Views

Total Views
2,374
Views on SlideShare
1,285
Embed Views
1,089

Actions

Likes
4
Downloads
2
Comments
0

5 Embeds 1,089

http://blog.cloudpack.jp 666
http://d.hatena.ne.jp 365
http://yoshidashingo.hatenablog.com 41
http://3449707904234438373_ebb5d0aa9dae40f61c46202be459da9b0f197f5a.blogspot.com 16
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

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

  • AWS Elastic Beanstalk を使って みた +こねたCDP - Hokuriku - 勉強会 第5回
  • 自己紹介 中道 健一(nkmc ) JAWS-UG北陸コアメンバー 創屋株式会社 所属(石川県白山市) ソフトウェア・エンジニア(中間管理職) PHP/Python/Ruby/.NET/VC++とか好きなAWSサービス:Route53好きなCDP:---
  • 創屋(そうや)株式会社 2005年創業 http://www.souya.biz/ システム開発全般 AWSを利用したサービス構築 言語・プラットフォームにとらわれず、 広い範囲のシステム開発を1社で行える 開発室: 石川県白山市日御子町ハ13-6 東京事務所: 東京都台東区西浅草3-10-10-201
  • 最近ネタ切れ 全然目新しいことできてない 小ネタなら・・・ ◦ Simple Email Service(SES)でメール送信 ◦ Elastic MapReduce(EMR)でログ結合 ◦ EC2上でRuby on Rails使ってみた
  • ちょっとだけ 新しいこと やってみようかAWS Elastic Beanstalk 初めて(!)
  • AWS Elastic Beanstalkとは AWS クラウド内でのアプリケーショ ンのデプロイと管理を簡単にするサー ビス Webアプリケーションをアップロード するだけで、アプリケーションの運用 に必要な環境の作成からデプロイ、 ロードバランシングなどが自動で行わ れる
  • 百聞は一見に如かず サンプルアプリを動かしてみよう
  • サンプルアプリ動かす AWS Management Consoleから Elastic Beanstalkを選択 プラットフォームを選んでStart
  • サンプルアプリ(起動待ち) アイコンがグリーンになるまで5分ぐらい待つ グリーンになったらブラウザでアクセス
  • 今AWSの中の人が一生懸命構築してます これでワンセット
  • サンプルアプリ(起動したよ) こんな感じの画面がブラウザにでます
  • プラットフォーム 言語 コンテナ/ サポートツール 言語 バージョン フレームワーク 提供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
  • 参考この辺り読めば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 プログラミング
  • VS.NETでWEBアプリをデプロイ これだけの発表ではアレなのでVisual Studio.NET(2008) のデプロイをデモしてみます!
  • 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
  • VS.NETでWEBアプリをデプロイ(前準備2) VS.NETを起動したら、AWS Toolkitに アクセスキーとシークレットキーを設 定
  • VS.NETでWEBアプリデプロイ(1) WEBアプリケーション・プロジェク トを作成・実装
  • VS.NETでWEBアプリデプロイ(2) ASP.NET WEBサイトを選択
  • VS.NETでWEBアプリデプロイ(3) プロジェクトを右クリックして Publish to AWS…を選択
  • VS.NETでWEBアプリデプロイ(4) AWS Elastic Beanstalkを選択
  • VS.NETでWEBアプリデプロイ(5) アプリケーション名(Name)を入力
  • VS.NETでWEBアプリデプロイ(6) 環境名(Name)を入力
  • VS.NETでWEBアプリデプロイ(7) コンテナタイプを指定(Container type) インスタンスタイプを指定(Instance type)
  • VS.NETでWEBアプリデプロイ(8) 内容を確認してDeployボタン
  • VS.NETでWEBアプリデプロイ(9) イベントウィンドウが表示されます デプロイが完了したら通知ウィンドウが表 示されます
  • まとめ アプリケーション開発者から使いやす い ほとんどの言語に対応 開発、テスト、ステージング、プロダ クション環境などを分けて管理できる 設定ファイルで細かくカスタマイズ可 能
  • こねたCDPWeb Storage Archiveパターン
  • こねたCDP ELBの下に複数のEC2をぶら下げた WEBサーバのアクセスログどうしよ う? 複数台のサーバを見るのは面倒だか ら、S3に集めたいな Web Storage Archiveパターンだ!
  • こねたCDPWeb Storage Archiveパターン http://aws.clouddesignpattern.org/index. php/CDP:Web_Storage_Archiveパター ン
  • こねたCDPWeb Storage Archiveパターン クラウドストレージ(S3)の無限キャパシ ティでログなどを貯め続けることができ る S3の高可用性・耐久性でファイルのバッ クアップも不要 S3の単価が安い 1箇所にファイルを集めることができる
  • こねた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
  • こねた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
  • こねた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
  • こねた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>
  • こねたCDPこれでインストールと設定は完了$ sudo service td-agent restartを実行してブラウザからサイトにアクセス。しばらくするとS3上にファイルが転送された!
  • こねたCDP暫く放置していたら問題発覚ファイルの更新間隔が短すぎるのか、分単位でファイルができてしまう!?設定間違ってたみたい。細切れのログファイルが一杯できた・・・。
  • こねた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をキック。 これでファイルが結合された!
  • こねた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/
  • こねたCDPと思ったら、更に失敗に気づく Fluentdが作るファイルはJSON形式 フツーはMongoDB(なにそれ)に入れて 解析したりするらしい が・・・今回は単純にWindows用の ビュワーでApacheログを見たいだ け!
  • こねたCDPJSON対応ログビュワーがないよ(´・ω・`)仕方ないので人力で解決 FulentdのJSON形式ファイルからApacheロ グ形式に変換するツールを自作(VB.NET + Json.NET) ◦ https://s3-ap-northeast- 1.amazonaws.com/public.nkmc/tools/JSON2Apa che.zip ◦ 改変自由で配布します。最初からS3syncでローテートしたログをアップすればいいだけでした・・・
  • おしまい以上、まとまりませんでしたがおしまい。