amazon クラウド一覧

[AWS] S3のバケットをリージョンをまたいでマウント  

S3を活用するにあたり、複数のEC2から同一のバケットにアクセスできる仕組みを

作りたいというのは、誰しも想定するかと思いますが。

実際にどこまでできるかというところですね。

以下の手順で検証してみましょう。

1.バケットを作成する(リージョンはオレゴン)

 2.EC2を作成する。(リージョンは東京)

3.フリーツールS3fsをインストール。

$ sudo yum -y update
$ sudo yum -y install gcc-c++ fuse fuse-devel libcurl-devel libxml2-devel  openssl-devel
$ wget https://s3fs.googlecode.com/files/s3fs-1.74.tar.gz
$ tar zxvf s3fs-1.74.tar.gz
$ cd s3fs-1.74
$ ./configure –prefix=/usr/local
$ make
$ sudo make install

インストールされてか確認
$ find /usr/local -type f
/usr/local/bin/s3fs
/usr/local/share/man/man1/s3fs.1

4.バケットをマウント

IAMユーザーの作成

試しに作成作成してみました。

testuser
アクセスキー ID:
AKIAJYLWLPAAAZWC2TSA
シークレットアクセスキー:
+djZ2c/WIjnDdKzoRUtF+P1xoAAAAFe53RGlH2os0

※参考URL
http://qiita.com/monry/items/fa3bebd69e04a08ae12f

ディレクトリの作成(SSHでログインできないので未確認)
$ su –
mkdir /upload/600
chmod 777 /upload/600

※参考URL
http://hivecolor.com/id/49

s3fs の設定(SSHでログインできないので未確認)
echo “AKIAILFEAAAYLXKBOEQ:Fg8iwL6UALujjAeeGAAAEkvhbV2+mPL8QkFLyFpP” > /etc/passwd-s3fs

S3のマウントコマンド

sudo /usr/local/bin/s3fs s3folder1  /mnt/s3fs/ -o rw,allow_other,iam_role=”rolebucket”

5.EC2を作成する(リージョンはシンガポール)

6.フリーツールS3fsをインストール。

上記3と同様

7.バケットをマウント

上記4と同様

8.テキストを作成し保存する。

9.東京リージョンのEC2でバケットにアクセス。

10.先ほどシンガポールリージョンで作成したテキストにアクセス。

11・テキストを更新する。

12.リージョンをまたいだテキストの編集ができました。

ここに立証致します。

ざっとこんな手順です。

しかし上記試してみると、テキスト編集の際、レーテンシー(遅延)が気になりますね。



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




[amazon クラウド] RDS上のMySQLでリージョン間のレプリケーションを構築する

2015-07-12前回、前々回とRDS内でのレプリケーションの仕組み、MySQLでのレプリケーションの仕組みををまとめましたが

それを踏まえて

リージョン間でレプリケーションしたらどうなるかをまとめてみました。

WS000038

つまり更新系はマスターでないと他のスレーブに配ってくれないので、データは

マスターに行く。参照系は、各リージョンにあるRDSに繋げば、データ量が多いクエリも

マスターを見に行くより早いのは間違いない。

この方法による構築での課題点は

・参照系と更新系でデータベースの接続先が違う。

・MySQLのレプリケーションは非同期レプリケーションなので、タイミングによっては、
整合性がとれていないクエリー結果になってしまう。
上記の図の例で言いますと、海外1と海外2はタイミングによっては、結果がずれる。
東京は、マスターを参照するので、ずれはない。
因みに、リージョン内での参照系レプリケーションであればRDS側のReadReprication機能で対応できます。

具体的な手順を以下に記載します。

1.まず、マスターのEC2を立ち上げます。

2.MySQLをインストールしましょう。

3.マスターのリージョンにRDSインスタンスをmySQLで起動します。

•MySQL5.6.13のRDS

•Publicly AccessibleをON

•Mullti-AZオプションはOFF

•セキュリティグループではお互いの通信を許可

ポートの開放

インバウンド、アウトバウンド両方

4.EC2からRDSのmySQLに接続

5.ここでレプリケーション用のユーザーを作成しておく

6.テスト用のテーブルを作成する。

7.バイナリ―のログにアクセスできるようにストアドプロシージャーを実行する。

8.内容を控えておく

8.次に、スレーブ用のリージョンのRDSのインスタンスを起動します。

同じようにポートを解放してください。

9.スレーブのデータベースに接続します。

10.レプリケーション用のユーザーを作成します。

11.マスターのデータベースをそのままスレーブにコピーします。

最初にマスターをダンプします。

次にスレーブ側でダンプファイルをインポートします。

12.スレーブ側 mySQLにて以下ストアドプロシージャ―を実行します。

先程の内容をセットします。

13.スレーブ側でレプリケーションを開始します。

14.状況確認します。

13.マスター側で

データを登録

14.スレーブ側でレコードが増えているか確認 レコードが1件増えていれば

同期確認完了。



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。


 




[Amazon クラウド] RDSのレプリケーションについて

レプリケーションはとは、データベースの中身を複製することによって、以下の役割を満たすこと。

・壊れたときの予備

・分散しておくことで、スピードアップ

RDSにもレプリケーション機能が備わっています。

 

MultiAZ構成

マスターとスレーブ (メインとサブ)に分けて2つのデータベースを作成する機能

同期レプリケーションであり、物理レプリケーションである。

同期レプリケーションとは

ひとつのデータベースを作ったあと、次をつくる

非同期レプリケーション

データベースの作成を待たずに、次のデータベースを作る。(分散)

論理レプリケーションとは

トランザクション単位でレプリケーション(複製する)

ひとつのトランザクションが終わったら次みたいな。

物理レプリケーションとは

マスターのトランザクションを待たずスレーブが平行して動き出して

それが終わって一式で、決定される。(全体で整合性を取る)

リードレプリカ

参照するときは、マスター、とスレーブ両方見に行く機能。

参照なので、更新系とちがい、どちらか

早く取得できるほうを選んで取得する(分散)

 



メルマガ登録をお願いします。

素敵な?情報がいつもあなたに届くようになります。(itmnewsの記事が届きます。)お役に立つかどうかわかりませんが頑張りますっ。登録してみてください。