JAWS-UG 札幌勉強会 - 2011/12/10
はじめての AWS ワークショップ
JAWS-UG Sapporo
アジェンダ• JAWS-UG の紹介• Amazon Web Services 概説• Amazon EC2 概説• Amazon S3 概説• AWS ワークショップ
o AWS アカウントの作成o Amazon EC2o Amazon S3o 使用料の確認
JAWS-UG の紹介
JAWS-UG Sapporo
3
JAWS-UG Sapporo
JAWS-UG についてJapan Amazon Web Services User Group
国内 AWS ユーザが集う、 AWS の AWS ユーザによるAWS ユーザのためのユーザグループ
Amazon 公式認定組織 (Asia Pacific で唯一 )
発足 2010 年 4 月有志により設立正式名称 AWS User Group – Japan
Web サイト http://jaws-ug.jp/
Twitter #jawsug
会員数 約 200 名
支部 札幌、仙台、東京、静岡、浜松、金沢、名古屋、京都、大阪、山口、福岡、佐賀、鹿児島、宮崎、沖縄
JAWS-UG Sapporo
JAWS-UG についてhttp://jaws-ug.jp/
JAWS-UG Sapporo
JAWS-UG 札幌支部について• JAWS-UG の皆様の協力を得て、 2010/11 に発足• コアメンバーは、札幌のエンジニア 10 名• 定期的に勉強会を開催
o 2010/11/03 - Amazon クラウド実践入門講座 - 実際に Amazon EC2/S3 を使ってみよう!
o 2011/02/01 - 第 1 回勉強会o 2011/04/25 - 第 2 回勉強会o 2011/07/01 - 第 3 回勉強会o 2011/11/19 - 第 4 回勉強会o 2011/12/10 - はじめての AWS ワークショップo 2012/02/XX - 第 5 回勉強会(予定)
Amazon Web Services 概説
JAWS-UG Sapporo
7
JAWS-UG Sapporo
Amazon Web Services(AWS) について• 米 Amazon.com の子会社、 Amazon Web Services LLC が
提供• IaaS 型クラウドのデファクトスタンダードといえるサービ
スo 2006 年にサービス開始o 仮想サーバの Amazon EC2 やオンラインストレージの Amazon S3 が
有名o 個人でも利用可能
• クラウドの特性を必要十分に備えるo 従量課金: 利用した分だけ課金される ( 初期費用 :0 円 , 月額固定費
用: 0 円 )o 伸縮自由: 高速にサーバ確保・解放が可能o API 公開: 外部からプログラム的に制御可能
JAWS-UG Sapporo
AWS のメリット• フレキシブルかつ効率的な運用を可能にする従量課金制
o サーバー停止・削除やストレージの容量追加が即座に可能o 必要な時に、必要なだけサーバを稼働できるo 利用に応じた課金 (1 時間単位、データ量単位)
• 豊富なサービス・機能群o 仮想サーバ、オンラインストレージ以外にもデータベース、キュー、
メッセージングなどのミドルウェア機能や CDN や負荷分散機能も提供
o 今年度で約 60 の新機能をリリース• API 提供 (REST/SOAP)
o EC2 API Tools – サーバの起動・停止等o Elastic Load Balancing API – ロードバランサの作成・サーバ追加o CloudWatch API Tools – サーバ・ボリュームの監視
JAWS-UG Sapporo
AWS サービスマップ
【仮想サーバ】Amazon EC2
【キューサービス】Amazon SQS
【 RDBMS 】Amazon RDS
【 NoSQL 】Amazon SimpleDB
【通知サービス】 Amazon SNS
【ストレージ】Amazon S3
【 CDN 】CloudFront
リージョン
【分散処理】Elastic MapReduce
【ロードバランサー】
Amazon Elastic Load Balancing
データベース
サービス
ネットワーク
& インフラ
【仮想ディスク】Amazon Elastic
Block store
エッジロケーション
【大量メール配信】Amazon SES【分散型メモリ
キャッシュ】Amazon ElastiCache
【名前解決】Amazon Route 53
モバイル SDK for Android & iOS
AWS SDK for PHP,Java,Ruby,.NET
【デプロイ管理】AWS CloudFormation
【コンテナ管理】AWS Elastic Beanstalk
【仮想プライベートクラウド】
Amazon Virtual Private Cloud
【専用線接続サービス】AWS Direct Connect
JAWS-UG Sapporo
AWS のデータセンター
東京
シンガポール
米国 西部
米国 東部米国 西部オレゴン
ヨーロッパ西部
JAWS-UG Sapporo
AWS無料ティア(無料使用枠)について• 新規 AWS 開発者向けに毎月無料ティア
o 2010/11/1 以降に作成したユーザーから対象 それ以前のユーザーは対象外
o 無料ティアはユーザー作成から 1 年間は保障と発表
JAWS-UG Sapporo
参考: AWS ブログ• AWS エバンジェリス
ト玉川さんが公開している日本語ブログ
• AWS最新サービスの情報を得るためには最適!
http://aws.typepad.com/aws_japan/
JAWS-UG Sapporo
参考: AWS ユーザーのブログ• JAWS-UG の田名辺
さんが公開しているブログ
• AWS最新サービスの情報を得るためには最適! ?
http://blog.dateofrock.com/
Amazon EC2 概説
JAWS-UG Sapporo15
JAWS-UG Sapporo
Amazon EC2 とは• Amazon Elastic Compute Cloud (Amazon EC2)• クラウドコンピューティング環境
o サーバを構築、運用可能o サーバスペック変更可能
• 費用o サーバの実行時間及びデータ転送量で課金
JAWS-UG Sapporo
Amazon EC2 のメリット• サーバ構築が数分でできる
o OS のみのサーバo ミドルウェア (DB 、 AP サーバ )構築済みのサーバ
• 従量課金提供o 初期費用・月額固定費用 0 円o サーバ起動時間・データ転送時間に課金
• SLA 99.95% の可用性o 4.38 時間 / 年 以内の停止時間については保証外
• 規模の伸縮性が可能o 負荷増加により、処理能力を自動増加が可能
JAWS-UG Sapporo
Amazon EC2 の利用シーン• 短期利用
o アプリケーションのテスト利用o 一時的なバッチ処理の利用
• 効率運用o キャパシティプランニングせずに最小構成でシステムをスタートさせ、
負荷の増加検知時に処理能力を増加
サーバの負荷
2 サーバを利用 10 サーバを利用8 サーバを利用
JAWS-UG Sapporo
Amazon EC2 に関連する用語について• インスタンス( Instances )• インスタンスタイプ( Instances Type )• リージョン( Region )• アベイラビリティゾーン( Availability Zone )• セキュリティグループ( Security Group )• キーペア( Key Pair )• AMI ( Amazon Machine Image )
JAWS-UG Sapporo
インスタンス( Instances )• Amazon EC2 で起動させた仮想専用サーバ (VPS)
o 1 インスタンスは 1 台の仮想専用サーバo インスタンス ID が付与されるo ローカル IP アドレスがインターフェイスに付くo グローバル IP アドレスが 1 つ割り当てられ NAT される
JAWS-UG Sapporo
インスタンスタイプ( Instances Type )• CPU 能力・コア数、メモリ容量、ストレージ容量など
がインスタンスタイプとして予め定義• スペックを細かく変更することはできない
インスタンスタイプ ECU(※)
Memory ストレージ容量 アーキテクチャ
Micro 2(最大 ) 613MB 10GB 32/64bit
Small 1 1.7GB 160GB 32bit
Large 4 7.5GB 850GB 64bit
Extra Large 8 15GB 1690GB 64bit
High-Memory Extra Large 6.5 17.1GB 420GB 64bit
High-Memory Double Extra Large 4 34.2GB 850GB 64bit
High-Memory Quadruple Extra Large
26 68.4GB 1690GB 64bit
High-CPU Medium 5 1.7GB 350GB 32bit
High-CPU Extra Large 20 7GB 1690GB 64bit
Cluster Compute Instances 33.5 23GB 1690GB 64bit
※ ECU ( EC2 Compute Unit )は Intel Xeon の 1.0~ 1.2GHz クラスに相当
JAWS-UG Sapporo
リージョン( Region )• リージョン:使用するデータセンターの地理的配置
o Amazon は地理的に離れた複数の地域にデータセンターを保有o リージョンによって、課金単価や通信遅延が異なる
• 現在利用可能なリージョンo US East Virginiao US West Oregono US West N.Californiao EU West Irelando Asia Pacific Singaporeo Asia Pacific Tokyo
• 利用例o 複数のリージョンを使用したシステムを構築することで、グローバル
負荷分散やディザスタリカバリ(※)を実現可能
※自然災害などで被害を受けたシステムを復旧・修復すること。また、そのための備えとなる機器やシステム、体制のこと。
JAWS-UG Sapporo
アベイラビリティゾーン( Availability Zone )• 同一リージョンにおいて、電源やネットワークなど物理的
なインフラ設備が分離されたデータセンターo アベイラビリティーゾーン間では,物理的な障害が影響しないo リージョンとアベイラビリティゾーンを組み合わせたシステム構築で、
システムの耐障害性が向上o アベイラビリティゾーンを超えた通信は、ゾーン内部の通信に比べて
性能は劣る
US East
Zone A Zone B
Zone CZone D
EU West
Zone A
Zone B
US West
Zone A Zone B
AP Tokyo
Zone A
Zone B
JAWS-UG Sapporo
セキュリティグループ( Security Group )• Amazon EC2 で提供されているファイアウォール機能
o 複数のインスタンスに対する (同一の ) ファイアウォールポリシーo インスタンスは 1 つ以上のセキュリティグループに属するo 必要な通信のみ許可する デフォルトポリシーは全拒否 (all deny)o インターネットからインスタンスへの通信を制限するo インスタンスからインターネットへの通信は制限されないo 同一グループ内のインスタンスは制限されない
セキュリティグループ A
インスタンスA
インスタンスB
ファイアウォール
ポリシーにマッチした通信のみ許可インターネット
セキュリティグループ B
インスタンスC
インスタンスD
ファイアウォール
JAWS-UG Sapporo
キーペア( Key Pair )• Linux/UNIX インスタンスへのログインに利用される SSH鍵
o SSH 公開鍵認証を利用o 公開鍵・秘密鍵のセットは、 Amazon EC2 のコマンド または、管理画面にて名前を指定して作成
o 公開鍵は Amazon側で保管o 秘密鍵は利用者がダウンロードし手元で保管o SSH クライアントソフトで秘密鍵を指定し、インスタンスへログイン
JAWS-UG Sapporo
AMI ( Amazon Machine Image )• インスタンスの元となる OS イメージ ( マシンイメージ )
o Amazon や、 Amazon 以外の企業、コミュニティから多数の AMI が提供
o AMI を自分で作成する事も可能 作成した AMI にアクセス権を設定し、特定のユーザに利用を許可したり、
一般に公開する事が可能o OS として Linux の各ディストリビューション、 Microsoft Windows
Server 、 OpenSolaris が提供されているo 利用する OS により課金の単価が異なるo 同じ OS でも AMI の作成者によって、パッケージング内容や設定が異
なるので注意が必要
JAWS-UG Sapporo
AMI イメージタイプ• AMI は、 2種類の仮想ディスクのタイプがある
o 1. Local Instance Store (instance-store) o 2. Elastic Block Storage (ebs-boot)
• instance-store の AMI を利用する場合o インスタンスのルートパーティションのデータは一時的なストレージ領域に置かれるため、サーバ停止や再起動時を行うとその領域も初期化されてしまい、データも消失する
• ebs-boot の AMI を利用する場合o 永続的なストレージ領域である EBS が利用されるため、サーバ停止・再起動時を行ってもデータは保存される
JAWS-UG Sapporo
課金モデル• オンデマンドインスタンス (On-Demand Instance)
o インスタンスの利用時間やデータ転送量などに応じて従量課金o 初期費用や固定費用は不要o Amazon EC2 利用に際して基本となる課金モデル
• スポットインスタンス (Spot Instance)o インスタンスをオークション形式で入札する課金モデルo 入札価格がその時点でのスポットインスタンスの価格よりも高い場合
は、インスタンスが起動され、下回ると自動的に停止される• リザーブドインスタンス (Reserved Instance)
o インスタンスタイプごとに定められた金額を前払いすることで,割安に利用
o 1 年か 3 年間の継続利用を前提に、一部料金を前払いする必要がありo 長期間利用する場合には、総額を約 2/3~ 1/2 に抑えることが可能
JAWS-UG Sapporo
課金対象• インスタンスの起動時間 (1 時間単位 )
o 数分のインスタンス起動であっても、 1 時間分の課金• 通信量
o インターネットとインスタンスとのネットワーク通信量 (AWS に向けての転送は無料 )
o 他のアベイラビリティゾーンのインスタンスとのネットワーク通信量o グローバル IP アドレス、 Elastic IP アドレスを利用したネットワーク
通信量• EBS ボリューム
o 使用量 ( 月、 GB 単位 )o I/O リクエスト数 o スナップショットの使用量 ( 月、 GB 単位 ) o スナップショットの PUT/GET リクエスト数
• Elastic IP アドレスo 未割当て Elastic IP アドレス (1 時間単位 )o Elastic IP アドレスの再設定回数 ( 月 ) ※ 一定回数を超えた場合
• オプションサービス料金( CloudWatch など)
JAWS-UG Sapporo
Amazon EC2 インスタンスタイプと課金マイクロ(Micro)
スタンダード (Standard) ハイ CPU (High-CPU)
ハイメモリ (High-Memory)
Micro Small Large Extra Large
Medium Extra Large
Double Extra Large
Quadruple Extra Large
Bits 32/64 32 64 64 32 64 64 64
RAM 613MB 1.7 GB 7.5 GB 15 GB 1.7 GB 7 GB 34.2 GB 68.4 GB
Disk 10GB 160 GB 850 GB 1690 GB 350 GB 1690 GB 850 GB 1690 GB
EC2 Compute Units
最大 2CPU バースト
対応
1 4 8 5 20 13 26
Cores - 1 2 4 2 8 4 8
オンデマンド インスタンスの時間あたりの料金 : 東京リージョン
Linux $0.027 $0.10 $0.40 $0.80 $0.20 $0.80 $1.20 $2.39
Windows $0.035 $0.12 $0.48 $0.96 $0.29 $1.16 $1.24 $2.48
$0.10 x 24h x 30Days= $72.0( 約 \5,700)
$0.80 x 24h x 30Days= $576.0( 約 \46,000)
$2.39 x 24h x 30Days= $1,720.8( 約 \137,600)
$0.027 x 24h x 30Days= $19.4( 約 \1,500)
JAWS-UG Sapporo
課金見積もり• Amazon Simple Monthly Calculator
o 月間利用料シミュレーションo http://calculator.s3.amazonaws.com/calc5.html?lng=ja_JP
JAWS-UG Sapporo
Amazon EC2 の機能について• EBS ( Elastic Block Store )• Elastic IP• Amazon CloudWatch• Auto Scaling• Elastic Load Balancing• and so on…
JAWS-UG Sapporo
EBS ( Elastic Block Store )• 永続化可能な仮想外部ディスク追加機能
o データを保存したい場合に、永続化に対応した仮想ディスク機能である EBS(Elastic Block Store) を使用する
o EBS に保存したデータは、インスタンスから独立して管理されるため、インスタンスの再起動後も継続して利用可能
o EBS ボリューム (Volume) と呼ばれる仮想ディスク領域を作成する 容量は 1GB~ 1TB の範囲で、 1GB 単位で指定可能
o EBS ボリューム作成後、 Amazon EC2 のインスタンスに接続 (attach) OS からは追加ディスクとして認識され、マウント可能
o EBS ボリュームを複製し、別のインスタンスに接続可能o スナップショット機能も備えており、 EBS ボリュームのバックアップ
を簡単に作成できる。
JAWS-UG Sapporo
Elastic IP• グローバル IP アドレスを固定にする機能
o Elastic IP を利用するとサービス用に IP アドレスを固定化できるo この機能を使用しない場合、 Amazon EC2 ではインスタンスを再起動
するとグローバル IP アドレスが別のものに変わってしまう
JAWS-UG Sapporo
Amazon CloudWatch• インスタンスのモニタリング機能
o CPU 使用率、ネットワークのトラフィック状況、ディスクの使用状況などをモニタリング
JAWS-UG Sapporo
Auto Scaling• インスタンスの状況によりスペックの自動増強、減少の定義が可能o 特定の時期にアクセス数が集中するなど、使用量が、時間、日、週ご
とに変化するときに便利
JAWS-UG Sapporo
Elastic Load Balancing• 複数のインスタンスへのアプリケーショントラフィックを
自動配分o 単一または複数のアベイラビリティゾーンにおけるインスタンスに対
して利用可能o Amazon CloudWatch を使うと、リクエストカウントやリクエスト待ち時間など監視可能
Amazon S3 概説
JAWS-UG Sapporo38
JAWS-UG Sapporo
Amazon S3 とは• Amazon Simple Storage Service (Amazon S3)• インターネットで利用できるオンラインストレージ
o 容量に関係なく利用可能なストレージo 信頼性が高いo Amazon EC2 と親和性が高いストレージ
バックアップに利用可能 AMI 保管に利用可能
o 標準ストレージの他に、低冗長化ストレージを用意 重要ではないデータについては、低冗長化ストレージに格納することによ
り、費用を抑えるこが可能• 費用
o 保存したデータ量及びデータ転送量で課金
JAWS-UG Sapporo
Amazon S3 のメリット• ストレージサーバ構築が数分でできる• 従量課金提供
o 初期費用・月額固定費用 0 円o 保存データ量・データ転送量に課金
• サーバの初期投資が不要o データ量の上限なし
• SLA 99.999999999% の堅牢性o SLA 99.99% の堅牢性を持つ低冗長化ストレージも選択可能
• 複数リージョンに冗長保存されているため、障害に備えた構成
JAWS-UG Sapporo
Amazon S3 の利用シーン• Amazon EC2 との連携
o AMI 保管o データバックアップの利用
• 利用例o ダウンロードソフトウェア等の保管に利用o 巨大データの分析ストレージo 障害復旧時にバックアップ及びアーカイブの取得
JAWS-UG Sapporo
Amazon S3 に関連する用語について• バケット( Bucket )• オブジェクト( Object )• リージョン( Region )
JAWS-UG Sapporo
バケット( Bucket )• トップフォルダにあたるデータ格納領域
o ディレクトリ構造と同じようにデータを構造的に格納o トップレベルにはデータ ( オブジェクト ) を置けないo 必ずバケットを作成する必要がある
• バケット名は各リージョンで一意な名前にする必要があるo Amazon S3 を利用しているユーザで共通のため
• バケットは 1 アカウントで 100 個まで• バケットの中にフォルダを作成可能:サブフォルダ
o サブフォルダ内にサブフォルダの作成も可能
JAWS-UG Sapporo
オブジェクト( Object )• ファイルに相当するデータの実態
o バケットもしくはサブフォルダの中に配置するo 1byte から 5TB のデータを保存できるo 保存できるオブジェクトの数に制限なし
JAWS-UG Sapporo
リージョン( Region )• Amazon EC2 と同様に 6 リージョンある
o 呼び方は少し異なる• 現在利用可能なリージョン
o US Standardo Oregono North Californiao Irelando Singaporeo Tokyo
JAWS-UG Sapporo
課金体系• 保存したデータ量とデータ転送量に対し課金• GB 単位課金され、総量に応じて単価が変わる• Amazon Simple Monthly Calculator で課金見積もり可能
データ量 データ転送量サイズ 月額 サイズ 月額最初の 1TB $0.150/GB 全データ受信 $0.000/GB
次の 49TB $0.135/GB 最初の外部送信 1GB $0.000/GB
次の 450TB $0.120/GB 外部送信最大 10TB $0.201/GB
次の 500TB $0.105/GB 次の外部送信 40TB $0.158/GB
次の 4000TB $0.090/GB 次の外部送信 100TB $0.137/GB
5000TB 以上 $0.065/GB 次の外部送信 350TB $0.127/GB
※東京リージョンの標準ストレージ
JAWS-UG Sapporo
Amazon S3 に関連する機能について• Amazon S3 のアクセス方法• Amazon S3 の独自ドメイン設定方法• ACL ( Access Control List )• Amazon CloudFront• and so on…
JAWS-UG Sapporo
Amazon S3 のアクセス方法• ダウンロードプロトコル
o HTTP / HTTPS及び BitTorrent をサポート• アクセス方法
o 【 US Standard 】リージョンの場合、【 s3.amazonaws.com 】でアクセス可能
o それ以外のリージョンの場合は、ホスト名が異なる
• US Standardo http://( バケット名 ).s3.amazonaws.com/( オブジェクト名 )o http://s3.amazonaws.com/( バケット名 )/( オブジェクト名 )
• Singaporeo http://( バケット名 ).s3-ap-southeast-1.amazonaws.com/( オブジェク
ト名 )o http://s3-ap-southeast-1.amazonaws.com/( バケット名 )/( オブジェク
ト名 )
※ 上記の URL で HTTPS(https://) でもアクセス可能
JAWS-UG Sapporo
Amazon S3 の独自ドメイン設定方法• DNS の CNAME 設定を行うことにより、 Amazon S3上の
データに対して自サイトの URL のようにアクセスさせることが可能
• 例: http://images.example.co.jp/example.jpg としてアクセスしたい場合o 1.images.example.co.jp というバケットを作成し、以下のように
CNAME を設定 images.example.co.jp. IN CNAME
images.example.co.jp.s3.amazonaws.com.o 2. バケットへデータ ( オブジェクト ) 【 example.jpg 】をアップロード
これで上記 URL でアクセスできる
• Amazon S3 にデータを格納することで、アクセス集中に強い Web サイトを構築することが可能
JAWS-UG Sapporo
ACL ( Access Control List )• バケットやオブジェクトに設定可能なアクセス制御リスト
o Amazon S3 に保存したデータに対してアクセス制御を提供o アクセス許可するユーザと権限のリストで、ユーザと READ(読出
し ) 、 WRITE(書込み ) 等のパーミッションの対応を設定o 初期状態では,バケットを作成したユーザのみがアクセス可能o ACL を設定することでオブジェクトの内容を一般に公開したり、ある
特定のユーザのみに限定し公開したりすることができるo 一般に公開したい場合には、 Everyone に READパーミッションを設
定
JAWS-UG Sapporo
Amazon CloudFront• 配信速度の高速化を実現する CDN(Contents Delivery
Network) を提供o 別途課金のオプションサービスo Amazon S3 に保存されたオブジェクトをコンテンツ配信用エッジサー
バにキャッシュo コンテンツ配信用エッジサーバは米国内,ヨーロッパ,アジアの各地域に配置されているため,世界中の多くの地域に高速なコンテンツ配信が可能