720 likes | 842 Views
AmazonEC2 で Web アプリを動かす勉強会. 開発部 品質グループ 木崎 悟. アジェンダ. クラウド・コンピューティング Amazon Web Services(AWS) Amazon EC2/S3/EBS Web アプリ構築. クラウド・コンピューティング. クラウドとは. クラウド = 雲. 雲からサービスが降ってくる. 利用者. 雲の中身. 雲の中 = ハードウェアやソフトウェアの実体. クラウド・アプリケーション層. クラウド・サービス層. クラウド基盤層. クラウドのサービス. SaaS = クラウド・アプリケーション層
E N D
AmazonEC2でWebアプリを動かす勉強会 開発部 品質グループ 木崎 悟
アジェンダ • クラウド・コンピューティング • Amazon Web Services(AWS) • Amazon EC2/S3/EBS • Webアプリ構築
クラウドとは クラウド = 雲 雲からサービスが降ってくる 利用者
雲の中身 雲の中 = ハードウェアやソフトウェアの実体 クラウド・アプリケーション層 クラウド・サービス層 クラウド基盤層
クラウドのサービス • SaaS= クラウド・アプリケーション層 • PaaS = クラウド・サービス層 • HaaS/IaaS/DaaS = クラウド基盤層 Microsoft Google Sales Force Amazon
SaaSのサービス例 • Gmail(https://mail.google.com/) - Googleが提供しているメールサービス • Googleドキュメント - Googleが提供しているオフィスソフト • SalesforceCRM - Salesforce.comが提供している顧客管理システムのサービス
PaaSのサービス例 • Google App Engine - Googleが提供しているプラットフォームサービス • Force.com - Salesforce.comが提供している業務用Webアプリケーションプラットフォームサービス • Heroku - プログラミング言語「Ruby」をベースにしたプラットフォームサービス
HaaS/IaaSのサービス例 • Amazon Web Services(http://aws.amazon.com/) - Amazonが提供しているコンピューティング・リソースのレンタルサービス ※ 後のスライドで詳しく載せます • GoGrid(http://www.gogrid.com/) - ServePathが提供している、コンピューティング・リソースのレンタルサービス
クラウド・プラットフォーム ※出典:特集 クラウド体験記 http://www.atmarkit.co.jp/fdotnet/special/cloudcompare01/cloudcompare01_01.html
クラウドコンピューティング・サービス Amazon Web Services
サービス紹介 ストレージ:アプリケーションのデータを格納するためのサービス CDN:コンテンツを高速に配信することが可能なサービス
料金体系 • 初期費用は不要 • 使った分だけ支払う従量課金制 例)AmazonEC2 Standard(Small/Windows)(利用料金 12円/時間) 1か月 12円 * 24時間 * 30日 = 8,640 円 1年 12円 *24時間 * 365日 = 105,120 円 1年契約 予約料 22,750円 (利用料金 6円/時間) 22,750円 + 6円 * 24時間 * 360日 = 75,310円
事例紹介(1/3) • The New York Times • 過去記事をAmazon S3 に保存(数TB) • 100台以上のEC2インスタンスを使用
事例紹介(2/3) • NASDAQ • 過去の株式市場情報をAmazon S3に保存
事例紹介(3/3) • ANIMOTO • スライドショー作成サービス • 動画処理、およびファイルの保管にAmazon EC2とAmazon S3を使用
アカウント登録方法 URL:http://aws.amazon.com/
日本語サイト URL:http://aws.amazon.com/jp/ 準備中のようです
Amazon EC2について • Amazon Elastic Compute Cloudの略 • サーバー・リソースのホスティングサービス • WindowsやLinuxなどの仮想サーバーを時間単位で利用可能 • 開発者 約54万人(2009年4月時点)
AmazonEC2の利点 • OSの上位のレイヤーに対する制約がない • ミドルウェアや開発言語、フレームワークなど自由に選択することが可能 • システムを移行することが容易 • 従来の環境とほぼ同等に扱える • リソースが不足した場合、1ランク上のサーバーリソースを積んだ仮想サーバーを即座に利用可能
インスタンス・タイプ ※ ECU:Amazonが定義したCPUのリソース単位 約1.0GHzから1.2GHzで動作するAMD Opteron/Intel Xeonプロセッサ の1基に相当する
ツールなど • Amazon EC2 API Tools(コマンドラインツール) • S3 FireFox Organizer(FireFoxのプラグイン) • AWS Management Console(AWS管理用コンソール) コマンドラインツールの方が前からあるため、説明するサイトや書籍が多い 今回は AWSManagement Console を利用した管理方法を解説します
事前準備 • インスタンスを作成する前に以下の設定をします • Key Pairs • Security Groups Windows環境から接続することを想定します ※ 次のソフトウェアがインストール済み ・Putty(SSHクライアント) ・WinSCP(FTPクライアント)
Key Pairs • Key Pairs = 公開鍵と秘密鍵 • 仮想サーバにリモートログインするのに必要
Security Groups(1/3) • ファイアウォールの設定
Security Groups(2/3) • デフォルト設定だとすべての通信が許可
Security Groups(3/3) 作成したセキュリティグループ
選択可能なOS • Windows • Windows Server 2008 Datacenter Edition (i386/x86_64) • Windows Server 2008 + SQL Server (i386/x86_64) • UNIX/Linux • fedora 8 (i386/x86_64) • CentOS 5.4 (x86_64) • PublicなAMIを利用することも可能
Linux系OSの場合 • PuTTyを利用してSSH接続 • Key Pairsを利用 • PuTTygendeでPuTTy秘密鍵ファイル(ppk)に変換
PuTTygen Key Pairs で作成した秘密鍵をロード Putty用の秘密鍵を保存
PuTTyによる接続 作成したPutty用秘密鍵を設定
PuTTyによる接続 • Rootユーザでログインすることが可能
カスタマイズ • タイムゾーンの変更(海外になっているため) • 必要なパッケージをインストール • 必要なファイルなどはWinSCPで転送
Webアプリのインストール • 以下のソフトウェアをインストールします • Java • Apache • Tomcat • Oracle
Javaのインストール Linux用のJDKをOracleのページからダウンロード ① 実行権限を付与します #chmod 755 jdk-6u21-linux-i586-rpm.bin ②インストール # ./jdk-6u21-linux-i586-rpm.bin ③ .bash_profileまたは.bashrcファイルに以下の行を追加します # vi ~/.bash_profile export JAVA_HOME=/usr/java/jdk1.6.0_21 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar ④ 反映させます # source .bash_profile http://java.sun.com/javase/ja/6/download.html
Apacheのインストール ※ yumでインストールします ① インストール # yum install httpd ② 起動 # service httpd start ③ 停止 # service httpd stop 起動後にPublic DNS(ホスト)にアクセス