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