jaws-ug hokuriku 第2回勉強会 aws ec2の実用例&各種機能との連携

35
創屋株式会社 中道(nkmc) 2012/01/20 JAWS-UG Hokuriku in 金沢 第2回勉強会

Upload: kenichi-nakamichi

Post on 07-Jul-2015

3.534 views

Category:

Technology


4 download

DESCRIPTION

2012/1/20に行われたJAWS-UG北陸 in 金沢、第二回勉強会のセッション資料です。

TRANSCRIPT

Page 1: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

創屋株式会社

中道(nkmc)

2012/01/20

JAWS-UG Hokuriku in 金沢 第2回勉強会

Page 2: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

JAWS-UG北陸支部長

創屋株式会社 所属

好きなAWSサービス:EC2かな?

アプリ作るの好き。サーバ立てるの嫌い

プログラマあがり

使用言語:Python, PHP, .NET系, VC++, 他

Twitter @nkmc

Page 3: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

石川県白山市のシステム開発会社

創業:2005年

主な業務◦ 業務システム、WEBサービスの開発

◦ スマートフォン、タブレット用アプリの開発

◦ 建築系CAD、販売・生産管理システムの開発

クラウド・コンピューティングは2年半前から

WEB/PC/モバイル/組み込み系に対応できるので複合的なシステムも1社だけで開発できるのが強み

http://www.souya.biz/

Page 4: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

EC2を使用した事例を元に他のAWS機能との組み合わせを紹介

EC2にいろいろ突っ込んでみた

AWS上でシステムを作りたいがどこまで出来るのか、どういった構成にすれば良いかわからない方のヒントになれば・・・

Page 5: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携
Page 6: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

GPSの位置に対応したクーポンを取得するiPhoneアプリと連携

APIサーバ兼、配信データ作成サービスのサーバ

初期コスト、運用費用を抑えるため最小構成でスタート

Page 7: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

EC2 1台(Amazon Linux AMI)◦ WEB Apache & Python

◦ DB MySQL

◦ メール Postfix/Dovecot

S3 画像の保存先として

Page 8: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

AWSを使ったメリット◦ 最小限の構成・費用で始められる

◦ サーバの負荷が増えても、機器の調達に悩まない

◦ 利用した分だけ支払う(年間契約不要)

Page 9: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

オンライン学習・試験のWEBサービスを構築

動画を見ながら学習する

動画はストリーミング配信で、保存させない

再生もサービスにログインしてからのみ

動画形式はFLVで非ライブ

Page 10: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

EC2 1台(Amazon Linux AMI)◦ WEB Apache & Python

◦ DB MySQL

S3 動画の保存先として

Cloud Frontストリーミング配信

Page 11: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

Cloud Frontを利用ストリーミング配信 = ストリーミングオプションログインしてから閲覧 = プライベートコンテンツ機能

対応するプレイヤーが必要JW Playerhttp://www.longtailvideo.com/players/jw-flv-player/

ストリーミング専用サーバ不要、ストレージ容量に悩まない

Page 12: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携
Page 13: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

WEBオンラインシステム

アンケートの自由回答欄を解析し、不適切な回答をマークする

アンケート、結果出力はEXCEL (XLSX)形式

東京リージョンが来る前なので、シンガポールにあるレイテンシは劣るが今も安定稼働

Page 14: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

EC2 1台(Cent OS)◦ WEB Apache & Python

◦ DB PostgreSQL

EC2 1台(Windows 2008 server)◦ WEB IIS & ASP.NET & SFU

S3 バックアップ先として

Page 15: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

XLSXを高速出力できるオープンソースがない。最終的にWindowsサーバ導入。サードパーティ製品を使用

Apacheで解析→IISでEXCEL出力の流れをオンラインで。解析結果をRsyncで同期転送、ブラウザをIISへリダイレクト、レスポンスにEXCELファイルを返すことで、ブラウザでダウンロードできた

同一AZ内では高速転送 Windows内でRsync、SSHを利用するのにSUAをインストール

Page 16: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

広範囲をサポートするWEBシステム 一般利用者向け:

マイページ、担当者とのメッセージ機能など 社内向:

グループウェア、予約受付、進行管理 接客時:

カタログ、アンケートをiPadから利用 店舗:

POSと接続してポイント処理 既存ホームページを移行(複数ドメイン) 今後もさらに拡張予定

Page 17: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携
Page 18: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

EC2 1台(CentOS)◦ WEB Apache & Python

◦ DNS BIND

◦ VPN Openswan

EC2 3台(CentOS)◦ WEB Apache & Python

ELB 6台。負荷分散&Https対応

RDS MySQL MAZ

S3 画像保存

Page 19: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

サーバ1台に複数のバーチャルホストがあっても、443ポートは1つしかない。1ドメインしかhttpsが利用できない

ELB内で443->80にフォワードできるので、ドメインごとにELBを立てると解決

ELBの料金がかかるのでよく計算してから

Page 20: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

AWSを使ってデスクトップ・アズ・ア・サービス(Daas)

一人に一台、Windowsインスタンス

iPad/Android/PC/Mac対応

『Web ブラウザ』で直接デスクトップ利用可

SSLクライアント認証、VPN接続可

専用ソフトのインストール不要

iPadだけでもサービス利用可

Page 21: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

ごめんなさい!リリース前なので詳しく説明できません

Page 22: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携
Page 23: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

EC2でどこまでできるの?ってことで、EC2に各種サーバを入れてみた。ノウハウというか感想

Page 24: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

Amazon Linux AMI◦ 必要最小限の構成+カスタマイズして使う◦ Yumで機能追加。AWSツールも最初からインストール済み◦ CentOS経験者はすぐに使える

Windows AMI◦ クライアント系のOSがない◦ Multi-Languageなので日本語化必要◦ 2003 Serverはmicroでも意外に使える

その他◦ 他にもAMIはあるのでご自由に。自分でも作成できます。◦ 自前でCentOS構築したら、カーネルとモジュールが合わずにハマった・・・

Page 25: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

Instance-storeとEBS Storeどっちがいい?◦ EBS Storeは

開発時に気軽に起動停止できる

バックアップでの作業待ちが短い

トラブル時の復旧手段が多い

◦ Instance-storeは

ディスクIOがEBS Storeより高速

◦ 特別な理由(速度・停止時の費用)がなければEBS Storeでいいと思う

Page 26: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

WEBサーバ◦ Apache, IIS OK

◦ Python2.7以上を使うときは、YumのPythonが2.6のため並列インストールが必要(削除、上書危険)

データベースサーバ◦ MySQL , PostgreSQL OK

◦ RDSがオススメ。けど高い。MAZで更に倍

◦ クリティカルでなければEC2内に立てる判断も

◦ MySQLならRDSへ簡単に切替

Page 27: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

メールサーバ◦ Postfix/Sendmail/Dovecot OK

◦ メール送るシステムは、AWSへ申請必須◦ Gmailに送るにはSPFの設定と、AWSへ逆引き申請必要◦ 逆引きはElasticIP必要。

IPがスパムメールのブラックリストに載ってる場合も・・・

DNSサーバ◦ BIND OK

◦ でも、レジストラのサービスかRoute53の方が楽◦ Management ConsoleでRoute53が設定できる◦ BINDでchrootしてると、 Instance-storeのAMI生成に失敗する

/var/named/chroot/procをAMIの対象外に。

Page 28: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

VPNサーバ◦ OpenVPN OK (Linux /Windows)

◦ OpenSwan OK (Linux)

◦ Windowsサーバのルーティングとリモートアクセス OK

◦ iPad/iPhone/Android

L2TP/IPsec-PSK OK(UDP利用)

PPTP NG(GRE開いてない)

AndroidでEC2外に出るにはEC2でルーティング必要

◦ ちなみにOpenVPN(SSL-VPN)とiOS/Androidの組み合わせは、脱獄・Root化必要

Page 29: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

ファイヤーウォール◦ 不要。Amazon Linux AMI, Windows AMIともにセキュリティグループを使用するように変更されている

Zabbix Agent◦ Amazon Linux AMI, Windowsともに OK◦ セキュリティグループでIn/Outのポート間違えて悩んだ

SUA(Subsystem for UNIX-Based Application)◦ 2003の場合はSFU◦ Windows2008上でSSH、Rsyncできた。◦ インストールが3時間かかったよ。泣きたくなった

Page 30: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

大量画像や動画の登録する場合や、複数サーバから参照したいときどうする?◦ 基本はS3にアップ

◦ アップロードはライブラリかコマンドを使う

PHP/.NET/各種 AWS SDK for ***

Python boto (仲間はずれ)

コマンド Linux/Windows対応

◦ WEB公開するならアップロード時に権限をPublicに

◦ 非公開ならサーバにダウンロードしてレスポンス返したり

◦ IAMとかCloud Frontで制御できるかも

Page 31: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

S3にコマンドラインでバックアップしたい◦ S3Syncオススメ

EC2サーバ間でファイル同期したい◦ NFS (まだ試してない)

◦ Rsync (+ssh)

外付けEBSボリュームの使い道◦ 外付けのHDDと扱い方はいっしょ

◦ マウント先は1台のみ

◦ DB入れてサーバ復旧しないときに付け替えとか

Page 32: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

EC2であれば物理サーバと同じことができる

他のAWS機能を組み合わせれば、更にパワーアップ

まずは使ってみてください。

以上

Page 33: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携
Page 34: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

複数人の音声を解析し時系列の議事録をつくるASPサービス

発話者毎にPC 、専用ソフト、マイクを用意 EC2も対象人数分必要とする贅沢仕様 会議開始時に管理サーバがEC2を起動 発話すると音声データがEC2に送られ音声認識、文字列化される

会議後に一つの議事録テキストにまとめられた結果が表示され、誤認識の修正等が行える

議事録作成サービス「Myna」http://myna.souya.biz/

Page 35: JAWS-UG Hokuriku 第2回勉強会 AWS EC2の実用例&各種機能との連携

データマイニング用のASPサービス プリペイド式で、利用時間を予め指定する 一人1台のEC2サーバを起動する CSVをアップロしてマイニング。結果を抽出・保存 時間が来たらサーバ停止

AWSなら時間貸しのシステムが実現できる。ただし、課金システムをどう構築するかが課題

マイニングサービス「マイマイ」http://mining.souya.biz/