20120303 jaws summit-meister-01_ec2-ebs
DESCRIPTION
2012.3.3 JAWS SUMMIT 2012 マイスターリターンズにて紹介された資料です。TRANSCRIPT
AWSマイスターシリーズ リターンズ ~EC2 & EBS~
2012年3月3日
渡邉 源太 (@gentaw0) ソリューションアーキテクト
玉川 憲(@KenTamagawa)
エバンジェリスト
AWSサービス一覧
お客様のアプリケーション
ライブラリ & SDKs Java, PHP, .NET,
Python, Ruby
Web インターフェース
Management Console
IDE プラグイン
Eclipse
Visual Studio
デプロイと自動化 AWS Elastic Beanstalk AWS CloudFormation
認証 & 請求 AWS IAM
Identity Federation Consolidated Billing
モニタリング Amazon CloudWatch
スケーリング Auto Scale
ネットワーク&ルーティング Amazon VPC
Amazon Elastic LB Amazon Route 53
AWS Direct Connect
コンテンツ配信Amazon
CloudFront
メッセージ通知Amazon SNS
分散処理 Elastic MapReduce
メール配信 Amazon SES
コンピュータ処理 Amazon EC2
ストレージ
Amazon S3
Amazon EBS AWS Storage Gateway
データベース Amazon RDS
Amazon DynamoDB Amazon SimpleDB
Amazon Elasticache
AWS のグローバルなインフラ
キューイングAmazon SQS
セミナーのAgenda
Amazon EC2とは?
EC2の基本的な使用法
EC2 のセキュリティモデル
利用におけるTIPS
Amazon EC2のイメージ
データセンター
仮想サーバ(Amazon EC2)
Windows
( スタンダード) CentOS
(ハイCPU)
Oracle DB(Linux)
(ハイメモリ)
コマンドライン
/ SDK利用
SSH公開鍵
認証
仮想外部ディスク
(Amazon EBS)
ストレージ
AMI
から
仮想デスクトップ
ターミナル
AMI
保存
API
Webコンソール
Amazon EC2のメリット
必要なときに何百台でも数分で調達できる
APIを通じた完全なコントロール
多種類のインスタンスサイズ
CPUパワー、コア数、RAM、ディスク容量
多種多彩なAMI(Amazon Machine Image)
すでに用意されたAMIを利用可能
OS: Linux, Windowsを含む
言語、ミドルウェアを選ばない: Oracle DB、LAMPなど
セキュアで柔軟なネットワークセキュリティモデル
デフォルトでポートは全てクローズ。必要に応じてオープンに
SSHアクセスのために、キーペアが必要
物理ホストが、複数のVMをホスト
物理インタフェース
ファイアウォール
ハイバーバイザー S
mallタイプ
Larg
eタイプ
…
Sm
allタイプ
Amazon EC2
インスタンス
物理ホスト
EC2インスタンス タイプ
EC2では、任意のインスタンスタイプ(スペック)を選択可能
後からタイプを、変更することもできる
64ビット・プラットフォームの場合
HPCのスペック = EC2 + 広帯域幅ネットワーク
クラスター(CC1) クラスターGPU クラスターCC2
CPU Xeon 5570
(Intel Nehalem)
x 2
Xeon 5570 (Intel
Nehalem) x 2
Intel Xeon Eight-
core x 2
GPU
N/A
2NVIDIA Tesla
“Fermi” M2050
GPU x2
N/A
ECU 33.5 33.5 88
メモリ 23 GB 22 GB 60.5 GB
ネットワーク
10Gbps full
bisection
10Gbps full
bisection
10Gbps full
bisection
価格 約100円 / 時間 約162円 / 時間 約185円 / 時間
クラスターコンピュート 世界ランキングで42位に!
リージョン
アベイラビリティゾーン
Amazon EC2 主要コンポーネント
EC2インスタンス
Elastic IP
Address
セキュリティ
グループ
Load Balancing
Elastic
Block
Storage
CloudWatch
Auto
Scaling
Ephemeral
Storage
Amazon S3
EBS
スナップショット
Amazon
Machine
Image (AMI)
EBS
スナップショット
Virtual Private
Cloud
Amazon
Machine
Image (AMI)
リージョン
アベイラビリティゾーン
Amazon EC2 主要コンポーネント
EC2インスタンス
Elastic IP
Address
セキュリティ
グループ
Load Balancing
Elastic
Block
Storage
CloudWatch
Auto
Scaling
Ephemeral
Storage
Amazon S3
EBS
スナップショット
Copyright © 2012 Amazon Web Services
EBS
スナップショット
本セッションの
対象範囲
Virtual Private
Cloud
リージョン (東京)
リージョンとアベイラビリティゾーン • 現時点で世界8か所のリージョン
• ユーザーは任意にリージョン選択可能
• 1リージョン内には、物理的に距離が離れたデータセンターが複数拠点存在
• お互いに、地理的、電源的、ネットワーク的に分離されており、地震面、洪水面も考慮
• 東京リージョンの場合、EC2のために物理的に離れた2つのDCが存在(アベイラビリティゾーン: AZと呼ぶ)
• AZは、任意のゾーンを選択し、EC2インスタンスを起動できる
• AZ間は高速専用線でつながれている ( データ転送量も安い)
• リージョン間は インータネット経由
米国
東海岸
米国
西海岸①
ヨーロッパ
アベイラビリティゾーン A
アベイラビリティゾーン B
EC2 EC2
シンガポール
米国
西海岸② 南米
+ GovCloud
EBS (Elastic Block Store)とは?
リージョン
AZ - a
EC2インスタンス
Amazon
S3 EBS
スナップショット
EBSは、EC2への仮想外付けハードディスク
サイズは1GB単位で~1TBまで
サイズ/期間/IOで課金される
各EC2インスタンスで、複数EBSを使える
詳細
寿命は、EC2インスタンスと独立している (データは永続的に保存される)
アベイラビリティゾーン(AZ) に存在する
他のインスタンスに付け替え可能
EBSスナップショットでS3にバックアップ
バックアップから、EBSを作成可能 (他のAZに作成できる)
EBS
AZ - b
EC2インスタンス
EBS EBS
EBS
EBS vs インスタンスストレージ(Ephemeral Storage)
リージョン
AZ - a
EC2インスタンス
Amazon
S3 EBS
スナップショット
EBS
寿命はインスタンスと独立している (データは永続的に保存される)
通常は、EBSを用いれば良い あらゆる種類の永続的データ ブートデータ、商用DBのデータ、クラスタリング
インスタンス ストレージ (Ephemeral Disk)
寿命はインスタンスと同じ (インスタンス落とすとデータは消える)
インスタンスに付属して存在 →別途料金はかからないのがメリット
一時データの書き込み、低料金を活かした高度な利用
EBS
EBS
インスタンス
ストレージ
セミナーのAgenda
Amazon EC2とは?
EC2の基本的な使用法
EC2 のセキュリティモデル
利用におけるTIPS
Copyright © 2012 Amazon Web Services
2種類のAMIが存在する
・通常はこちらを用いる (2009年後半に追加)
・EC2に停止/終了のオプション有
・停止しても、ファイルシステムは永続する
EBS-Backed AMI
AMI (Amazon Machine Image) サーバーのコピーをとりテンプレート化することで、再利用可能
•EC2開始当初からある
•EC2に停止のオプションはない
•EC2を終了するとデータは消える
S3-Backed AMI
2種類のAMIの違い
Amazon S3
ハイパー
バイザー
仮想マシン
複数のEBS
ボリューム
ネットワーク
IO
EBS スナップショット
S3 AMI
複数のインスタンスストレージ
EC2インスタンス (EBS-backed)のライフサイクル
EBS の
AMI選択
インスタンス
(Pending)
インスタンス
(Running)
インスタンス
(Shutting Down)
インスタンス
(Terminated)
EBS AMIの作成
インスタンス
(Stop)
インスタンス
(Start)
どのAMIか選択
/ パラメータを渡す/ キーペア、
セキュリティグループ EBSデータは永
続 / タイプ
変更可能
EIPの割り当て / EBSボリュームのアタッチ/セキュリティグループ内の変更
作成したAMIから起動
EIPやEBSのリソース破棄
リージョン、起動開始、AMIの選択
台数、インスタンスタイプ
アベイラビリティゾーン
キーペア設定
セキュリティグループ設定
起動確認
Public DNS名で確認
ターミナルでアクセス
ログインの際のアカウント名は、AMIによって違うので注意 例) Amazon Linux -> ec2-user その他Linuxの多く -> root
EC2インスタンスの停止と終了
Stop(停止)
・EC2インスタンスは消滅する(ハイバネートではない)
・EBSは残る(課金もされる)
Terminate(終了)
・EC2インスタンスは終了
・(デフォルトでは)EBSも消滅
EC2のさらなる使い方
EC2インスタンスのアドレス
EIPの追加
インスタンスタイプの変更
EBSの追加/変更
AMIの取得/AMIからの起動
EC2の制限解除フォーム
EBSとS3の使い分け
EC2インスタンスのアドレス
全てのインスタンスが下記を持つ
Private IPアドレス
Private DNS名(*.internal)
Public DNS名 (*.amazonaws.com)
public IPアドレスをオプションで付けられる
Elastic IP Addresses (EIP)と呼ぶ
稼働しているEC2インスタンスに、瞬時に付け外しが可能
インスタンスにアサインしているときは料金はかからない
EIPの割り当て
EIPの使いどころ
通常のケースは、EC2のPublic DNS名を用いて、CNAMEで名前変換を行う
Route 53(名前解決サービス)で、Public DNSを用いる
ELB(ロードバランサ)の配下にEC2をつける場合も
メールサーバー等、固定IPが必要なときはEIPを用いる
メールサーバの送信制限解除、逆引き申請が必要な場合は下記から申請を行う
https://aws-portal.amazon.com/gp/aws/html-forms-controller/contactus/ec2-email-limit-rdns-request
EC2インスタンスのサイズ変更
Copyright © 2012 Amazon Web Services
EBSボリュームのアタッチ
Copyright © 2012 Amazon Web Services
EBSボリュームのサイズ変更も可能
Copyright © 2012 Amazon Web Services
リージョン
アベイラビリティゾーン
EC2インスタンス
Amazon
S3 スナップショット
流れ
EBSをデタッチする
EBSからS3にスナップショットを作成する
新たなボリュームサイズを指定して、EBSを作成する
EBSをアタッチする
マウントして、リサイズする
EBS
(10GB)
EBS
(100GB)
AMIの取得 / AMIからの起動
Copyright © 2012 Amazon Web Services
共有ディスクとしての、EBSとS3
Copyright © 2012 Amazon Web Services
リージョン
アベイラビリティゾーン
EC2インスタンス
Amazon
S3
バケット
EBSは複数EC2にアタッチ不可
単独のEC2インスタンスへのブロックデバイスとしての使い方
NFSのような使い方をする際は、EC2にミドルウェアを導入 (GlusterFS等)
S3は複数のEC2からアクセス可
ただし、Write Once Read A Lotな使い方に向いている
耐久性の設計は、99.999999999%で非常に高
EBS
EC2インスタンス
HTTP/
HTTPS
セミナーのAgenda
Amazon EC2とは?
EC2の基本的な使用法
EC2 のセキュリティモデル
利用におけるTIPS
Copyright © 2012 Amazon Web Services
責任分担モデル
Copyright © 2012 Amazon Web Services
物理インタフェース
ファイアウォール
ハイバーバイザー
Sm
all
Larg
e
…
Sm
all Amazon EC2
インスタンス
物理ホスト
ユーザーが
責任を持って
管理する
AWSが
責任を持って
管理する
各インスタンスが、ファイアウォールを持つ
•デフォルトでは、全てのポートが閉じており、外からアクセスできない
•必要なポートのみを、必要に応じて空ける
EC2 インスタンス
ポート 22
(SSH)
ポート80
(HTTP)
EC2ファイア
ウォール
Public EC2ネットワークの Securityパラメータ
インバウンドのアクセスのみを制御する
セキュリティグループにより、アクセスルールを設定する
インスタンスの起動時に、グループをアサインする
稼働中のインスタンスの既存グループは編集できる
アクセスルール:
名前
説明
プロトコル
ポートレンジ
IPアドレスの範囲
インターネット外からのアクセスに加えて、セキュリティグループ間も制御できる
Web Security Group
Web サーバー
ポート 22
(SSH)
ポート 80
(HTTP)
App Security Group
App サーバー
ポート 22,
2048 DB Security Group
DB サーバー
ポート3300
ポート 22
(SSH) Web
サーバー
App サーバー
DB サーバー
セキュリティ証明書
データセンター
仮想サーバ(Amazon EC2)
Windows
( スタンダード)
コマンドライン
/ SDK利用
SSH公開鍵
認証
仮想デスクトップ
ターミナル
REST
/ SOAP API
Webコンソール
①EC2インスタン
スへのアクセスは、キーペア
の利用
②Webコンソールへのアクセス
Webログイン /
多要素認証 / IAM
③APIへのアクセス
アクセスキー / X.509証明書 / IAM
EC2インスタンスへのアクセスには、
キーペアが使われる
キーペアの作成
公開鍵は、AWSによってEC2起動時に埋め込まれる
秘密鍵は、デスクトップにダウンロードされる
EC2インスタンスは2つの鍵を用いる
・公開鍵はリージョン毎に管理
・作成した公開鍵のUploadも可能
(この場合、リージョン間で同じ
鍵も利用できる)
AWSのAPIへのアクセス キーペア
X.509 証明書
AWSのWebの管理画面
セミナーのAgenda
Amazon EC2とは?
EC2の基本的な使用法
EC2 のセキュリティモデル
利用におけるTIPS
Copyright © 2012 Amazon Web Services
故障のための設計: Design for Failure
故障に備えた設計をしておく
SPOF(単一障害点)の排除
すべてが故障しうると考え、システム全体での保守的設計
障害からの復旧(対応品質)を重視する
EC2における故障のための設計
AMIを常にとっておく
EBSスナップショットでバックアップ
EIPを用いたフェールオーバー
複数アベイラビリティゾーンへの分散
ELBでサーバを冗長化
Auto Scalingで自動復帰
Reserved Instance
他の冗長性高いサービスとの組み合わせ
S3, SimpleDB, RDS他
http://www.slideshare.net/kentamagawa/aws-7991623
定期的なバックアップ
EC2のAMIを定期的に作成する (参考) 無停止でAMI取得 Cloudpackさんブログhttp://blog.cloudpack.jp/2011/03/aws-news-ec2-instance-no-reboot-ami.html
データボリュームとしてのEBSの場合、EBSのスナップショットを定期的に作成
スクリプトを書いて定期的なバックアップを行うことも可能 Code.rockさんブログhttp://blog.dateofrock.com/2010/03/auto-backup-amazon-ebs-with-ruby.html
サーバーワークスさんブログhttp://blog.serverworks.co.jp/tech/2011/07/21/awssdk-for-ruby-create-snapshot/
EC2へのファイル転送は?
SCPを使う
scp pk-XXX.pem [email protected]:/xxx
Windowsの場合は、WinSCPなど
S3経由で共有する
S3にアップロードし、EC2からwgetでアクセスする
FTPを立ち上げる
EC2側でFTPサーバーを立ち上げておく
高速に送信したい
Tsunami UDP, Aspera等のソリューションあり
Global IPとPrivate IP
Public DNS名は、外部からアクセスするために名前解決を行うとglobal IPアドレスが得られる
一方で、EC2インスタンスからEC既定(デフォルト)のDNSサーバーを使って名前解決するとprivate IPアドレスが返却される
トラフィック課金の仕組みとして、EC2インスタンス同士でもglobal IPを使って通信するとトラフィック課金が発生する
この名前解決の仕組みを利用すれば、EC2ネットワークの中と外を意識してプログラムしなくても、不要な部分で外部扱いの通信が発生せず、料金面でメリットがあり、遅延もわずかに小さい
稼働EC2インスタンスからメタデータ取得
curl http://169.254.169.254/latest/meta-data
ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
instance-action
instance-id
Instance-type
kernel-id
local-hostname
local-ipv4
mac
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
EBSボリュームのパフォーマンス
単体のEBSボリュームとして「共有リソース」としての影響を最小限にするには
最大の1TBを利用するとI/Oの面では有効
アプリとして利用できるスループットを高めるためには、software raidなどで、特定ボリュームの性能低下に影響を受けにくくできる
EBSを用いたRaid 0(ストライピング)も可能 (参考) koba206の開発WIKI http://dev.koba206.com/?p=21
起動時にパラメーターを渡す
起動時に16KB以内ですが任意のものを渡せる
ChefやPuppetなどを利用して、自己構成できるAMIに
参照:サーバーワークスさんブログ Chefを使用してEC2インスタンスを操作するチュートリアル:その1
EC2コマンドラインツール
コマンドラインからEC2のAPIにアクセスできるツール
クロスプラットフォーム(Javaで記述)
ツールをインストールし、セキュリティ証明書を配置
ご参加ありがとう ございました
Copyright © 2012 Amazon Web Services