スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Amazon Elastic Block Store(EBS)をmysqlに利用 (前編)

障害が起こる度にサーバーに保存されていたデータが消滅してしまうと言う怖い特性を持つEC2でバックエンドのデータベースサーバーを運用することは今まで、非常に困難でした。

そこで救世主のように登場したのがAmazon Elastic Block Store(EBS)です。
今日は前編ということでこのEBSの概要を説明していきたいと思います。

EBSは一言で言うと障害に強くて、なおかつ高速で動くストレージです。
その特徴をまとめると以下のようになります

特徴1 障害等でインスタンスが消滅してもデータを保っていられる
特徴2 確保したEBSの領域はディスクデバイスとして動作するのでSMBやNFSに比べて通信のオーバーヘッドも無く非常に高速で動く
特徴3 サービスを停止することなく現在の状態をスナップショットとして保存出来る。
特徴4 複数のサーバーからEBS領域をマウント可能

このような特性を持っていて、バックエンドサーバーのデータベースのデータ保存先として運用するのに最適な特性を持っています。
EC2には、もう一つSimpleDBというものがありますが、これは独自のデータベースであり、コードの書き換えなどの作業が別途発生することや、性能が未知数であること、普及していないので情報を得にくいなどの問題があります。

EBSが出来るまではEC2はフロントエンドの運用に適したサーバー環境でしたが、このEBSが加わったことによってバックエンドの運用にも強い環境になったと言えます。

特に、データベースの運用で一番のネックであるバックアップ機能をアマゾンが用意してくれる点、複数のマシンからマウント可能な点はうれしすぎます。
例えば、データベースサーバーに障害が起こった場合、新しいインスタンスを起動してそのインスタンスからEBS領域をマウントしてサービス再開
問題があれば、即座にスナップショットに保存されているデータにロールバックしてサービス再開

そんなことが思うがまま、しかもデータのバックアップ先はS3で容量を気にすること無くガンガン使えるなんて、うれしすぎます。

特に高速ストレージは簡単なようで実際には、一流メーカーの製品でもはずれを引くとRAIDコントローラーが、限界スピードで安定しなくて原因不明のスローダウンを起こしたりで楽ではないです。検証作業などにかかる時間と労力はアマゾンが引き受けてくれる訳です。
エンジニアは抽象化されたデバイスを操るだけで温度もドライバも、マザーボードとの相性もみんな忘れられるんです。

なんてすてきなんでしょうAmazon EBS

さて次回はいよいよ「Amazon EBSを実際にmysqlで使ってみる」です。

テーマ : インターネットサービス - ジャンル : コンピュータ

Elastic IPを使おう 後編

さて夢が広がるEC2

前回は、その根幹をなすElasticIPの概要を説明しましたが、今回は具体的な使い方を紹介します

1.起動中のインスタンスのステータスを得る
$ ec2-describe-instances

結果例:
RESERVATION r-eXXxxxxx XXXXXXXxxx default
INSTANCE  i-XXXXxx ami-xxxx ec2-XX-XXX-XXX-xxxcompute-1.amazonaws.com domU-XX-XX-XX-00

2.固定IPを貰う
$ ec2-allocate-address

結果例:
ADDRESS 75.101.xxx.xxx

3.インスタンスに固定IPを割り当てる
$ ec2-associate-address -i i-876892xx 75.101.xxx.xxx
ADDRESS 75.101.xxx.xxx i-XXXXxx

これで終わりです。簡単ですね。
前回、説明したように固定IPといってもルーティングルールの変更なので、稼働中のマシンをこっそり裏で別のマシンにすり替えるなんて応用も出来ます。

自分で安定稼働するシステムを作るのに比べたら遥かに楽で安いですよね

テーマ : インターネットサービス - ジャンル : コンピュータ

Elastic IPを使おう 前編

固定IP、便利ですよね。
特にインスタンスの起動ごとに新しいIPが割り当てられるEC2ならなおのことです。

今回は手順を紹介する前にElastic IPの便利な使い方を紹介します。

クラウドの醍醐味、それは必要に応じてシステムをスケールアウト、スケールインが自由自在なことです。
例えば、負荷の高い夜には自動的にインスタンスを増やして、スケールアウト
負荷の低い日中は必要最低限のインスタンスでスケールイン
必要な時に必要なパワーが得られるのが、クラウドの最大の魅力です。

それを実現する上でキーになるのが、負荷分散をするロードバランサが、スケールアウトした時に、どこにインスタンスが出現するかを知る必要があります。
そこでElasticIPの出番です。起動したインスタンスに常に一定のIPが割り振られるようにすれば、ロードバランサ側の設定を書き換えることなく簡単にスケールアウトできます。

その制御がコマンドラインから簡単に出来る訳ですから、すごいですよね

ただ、一つ気をつけなければ行けないことがあります。
それは通常の固定IPと異なり、インスタンスでifconfigとやって自分のIPを見ると固定IPと異なるランダムなIPが割り当てられていることです。つまり、固定IPはルーティングによって実現されていてインスタンス自身が思っている自分のアドレスとは異なるということを頭の片隅に置いておいて下さい。

後編では具体的な使い方を解説します。

テーマ : インターネットサービス - ジャンル : コンピュータ

EC2のインスタンスをバックアップ

転ばぬ先の杖、バックアップ

普段の仕事でもバックアップは大切ですが、インスタンスの停止や障害でデータが失われるEC2ではバックアップ非常に重要な意味を持っています。

1.必要なカーネルモジュールをビルド
# depmod -a

2.モジュールが動いていることを確認
# modprobe loop

エラーが起きないことを確認


3.インスタンス側でamiツールが使えるようにする
# yum install ruby
# rpm -ivh ec2-ami-tools.noarch.rpm

ami-toolは、AWSの開発者ページからダウンロードできます

続けて、メニューのAccess Identifiersから509の証明書(CERTファイル)と秘密鍵(PKファイル)ファイルを入手する

4.イメージを作成する
# ec2-bundle-vol -d /mnt --privatekey "secret key file" --cert "cert file" --user "aws user"

secret key file 先ほどダウンロードしたPKファイル
cert file 先ほどダウンロードしたCERTファイル
aws user ログインした時に画面左上のメニューの下くらいにあるAccount Numberの次に表示されている XXXX-XXXX-XXXXと出てくるもの

注意:
30分以上掛かります。
その際、進捗が気になって別ウィンドウでログインして参照したりするとバックアップに失敗するのでバックアップ中は気になっても大人しくしていましょう

5.イメージをアップロードする
# ec2-upload-bundle -b "s3 busket" -m /mnt/image.manifest.xml -a "access id" -s "secret key"

s3 backets 適当な名前で良いですが、EC2の全てのシステム内でユニークである必要があります。
access id 先ほどアクセスしたAccess IdentifiersにあるAccess Key IDです
secret key 先ほどアクセスしたAccess IdentifiersにあるSecret Access Keyです

6.イメージを登録
$ ec2-register "s3 backets"/ec2-centos5.img.manifest.xml

s3 backets 先ほど指定したバスケット名と同じ名前で


おつかれさまでした。これでバックアップは完了です。
次回はEC2に固定IPを割り振るElastic IPについて解説したいと思います。

テーマ : インターネットサービス - ジャンル : コンピュータ

EC2のインスタンスを起動

さて今日はお待ちかねのサーバー起動です。

新しく買ったコンピュータを初めて起動する瞬間、新しいゲーム機を起動する瞬間
なんか不安と期待がおりまざったワクワク感は大人になっても変わらないものです。

さて、長かった道のりももうすぐ終わりです。
感動のEC2起動までがんばりましょう

1.自分のイメージの確認
$ ec2-describe-images -o self

前回、保存したバスケットの中にイメージが入っていると思います。

2.鍵ファイルの交換
$ ec2-add-keypair foofoo | sed -e "1d" > foofoo.id
$ chmod 400 foofoo.id

3.インスタンスの起動
$ ec2-run-instances "image id" -k vkgtest

image id 先ほど調べたバスケットの中にあるamiから始まるものです

3.ファイアーウォールを設定する(ポート22を空ける)
$ ec2-authorize default -p 22

ファイアウォールは、マシン個別のものとは異なるので注意です。

4.インスタンス状態を確認
$ ec2-describe-instances

pendingからrunningになるまで約3分くらい待ちます。
そこで表示されるec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.comのようなドメインを控えて下さい

5.sshで接続する
$ ssh -i foofoo.id root@ec2-xxx-xxx-xxx-xxx.compute-1.amazonaws.com

6.インスタンスの終了の仕方
$ ec2-terminate-instances instance id

注意:
インスタンスを終了してしまうとインスタンスは初期状態に戻ってしまうので、重要な設定などを行う場合は次の回で説明するバックアップの方法をチェックしてから行うことを強くお勧めします

テーマ : インターネットサービス - ジャンル : コンピュータ

プロフィール

未来探偵コナン

Author:未来探偵コナン
FC2ブログへようこそ!

カテゴリ
最新記事
最新コメント
最新トラックバック
月別アーカイブ
エンジニア推薦商品

こいつはかなり期待出来るゲームです。とにかく世界観がすごいです


魔王になってダンジョンに攻めて来る勇者をあの手この手で撃退するゲーム(モンハンよりはまります)


真のエンジニアは小物で差を付ける?会話が始まりそうなアイテムです


やっぱり最強は少佐の声の暗闇の雲でしょ by タチコマ


ガンダム型のUSBメモリ(熱いぜ)


綾波レイ型のUSBメモリ(コイツも熱いぜ)


ルパン型のUSBメモリ(いつ見てもカッコイイぜ)


ウルトラマン型のUSBメモリ(存在自体がユニバーサルデザイン)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。