AmazonEC2でWebアプリを動かす勉強 会 開発部 品質グループ 木崎 悟 1 アジェンダ クラウド・コンピューティング Amazon Web Services(AWS) Amazon EC2/S3/EBS Webアプリ構築 2 クラウド・コンピューティング 3 クラウドとは クラウド = 雲 雲からサービスが降ってくる 利用者 4 雲の中身 雲の中 = ハードウェアやソフトウェアの実体 クラウド・アプリケーション層 クラウド・サービス層 クラウド基盤層 5 クラウドのサービス SaaS = クラウド・アプリケーション層 PaaS = クラウド・サービス層 HaaS/IaaS/DaaS = クラウド基盤層 Microsoft Google Amazon 6 Sales Force SaaSのサービス例 Gmail(https://mail.google.com/) - Googleが提供しているメールサービス Googleドキュメント - Googleが提供しているオフィスソフト SalesforceCRM - Salesforce.comが提供している顧客管理システムの サービス 7 PaaSのサービス例 Google App Engine - Googleが提供しているプラットフォームサービス Force.com - Salesforce.comが提供している業務用Webアプリ ケーションプラットフォームサービス Heroku - プログラミング言語「Ruby」をベースにしたプ ラットフォームサービス 8 HaaS/IaaSのサービス例 Amazon Web Services(http://aws.amazon.com/) - Amazonが提供しているコンピューティング・リ ソースのレンタルサービス ※ 後のスライドで詳しく載せます GoGrid(http://www.gogrid.com/) - ServePathが提供している、コンピューティング・ リソースのレンタルサービス 9 クラウド・プラットフォーム Amazon SaaS DaaS SimpleDB PaaS HaaS Google Microsoft Salesforce.co m Google Apps Windows Live / Microsoft Online Service Salesfoce CRM BigTable SQL Data Services Force.com Database Google App Engine Windows Azure Force.com EC2/S3 Windows Azure Storage Services ※出典:特集 クラウド体験記 10 http://www.atmarkit.co.jp/fdotnet/special/cloudcompare01/cloudcompare01_01.html Amazon Web Services 11 クラウドコンピューティング・サービス Amazon Web Services 12 AWSのサービス 13 年月 2002年07月 サービス名 Amazon Web Services 2004年11月 2006年03月 2006年08月 Amazon SQS Amazon S3 Amazon EC2 2007年12月 2008年08月 2008年11月 Amazon SimpleDB Amazon EBS Amazon CloudFront 2009年01月 2009年04月 AWS Management Console Amazon Elastic MapReduce サービス紹介 サービス 概要 Amazon Web Services Amazonクラウドサービスの総称 Amazon SQS 複数ノード間でメッセージの待ち 行列を共有できるサービス Amazon S3 ストレージサービス Amazon EC2 ホスティングサービス Amazon SimpleDB Key-value型データベース Amazon EBS ストレージサービス Amazon CloudFront CDNサービス AWS Management Console EC2の管理コンソール Amazon Elastic MapReduce 分散処理サービス ストレージ:アプリケーションのデータを格納するためのサービス 14 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円 15 料金の確認(Account Activity) 16 事例紹介(1/3) The New York Times 過去記事をAmazon S3 に保存(数TB) 100台以上のEC2インスタンスを使用 17 事例紹介(2/3) NASDAQ 過去の株式市場情報をAmazon S3に保存 18 事例紹介(3/3) ANIMOTO スライドショー作成サービス 動画処理、およびファイルの保管にAmazon EC2と Amazon S3を使用 19 アカウント登録方法 URL:http://aws.amazon.com/ 20 日本語サイト URL:http://aws.amazon.com/jp/ 準備中のようです 21 アカウント作成 22 アカウント登録完了 23 支払い情報登録 24 本人確認 25 Amazon EC2/S3/EBS 26 Amazon EC2について Amazon Elastic Compute Cloudの略 サーバー・リソースのホスティングサービス WindowsやLinuxなどの仮想サーバーを時間単位で 利用可能 開発者 約54万人(2009年4月時点) 27 Amazon EC2の利点 OSの上位のレイヤーに対する制約がな い ミドルウェアや開発言語、フレーム ワークなど自由に選択することが可能 システムを移行することが容易 従来の環境とほぼ同等に扱える リソースが不足した場合、1ランク上 のサーバーリソースを積んだ仮想サー バーを即座に利用可能 28 インスタンス・タイプ スタンダード メモリ ECU単位※ ストレージ アーキテク チャ スモール (デフォルト) 1.7GB 1 160GB 32ビット ラージ 7.5GB 15GB 4 8 850GB 1690GB 64ビット 64ビット エクストララージ ※ ECU:Amazonが定義したCPUのリソース単位 約1.0GHzから1.2GHzで動作するAMD Opteron/Intel Xeonプロセッサ の1基に相当する 29 ツールなど Amazon EC2 API Tools(コマンドラインツール) S3 FireFox Organizer(FireFoxのプラグイン) AWS Management Console(AWS管理用コンソール) コマンドラインツールの方が前からあるため、説明 するサイトや書籍が多い 今回は AWS Management Console を利用した管理方法を 解説します 30 AWS Management Console 31 Webアプリ構築 32 事前準備 インスタンスを作成する前に以下の設定をします Key Pairs Security Groups Windows環境から接続することを想定します ※ 次のソフトウェアがインストール済み ・Putty(SSHクライアント) ・WinSCP(FTPクライアント) 33 Key Pairs Key Pairs = 公開鍵と秘密鍵 仮想サーバにリモートログインするのに必要 34 Security Groups(1/3) ファイアウォールの設定 35 Security Groups(2/3) デフォルト設定だとすべての通信が許可 36 Security Groups(3/3) 作成したセキュリティグループ 37 仮想サーバ作成 38 OSの選択 39 選択可能な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を利用することも可能 40 Linux系OSの場合 PuTTyを利用してSSH接続 Key Pairsを利用 PuTTygendeでPuTTy秘密鍵ファイル(ppk)に変換 41 PuTTygen 42 PuTTygen Key Pairs で作成した秘密鍵をロード 43 Putty用の秘密鍵を保存 PuTTyによる接続 44 PuTTyによる接続 作成したPutty用秘密鍵を設定 45 PuTTyによる接続 Rootユーザでログインすることが可能 46 カスタマイズ タイムゾーンの変更(海外になっているため) 必要なパッケージをインストール 必要なファイルなどはWinSCPで転送 47 Webアプリのインストール 以下のソフトウェアをインストールします Java Apache Tomcat Oracle 48 Javaのインストール Linux用のJDKをOracleの ページからダウンロード http://java.sun.com/javase/ja/6 /download.html 49 ① 実行権限を付与します # 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/l ib:$JAVA_HOME/lib/tools.jar ④ 反映させます # source .bash_profile Apacheのインストール ※ yumでインストールします ① インストール # yum install httpd ② 起動 # service httpd start ③ 停止 # service httpd stop 起動後にPublic DNS(ホ スト)にアクセス 50 Tomcatのインストール(1/2) ① パッケージ取得 # wget http://ftp.riken.jp/net/apache/tomcat/tomcat-6/v6.0.29/bin/apachetomcat-6.0.29.tar.gz ② 展開 # tar zxvf apache-tomcat-6.0.29.tar.gz # mv apache-tomcat-6.0.29 /opt # cd /opt # ln -s apache-tomcat-6.0.29 tomcat ③ ユーザ・グループの追加 # groupadd -g 400 tomcat # useradd -M -s /sbin/nologin -g 400 -u 400 tomcat ④ ディレクトリオーナーの変更 # chown –R tomcat:tomcat apache-tomcat-6.0.29 ⑤ インスタンスの起動・停止 # /opt/tomcat/bin/startup.sh # /opt/tomcat/bin/shutdown.sh 51 Tomcatのインストール(2/2) http://xxx.amazonaws.com:8080/ 52 ApacheとTomcatの連携 Apache : 静的なページの表示に使う Tomcat : 動的なページの生成に使う 目的 1. 静的なファイルをより高速なApacheが処理し、動的なページ をTomcatが処理することによって効率の良いレスポンスが実 現できる 2. ApacheのHTTPサーバとして様々な機能を利用できる 3. 1台のWebサーバに対して複数のTomcatのインスタンスを割 り当てることによって負荷分散を実現できる 53 連携方法 Apacheの設定ファイルを修正します # cd /etc/httpd/conf # vi httpd.conf httpd.confの次の記述を有効にします LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_ajp_module modules/mod_proxy_ajp.so ※ここではtomcatのドキュメントにアクセスします <Location /docs/> ProxyPass ajp://localhost:8009/docs/ </Location> IPアドレスで制限するときの記述です Order allow,deny Allow from 192.168.1.1 54 Apacheを通してTomcatに接続 URL:http://xxx.amazonaws.com/docs/ 55 Oracle XE インストール ① Oracle Database 10g Express Editionのダウンロード URL:http://www.oracle.com/technology/software/products/database/xe/in dex.html Oracle Database 10g Express Edition (Universal)のoracle-xe-univ10.2.0.1-1.0.i386.rpm をダウンロードします ② インストール # rpm -ivh oracle-xe-univ-10.2.0.1-1.0.i386.rpm ③ インスタンスの作成と設定 # /etc/init.d/oracle-xe configure ④ 環境設定 利用するユーザーの.bash_profileまたは.bashrcファイルに以下の行を追加し ます . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh ⑤ インスタンスの起動・停止 # service oracle-xe { start | stop } 56 EBSとS3の利用 Amazon EC2の問題点 Amazon EC2 はインスタンスを停止するとディスク に保存した内容が消えてしまう 問題点の解決策 S3, EBSを利用してデータを保存 57 Amazon S3 Amazon EC2上から外部のデータサーバーとしてア クセスできる HTTPリクエストでどこからでもアクセス可能 画像ファイルなどの静的ファイル系データ イメージファイルなどやバックアップファイルな どファイルサイズが大きく、あまりアクセスしな いもの HTTP経由でアクセスできる必要があるデータ 58 Amazon EBS Amazon EC2上のインスタンスからボリュームをマ ウントして利用 各種ログやDBデータなど頻繁にインスタンスか らアクセスするデータ 外からアクセスする必要の無いデータ 59 Amazon EBSの作成方法 ②“Create Volume”をクリック ①“Volumes”を選択 60 Amazon EBSの作成方法 ・GB, TB単位で好きなサイズを作成 ・ロケーションの選択可能 ・スナップショットの選択可能 61 EBSのマウント方法(1/2) 1. Statusを右クリックします 2 . Attach Volume を選択 62 EBSのマウント方法(2/2) 1. マウント先のインスタンスを選択します 2 . デバイスの設定をします (ex:/dev/sdf) 3. Attachするとインスタンスに接続されます 63 作成時の制約 EBSボリュームは複数の仮想サーバから同時にマ ウントできない ボリュームサイズは1GB~1TBまで1GB単位 ボリュームサイズの動的変更はむり ボリュームのロケーションはボリュームを割り当 てる仮想サーバーと同じにする ボリュームのロケーションも変更できない ロケーション間でのボリューム共有はできない 64 Amazon EBSのマウント方法 仮想サーバーに接続して設定します ① EBSボリュームが認識しているか確認 # ll /dev/sdf ※ ボリューム内にデータがあるか確認する 既存データが必要ない場合以下を実行 ② EBSボリュームのファイルシステムを作成 # yes | mkfs –t ext3 /dev/sdf ③ マウント (ここでは/ebsというディレクトリを作成) # mkdir /ebs # mount /dev/sdf /ebs ④ パーティションの状況を確認 # df -h 65 AMI Amazon Machine Imageの略 仮想OSイメージ カスタマイズしたLinuxやWindowsを保存可能 ベースOS カスタマイズOS 起動 カスタマイズOS イメージ化 AMI Amazon S3/EBS 66 参考書籍(1/3) 「クラウド Amazon EC2/S3のすべて 実践者から学ぶ設計/構築/運用ノウハウ」 作者: TIS株式会社/SonicGarden 並河祐貴, 安達輝雄 出版社: 日経BP社 発売日: 2009/11/05 価格: 2,800円 + 税 67 参考書籍(2/3) Amazon EC2/S3/EBS クラウドコンピューティングによる仮想サーバ構築 作者: 清水正人 出版社: ソシム株式会社 発売日: 2009/08/27 価格: 1,890円 + 税 68 参考書籍(3/3) クラウドを実現する技術 作者:米持幸寿 出版社: インプレスジャパン 発売日: 2009/08/24 価格: 2,200円 + 税 69 ご静聴ありがとうございました 70 Q&A(1/2) Q: SQSとは、どういうサービスなのか? A: キューを使って、時間がかかる処理を非同期で処理するようなこと が可能です 参考:http://blog.dateofrock.com/2010/01/amazon-sqs.html Q: 公開鍵はローカルから送れるのか? A: APIのec2-api-toolsのec2-add-keypairを使ってキーを生成する場合は ローカルでの操作となりますので公開鍵をAWSに送ることができます (例.my-test-keypair) Q: OSを移行したい場合はどうしたらよいの? A: データをEBSに保存しておいて、作り直すかたちになると思われます Q: ロケーションによる違いは? A: 値段が多少違います。米国がやや安いようです 71 Q&A(2/2) Q: EBSの課金はのようにされているのか? A: データ量で課金されるので大容量なものがいいとおもいます 途中から容量を増やしたりできませんのでその点も考慮にいれます Q: Key Pairsの割り当ては個別にできるのか? A: インスタンス毎のKey Pairsの割り当てができます Q: インスタンス落としても消えない A: 再起動する分には消えませんが、 シャットダウンするとすべてのデータが消えます ただし、Amazon EBSのストレージをルートパーティションとしてインスタンス を起動(EBSブート)した場合は、停止(stop)してもデータは保持されたまま になります 72
© Copyright 2024 ExpyDoc