Upload
akio-katayama
View
2.287
Download
3
Embed Size (px)
DESCRIPTION
2012年8月22日、hbstudy#36で話した資料です。GlusterFSのGeo-Replicationの手順は http://d.hatena.ne.jp/c9katayama/20120819 です。
Citation preview
AWSではじめる GlusterFS
2012/8/22 hbstudy#36
Copyright © 2012 Amazon Web Services
自己紹介
名前:片山暁雄
所属:アマゾンデータサービスジャパン
職種:ソリューションアーキテクト
@c9katayama
好きなミドルウェア:
Apache Tomcat
好きなLinux
Amazon Linux
Copyright © 2012 Amazon Web Services
本日のアジェンダ
AWS(Amazon Web Services)のご紹介
AWSではじめるGlusterFS
まとめ
Copyright © 2012 Amazon Web Services
AWS(Amazon Web Services)
のご紹介
Copyright © 2012 Amazon Web Services 5
カリフォルニア ダブリン
シンガポール
東京
オレゴン
世界中でサービスを展開中
初期費用なしで全世界のインフラを利用可能
バージニア
サンパウロ
リージョン
エッジローケーション
GovCloud
データは指定した地域に置かれる
Copyright © 2012 Amazon Web Services
AWSの様々なサービス
6
お客様のアプリケーション
認証 AWS IAM
モニタリング Amazon
CloudWatch
Web管理画面 Management
Console
デプロイと自動化 AWS Elastic Beanstalk
AWS CloudFromation
IDEプラグイン Eclipse
Visual Studio
ライブラリ & SDKs Java, PHP, .NET,
Python, Ruby
Development &
Administration
コンテンツ配信 Amazon CloudFront
メッセージ Amazon SNS Amazon SQS
分散処理 Elastic MapReduce
メール配信 Amazon SES
キャッシング Amazon Elasticache
ワークフロー管理 Amazon SWF
Application
Service
コンピュータ処理
Amazon EC2 Auto Scale
ストレージ Amazon S3
Amazon EBS AWS StorageGateway
Amazon Glacier
データベース Amazon RDS
Amazon DynamoDB Amazon SimpleDB
AWS グローバルインフラ Geographical Regions, Availability Zones, Points of Presence AZ Region
ネットワーク & ルーティング Amazon VPC / Amazon Elastic Load Balancer / Amazon Route 53 /AWS Direct Connect
Infrastructure
Service
Copyright © 2012 Amazon Web Services
Amazon EC2(Elastic Compute Cloud)
1 任意のゾーンに 分散配置可能
リージョン アベイラビリティ
ゾーン A
EC2
アベイラビリティ ゾーン B
EC2
EC2
数分で起動可能な仮想サーバ
1時間ごとの従量課金で利用可能
14種類の仮想サーバを選択可能
Windows, Linuxなどx86-64アーキテクチャのOSが利用可能
OS以上は自由に触れる
GlusterFSでもJbossでもインストール可能
Copyright © 2012 Amazon Web Services
Amazon EBS(Elastic Block Store)
EC2にマウント可能なストレージ
1EBSあたり最大1TB
複数のEBSを1つのEC2インスタンスにアタッチ可能
EBSを別のEC2にマウントしなおす事も可能
ただし複数のEC2から1つのEBSをマウントすることは出来ない
任意のファイルシステムでフォーマット
スナップショット機能
任意の時点の全データをS3へ保管
EC2
EBS
EBS /dev/xvdg
EBS /dev/xvdf
S3
NASA火星探査機「Curiosity」
・火星探査ミッションのライブ配信 ・3つのリージョン、300台以上のサーバー ・WebサイトにもAWSを利用
NASAのWebシステムアーキテクチャ
・WebサーバにNginx、CMSにRailoを使用
・GlusterFSをCMSのファイル共有ディスクに ・使用サービス:CloudFront,Route53,ELB,EC2,RDS,S3,CloudWatch
Copyright © 2012 Amazon Web Services
AWSではじめるGlusterFS
Copyright © 2012 Amazon Web Services
GlusterFSをAWSで実行すると・・
サーバ、ディスクの調達が容易
時間課金で試すのが簡単
異なるデータセンター間・遠隔地へのレプリカテストが容易
世界中のデータセンターが使える
GlusterFSを使用して、冗長的なアーキテクチャを実装可能
最も困難なデータ冗長化を実現
クラウドアーキテクチャの自由度が大幅にUP
RHELも従量課金!!
Copyright © 2012 Amazon Web Services
Step1 まずは2台でハンズオン
t1.microのAmazonLinuxインスタンスを同一アベイラビリティゾーンに2台起動
GlusterFSのインストール
yum localinstall -y http://adsj-demo.s3.amazonaws.com/gluster-
fs3.3/glusterfs-3.3.0-1.el6.x86_64.rpm http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/glusterfs-server-3.3.0-1.el6.x86_64.rpm http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/glusterfs-fuse-3.3.0-1.el6.x86_64.rpm
service glusterd start EC2 EBS
EC2 EBS
2つに
インストール
Copyright © 2012 Amazon Web Services
レプリカ設定
gluster peer probe EC2インスタンス2IP
gluster vol create vol01 replica 2 EC2インスタンス1IP:/mnt/ebs/brick-vol01 EC2インスタンス2IP:/mnt/ebs/brick-vol01
gluster vol start vol01
マウント
mkdir /mnt/gluster-vol01
mount -t glusterfs EC2インスタンス1IP:/vol01 /mnt/gluster-vol01
Step1 まずは2台でハンズオン
EC2 EBS
EC2 EBS
レプリカ
Copyright © 2012 Amazon Web Services
片山さん、めんどくさいよ・・・
Copyright © 2012 Amazon Web Services
良いものアリます!
AWS CloudFormation
JSONテンプレートを元に、システムを一気に構成
ボタンをクリックでCF発動
CloudFormationテンプレート
http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/gluster-fs-sample-2replica.json
Copyright © 2012 Amazon Web Services
Type" : "AWS::EC2::Instance",
"Properties" : {
"InstanceType" : "t1.micro",
"AvailabilityZone" : "ap-northe
"SecurityGroups" : [ { "Ref" : "I
"KeyName" : { "Ref" : "KeyNa
"ImageId" : "ami-2819aa29",
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Description" : "GlusterFS Sample. Replicate between two EC2 instances.",
"Parameters" : {
"KeyName" : {
"Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance",
"Type" : "String"
}
},
"Resources" : {
"Ec2Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"InstanceType" : "t1.micro",
"AvailabilityZone" : "ap-northeast-1a",
"SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],
"KeyName" : { "Ref" : "KeyName" },
"ImageId" : "ami-2819aa29",
"Tags" : [{"Key": "Name", "Value": "2Replica-GlusterA1"}],
"UserData": { "Fn::Base64": { "Fn::Join": [ "", [
"#!/bin/bash\n",
"mkdir /gluster\n",
"yum localinstall -y http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/glusterfs-3.3.0-1.el6.x86_64.rpm http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/glusterfs-server-3.3.0-1.el6.x86_64.rpm http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/glusterfs-fuse-3.3.0-1.el6.x86_64.rpm\n",
"service glusterd start\n"
] ]
}
}
}
},
"Ec2Instance2" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"InstanceType" : "t1.micro",
"AvailabilityZone" : "ap-northeast-1a",
"SecurityGroups" : [ { "Ref" : "InstanceSecurityGroup" } ],
"KeyName" : { "Ref" : "KeyName" },
"ImageId" : "ami-2819aa29",
"Tags" : [{"Key": "Name", "Value": "2Replica-GlusterA2+Client"}],
"UserData": { "Fn::Base64": { "Fn::Join": [ "", [
"#!/bin/bash\n",
"mkdir /gluster\n",
"yum localinstall -y http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/glusterfs-3.3.0-1.el6.x86_64.rpm http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/glusterfs-server-3.3.0-1.el6.x86_64.rpm http://adsj-demo.s3.amazonaws.com/gluster-fs3.3/glusterfs-fuse-3.3.0-1.el6.x86_64.rpm\n",
"service glusterd start\n",
"gluster peer probe ", { "Fn::GetAtt" : [ "Ec2Instance", "PrivateDnsName" ] },"\n",
"HOSTNAME=`hostname`\n",
"gluster vol create vol01 replica 2 ","$HOSTNAME:/gluster/brick-vol01 ", { "Fn::GetAtt" : [ "Ec2Instance", "PrivateDnsName" ] }, ":/gluster/brick-vol01\n",
"gluster vol start vol01\n",
"mkdir /mnt/gluster-vol01\n",
"mount -t glusterfs ","$HOSTNAME:/vol01 /mnt/gluster-vol01\n"
] ]
}
}
}
},
"InstanceSecurityGroup" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "EC2 Instance access"
}
},
"SGroupIngress1" : {
"Type" : "AWS::EC2::SecurityGroupIngress",
"Properties" : {
"GroupName" : { "Ref" : "InstanceSecurityGroup" },
"IpProtocol" : "tcp",
"ToPort" : "65535",
"FromPort" : "1",
"SourceSecurityGroupName" : { "Ref" : "InstanceSecurityGroup" }
}
},
"SGroupIngress2" : {
"Type" : "AWS::EC2::SecurityGroupIngress",
"Properties" : {
"GroupName" : { "Ref" : "InstanceSecurityGroup" },
"IpProtocol" : "tcp",
"ToPort" : "22",
"FromPort" : "22",
"CidrIp" : "0.0.0.0/0"
}
}
},
"Outputs" : {
"InstanceId" : {
"Description" : "InstanceId of the newly created EC2 instance",
"Value" : { "Ref" : "Ec2Instance2" }
},
"PublicIP" : {
"Description" : "Public IP address of the newly created EC2 instance",
"Value" : { "Fn::GetAtt" : [ "Ec2Instance2", "PublicIp" ] }
},
"PublicDNS" : {
"Description" : "Public DNSName of the newly created EC2 instance",
"Value" : { "Fn::GetAtt" : [ "Ec2Instance2", "PublicDnsName" ] }
}
}
}
Copyright © 2012 Amazon Web Services
Step2 AZ間のデータ同期
インスタンス起動
t1.microのLinuxインスタンスを異なるAZに2台づつ起動。
4つで1ボリューム
GlusterFSを4台にインストール
レプリカ設定
レプリカを2に設定
AZで2対になるように設定
ファイルシステムにマウント
EC2 EBS
EC2 EBS
EC2 EBS
EC2 EBS
Zone-A
Zone-B
レプリカ
レプリカ
4つで1ボリューム
Copyright © 2012 Amazon Web Services
片山さん、更にめんどくさいよ・・・
Copyright © 2012 Amazon Web Services
もちろんアリます!
AWS CloudFormation 作ったシステム構成は、一気に破棄できます。
ボタンで発動
CloudFormationテンプレート http://adsj-demo.s3.amazonaws.com/gluster-
fs3.3/gluster-fs-sample-4replica-2az.json
Copyright © 2012 Amazon Web Services
Step3 よりグローバルなシステム
複数のリージョンを使ったシステム
例えば日本とシンガポールをまたいだシステム構築
バックアップシステムやDRシステム
Geo-Replication
遠隔地へ、非同期でデータを同期
マスター/スレーブモデル
Replicated Volumes Geo-replication
クラスター内でデータをミラーリング 地理的に離れたクラスタでデータをミラーリング
高可用性を提供 バックアップやDR用途
同期処理 非同期処理
Copyright © 2012 Amazon Web Services
EC2 EBS
EC2 EBS
EC2 EBS
EC2 EBS
USリージョン
(マスター)
シンガポール
(スレーブ)
レプリカ
レプリカ
Geo-Replication 通常ファイルシステム指定も可
Copyright © 2012 Amazon Web Services 23
カリフォルニア
ダブリン
シンガポール
東京
オレゴン
全世界17カ所のAZでGluster可能
バージニア
サンパウロ
リージョン
アベイラビリティゾーン
Copyright © 2012 Amazon Web Services
Geo-Replicationの構築手順
http://d.hatena.ne.jp/c9katayama/20120819
Copyright © 2012 Amazon Web Services
Step4 あんまり使わないデータ
勢いでGlusterFSに貯めたものの、実はあんまり使わないデータ
アクセスログ
ユーザー操作履歴
加工前の画像・元データ
動画元データ
冗長化している分、ディスク費用がかかる
Copyright © 2012 Amazon Web Services
Amazon Glacier
Glacier(グレーシャー)=氷河
非常に低価格かつ高耐久性のアーカイブ用ストレージ
1Gbyteあたり月間約0.8円でデータ保管可能
99.999999999%の耐久性(複数箇所に保存)
1ファイル40Tbyte、ファイル数上限なし
G to G to G (Gluster to Geo to Glacier)
氷結
Copyright © 2012 Amazon Web Services
AWS 無料使用枠(12ヵ月)
Amazon EC2 750時間/月のLinux マイクロインスタンス
複数インスタンスでも、合計750時間/月であれば無料利用枠に該当
Amazon EC2 750時間/月のWindows Server マイクロインスタンス
複数インスタンスでも、合計750時間/月であれば無料利用枠に該当
Amazon EBS
30 GB に加え、200万 I/O、スナップショット ストレージ 1 GB
Elastic Load Balancing
750時間に加え 15 GB 分のデータ処理
帯域幅「送信(アウト)」15 GB
十分GlusterFS試せます!
Copyright © 2012 Amazon Web Services
Tips
ネットワークおよびEBSのIOパフォーマンスが欲しい場合
大きいインスタンス、大きいEBSボリュームを使用して下さい
EBSのストライピングも可能
Provisioned IOPSのEBSボリュームなら、安定したIOPSを提供
使用前のウォームアップ
EBS全領域へ一度書き込む事をお勧めします
エフェメラルディスクでもGlusterFS
料金無料の内蔵ディスクもGlusterなら便利に利用可能
ログの保存などに
2TのSSDを内蔵したEC2インスタンスもリリース
Copyright © 2012 Amazon Web Services
まとめ
Copyright © 2012 Amazon Web Services
まとめ
Gluster おためしするなら AWS!
無料枠 十分これで 試せます!
アカウント 作成までが 勉強会
Glusterで クラウド設計 柔軟に!
商用の Glusterなら Red Hat
Copyright © 2012 Amazon Web Services
http://aws.amazon.com/jp/event_schedule/awssummittokyo2012/
32