Amazon RDS編~EC2インスタンスからDBインスタンスへの接続~

今回はAmazon RDS編と題して、Amazon EC2からAmazon RDSへの接続についてお話したいと思います。

以前の記事でもAmazon RDS編ということで、RDSのDBインスタンスの立ち上げに関する記事を記述させていただきましたが、ここ最近、Amazon RDSがより利用しやすいサービスになってきています。

無料枠が追加されたり、更には、これまで選択可能だったMy SQLやOracle Database、SQL Server 2008 R2に加え、新たにMicrosoft SQL Server 2012も選択可能になりました。

今後も次々と新機能やDBエンジンが追加されていくことが予想されるので、これを機会にAmazon RDSを利用していくというのもよいかと思います。

なお、以前のRDS DBインスタンスの立ち上げに関する記事は以下を参照してください!

Amazon RDS編~DBインスタンスを立ちあげてみよう!~

さて、ここから今回の本題に入りたいと思いますがその前に、今回のレシピでお話するEC2からRDSへの接続について簡単に表記しておきます!

以前の記事にて立ちあげたAmazon RDSのDBインスタンスですがデフォルトの状態だと、どこからも接続できない状態になっています。

SnapCrab_NoName_2013-5-22_17-58-50_No-00

これをAmazon EC2インスタンスから接続できるようにするためには、Amazon RDSのDBインスタンスのセキュリティグループで、MySQLポートを開放するという作業が必要になります。

SnapCrab_NoName_2013-6-28_9-52-58_No-00

それでは以下、その一連の作業手順を説明していきましょう!

1. まずは、DBインスタンスで適用されているセキュリティグループで、MySQLのポートを開放します。

AWS管理コンソールにログインしてサービスメニューの中からEC2を選択して下記画面を開き、Resourcesにある「Security Groups」をクリックします。

20130705_02_01

2. 該当のセキュリティグループを選択し、「Inbound」をクリックします。

20130628_05_02

3. プルダウンメニューからMySQLを選び、「Add Rule」をクリックして加えます。最後に「Apply Rule Changes」をクリックして反映させます。

20130628_05_03

これでMySQLのポートは開放されました!

つぎに、実際にDBインスタンスに接続する際に必要な情報を確認します。

4. サービスメニューの中からRDSを選択し、左メニューにある「DB Instances」をクリックします。

20130628_05_04

5. DBインスタンス一覧から対象のDBインスタンスを選択して、下記項目の確認をおこないます。

①Endpoint
②Username
③Name

20130628_05_05

DBインスタンスへの接続コマンド


1. DBインスタンスへの接続は、PuTTYなどからEC2インスタンスに接続して以下のコマンドを入力しておこないましょう。

mysql -h [ENDPOINT] -P 3306 -u [Username] –p [Name]

例:
[crayon-5e8797e56a1dd284642816/]
...と入力すると「Enter password: 」と表示されますので、RDSのインスタンスを立ち上げた際に設定したマスターパスワードを入力します。

2. マスターパスワードを入力した後に、下記の様に表示されれば接続は成功です!
[crayon-5e8797e56a1ec762586381/]

これで作業は完了です!
なお、EC2インスタンスへの接続については以前に記述した下記の記事を参照してください。

Amazon EC2インスタンスにPuTTYで接続!
Amazon EC2インスタンスにTera Termで接続するには?

いかがでしたでしょうか?

せっかくDBインスタンスの立ちあげをおこなっても、デフォルトの状態のままだと接続がおこなえませんので立ちあげた後は接続するための設定もおこなっておきましょう!

次回も、引き続きAmazon RDS編ということで、「Amazon RDS編~Multi-AZでできること~」と題してAmazon RDSのMulti-AZ機能についてお話します。
お楽しみに!
ナレコムではAWSに興味がある、AWSを仕事にしたいクラウドエンジニアを絶賛募集中です!興味がある方はこちらからお問い合わせください。


Amazon EC2編~SnapshotやAMIを使ったバックアップと運用パート②~

今回は、「SnapshotやAMIを使ったバックアップと運用~パート②~!」と題してお話をしていきます。

以前の記事では「Amazon EC2編~SnapshotやAMIを使ったバックアップと運用パート①~」ということで、主にAMIの作成とSnapshotからのAMIの作成について記述したかと思います。
そこで今回はパート②ということで実際に障害が発生してしまった際、この作成したAMIを使ってどのように障害復旧を行うか記述しておきたいと思います。

パート①でもお話したように、バックアップを行なっておくということはとても重要です。
特に、実際に障害が発生してしまった時はバックアップがものをいいます。
Amazon EC2インスタンスに「SSHで接続できなくなった!」や「Ping疎通がされない!」といった場合にAMIを利用して障害を復旧させます。

※AMIを利用して復旧作業を行う前には、必ずPingやhttpdなどの障害が発生している該当サービスの再起動を行ってください。
また、障害が発生している該当EC2インスタンスの再起動および、停止してから起動を行ってみましょう!
それでも改善しない場合にAMIを利用して復旧作業を開始します。

ではまず、通常にAMIを利用して障害が発生してしまっているEC2インスタンスと同スペックのインスタンスを同一のゾーンで起動し直してみます。

1.AWS管理コンソールにログインしてサービスでEC2を選択、下記画面を開き左メニューの「AMIs」をクリックします。

20130620_01_01

2.AMI一覧から該当AMIを右クリックし、「Launch」を選択します。

20130620_01_02

なお、以降の手順は以前の記事の「Amazon EC2インスタンスを立ちあげてみよう!」の手順10から参照していただき、作業を行ってもらえれば大丈夫です。また確認事項として、
手順15のインスタンスキーの生成は「Choose from your existing Key Paris」を選び、既存のEC2インスタンスを作成したときに生成したKeyを選択してください。

これで作業は完了です!・・・が!!!

もし、以上の作業を行っても障害が解消されない場合は、先ほどの作業のなかで設定した、Availability Zoneを別のゾーンに設定して改めてインスタンスを起動し直してみましょう。

いかがでしたでしょうか?
このように、事前にAMIを作成しておけば障害が発生してしまった場合でも障害復旧作業は短時間で簡単に行えます。
障害はできれば起こって欲しくないものですが万が一に備え、是非、確認しておいてください!

次回は「Amazon RDS編!」ということで、EC2インスタンスからDBインスタンスへの接続についてお話していきたいと思いますので、お楽しみに!


Amazon EC2編~スポットインスタンスを使ってみよう!~

今回は、AWSのちょっと変わったインスタンスについて紹介したいと思います。

「スポットインスタンス」というものをご存知でしょうか?
スポットインスタンスとは、AWSサーバ上に存在し、使われていないEC2インスタンスに値段をつけ、その入札価格が現在のスポット価格(※長期ではなく、1回ごとの取引で決定され成立した市場価格)を上回っている限り、そのインスタンスを利用することができるというものです。
これにより、コスト削減も見込めます。
そのため、スポット価格は需要と供給の関係に基づいてリアルタイムに変動します。

SnapCrab_NoName_2013-5-22_17-44-47_No-00

ただし、スポットインスタンスでは、インスタンスが中断される可能性があるのでそれに備えておく必要があります。
最高入札価格を高く設定することで、スポットインスタンスが終了する可能性を下げることができますが、中断を防ぐことはできません。スポット価格が、設定した最高入札額を上回った場合は予期せずインスタンスが終了しますので、停止を想定したインスタンスの利用を行なうことをおすすめします。

ではその注意点を踏まえたうえで、実際にスポットインスタンスの利用法を説明していきます。

まず、スポットインスタンスリクエストを作成する前に、スポット価格履歴を確認してください。
インスタンスタイプ、インスタンスを実行するオペレーティングシステム、期間、起動する利用可能ゾーンに基づいて、1日から90日間のスポット価格の変動履歴を見られるのでこちらも合わせて事前に確認しておきましょう!
以下、スポット価格履歴の表示の仕方です。

1.AWS管理コンソールにログインして、以下の画面で「EC2」を選択します。
20130716_01_01

 

2.画面左側メニューの「Spot Requests」をクリックします。
20130716_01_02

 

3.画面上部にある「Pricing History」をクリックします。
20130716_01_03

 

4.スポットインスタンスの価格設定履歴確認画面が表示されます。
任意のOS、インスタンスタイプ、指定期間、利用可能ゾーンを選択して価格履歴の確認をおこないます。
20130716_01_04

 

スポットインスタンスリクエストの作成に入る前に、リクエストについて記述しておきましょう。
スポットインスタンスリクエストには以下、2種類のリクエスト方法があります。

ワンタイムリクエスト

リクエストをおこなった全てのインスタンスが起動するか、リクエストの期限が切れるか、リクエストをキャンセルするかのいずれかが確認されて時点でリクエストが完了するという方法です。

持続スポットインスタンスリクエスト

おこなったリクエストの期限が切れるかもしくは、キャンセルをおこなうまでリクエストの完了または終了はしません。
また、Amazon EC2 での最高入札価格が、リクエストをおこなった際の入札価格を超える場合はインスタンスを起動し、下回る場合はインスタンスを停止します。

ワンタイムリクエストでも持続リクエストでも、スポット価格を下回るか、終了するか、自動的に終了しない限りインスタンスは続行します。
また、最大価格がスポット価格とまったく同じである場合、インスタンスは続行する場合としない場合があるのでご注意ください。

さて、いよいよ下記、スポットインスタンスリクエストの作成です!
なお手順は、先ほどのスポット価格履歴の表示手順2までは同様の手順になります。

また、リクエストできる最大スポットインスタンス数は、最大100となっています。
それ以上のスポットインスタンスをリクエストする場合は、同じく以下のAmazon EC2インスタンス申請フォームから申請をおこなえば制限数を増やすことができます。

・Amazon EC2インスタンス申請フォームはこちら

スポットインスタンスリクエストの作成

1.画面上部にある「Request Spot Instances」をクリックします。
20130716_01_05

 

2.今回は試験として、Amazon Linuxでスポットインスタンスのリクエストをおこないますが、選択内容は自由なので任意で選択をしてください。まずは通常のインスタンスの立ち上げ同様にOSを選択します。
20130716_01_06

 

3. 任意で仕様に合わせて項目を選択し、「Continue」をクリックします。
20130716_01_07

 

以下は項目の説明です。

Max Price 1時間ごとの、支払うことができる最高入札額
Launch Group 一連のリクエストをまとめるグループのためのレベル
設定をするとグループ単位で起動・終了できる
Request Valid From リクエストの有効期間のはじまり
Request Valid Until リクエストの有効期間の終わり
Persistent Request? リクエストがワンタイムか接続かを決定
デフォルトではワンタイムリクエスト

 

これより先の手順はAmazon EC2インスタンス立ちあげ手順と同じになります。
※Amazon EC2インスタンス立ちあげのレシピはこちら

4. 作成したスポットインスタンスのStateが「open」から「active」になったら完了!
20130716_01_08

 

・・・ですが、

中には、リクエストしたスポットインスタンスを設定したものの、やっぱりキャンセルしたい・・・!
という方もいらっしゃると思うのでキャンセルのやり方についても、念のため記述しておきます。
なお、スポットインスタンスはSTOPをすることができませんので不必要になったらキャンセルしてインスタンスを削除するしかありません。

スポットインスタンスのキャンセル方法

手順2までは、先ほどのスポットインスタンスリクエスト作成と同じです。
1. リクエストをおこなっていれば、以下のようにスポットインスタンスリクエストの一覧が表示されているはずです。削除をおこないたいスポットインスタンスを選択して、画面上部の「Cancel」をクリックします。
20130716_01_09

2. 「Yes, cancel request」をクリックしてスポットインスタンスのリクエストをキャンセルします。
20130716_01_10

 

3. そうすると、スポットインスタンスのStateが「cancelled」、Statusが「request-canceled-and-instance-running」になります。
20130716_010_11

 

4. リクエストはキャンセルされたけどインスタンスは起動しているということなので、インスタンス画面から対象インスタンスを左クリックして「terminated」をクリックします。
20130716_01_13

 

5. 「Yes, Terminate」をクリックします。
20130716_01_14

 

6. そうするとスポットリクエストのStatsが「instance-terminated-by-user」となり、スポットインスタンスがキャンセルされます。
20130716_01_15

 

これで、スポットインスタンスのキャンセルをおこなうことも可能です。

いかがでしたでしょうか?
注意事項もありますが、スポットインスタンスを有効活用すれば、AWSを使ってより効率よく、そして低コストでシステムを運用する
ことが可能になりますので皆さんも是非、スポットインスタンスを使ってみましょう!

次回は以前のレシピに引き続き、「Amazon EC2編~SnapshotやAMIを使ったバックアップと運用パート②~」と題してお話していきたいと思いますので、お楽しみに!


Amazon EC2編~microインスタンスのSWAP領域について~

つい先日、AWSよりEC2リザーブドインスタンスの料金を最大27%値下げすると発表されました。
これによってコストも削減され、さらにEC2が手軽に利用できるようになりますね!

今回はそんなAmazon EC2に関することで、microインスタンスのSWAP領域についてお話したいと思います。

■SWAP領域とは?

システムの動作中に容量が不足しメモリを使い切りそうになってしまった場合、メモリから内容の一部を取り出して一時的に退避させるためのHDD上の領域になり、容量を有効活用しよう!という手段です。
Linuxでは、専用の領域としてパーティション作成時に確保します。

なお、EC2のmicroインスタンスには標準ではSWAP領域がありません。
SWAP領域が必要な場合は、設定をおこなう必要があるので、その設定方法を以下に記述しておきます。

①ddコマンドで適当なサイズのファイルを作成します。
コマンドオプションの「of」にファイルのパスを指定して「bs」に基準となる容量の単位を指定して「count」にbsの量を指定します。
②「mkswap」コマンドで、ファイルをSWAPフォーマットに変更します。
③「swapon」コマンドでSWAPファイルをシステムのSWAP領域として有効にします。
④「swapon -s」コマンドで確認すると、SWAPが組み込まれたことが分かります。

20130315_04_01.png

また、以下のように「top」コマンドで確認をしてもSWAP領域が使われていることが分かるかと思います。

20130315_04_02.png

最後に「/etc/fstab」ファイルの最終行にSWAP設定を追加します。その際は、キーボードの「Insert」キーで設定を開始します。
これで設定は完了です!

なお、設定を追加したらキーボードの「Esc」キー:を押して、「wq」コマンドを入力し設定を保存しましょう!

ただ、SWAPを利用する際には十分、注意が必要です。
SWAP領域を作成するとEBSのI/Oリクエストが頻繁におこなわれ、その都度、課金がおこなわれます。
そのため、SWAPを利用する際は一時的な利用をおすすめします。
長時間の利用をしなければならないといった場合は、一つ上のスペックのインスタンスタイプを使ってスワップしないメモリ容量を確保するようにしましょう。

なお、SWAPを無効にしたい場合は「swapoff -a」コマンドを実行すれば可能です。

いかがだったでしょうか?
SWAP領域はデメリットをしっかり確認しておけば、十分、活用することは可能です。
是非、EC2上でデータを運用する際の参考にしてください!

次回は、「Amazon EC2編~スポットインスタンスを使ってみよう!~」と題して、Amazon EC2のスポットインスタンスについてお話しますのでお楽しみに!


Amazon S3編~ファイルサーバのバックアップ~

先日、米国Amazon Web Services(AWS)がストレージサービスの「Amazon S3(Simple Storage Service)」において、Cross Origin Resource Sharing(CORS)のサポートを開始すると発表しました。
S3については後ほど説明したいと思いますが、このサポートによって異なるドメインで提供するWebアプリケーションから、S3上にあるデータへのアクセスができるようになります。

CORSとは、主コンテンツと異なるドメインにあるリソースへのリクエストを行うWebアプリケーションの開発を可能にする仕様のことです。
今回S3がCORSをサポートしたことで、S3上に保存されたWebフォントや画像などを、異なるドメインで提供しているWebページやスタイルシート、アプリケーションなどで参照できるようになるというものです。
さらに、ドラッグ&ドロップでのS3へのアップロードやアップロードの進捗を表示など、Webアプリケーションから直接コンテンツを更新したりできるHTML5を実装することが可能になりました。

今までこうした機能を実現するためには、WebアプリケーションとS3の間にプロキシサーバを用意する必要があったため、今回のCORSのサポートによって無駄が削減され、さらなるS3の有効活用につながるのではないでしょうか。

これまでも何度かバックアップに関して話をしてきましたが、今回もそんなバックアップに関連した話を記述したいと思います。
冒頭でも少し出てきたかと思いますが、Amazon S3(Simple Storage Service)というAWSサービスをご存知でしょうか?

S3とはインターネット用のストレージサービスで、よりスムーズにウェブスケールなコンピュータ作業ができるようにと設計されました。
S3ではいつでも、ウェブ上のどこからでも容量に関係なくデータを格納・取得できます。これにより、拡張可能で信頼性が高く、安全で、高速でありながら安価なインフラストラクチャを利用することが可能になります。
また、S3でのデータ耐久性は99.999999999%(イレブンナイン)と言われており、S3に1万個のデータを保存した場合でもそのうちの1データが障害によって失われる可能性は平均で、1000万年に1度あるかないかというほどの耐久性です。
これは、S3領域の複数の機器に対する冗長構成によって実現しているということです。

S3にただデータを保存するだけで、バックアップやスケーリング、デバイスの故障、その他災害などといったデータに関する心配事から開放されるでしょう!

ということで今回は、ファイルサーバでのバックアップを例にあげて、S3を採用することによるメリットや、構成例等を説明します。

バックアップをおこなっていくうえでの全体の課題としては、以下のような点があげられるかと思います。

・ファイルサーバのバックアップ方法としてテープバックアップをおこなっている場合、定期的なテープの交換作業およびリストア時における該当テープの調査とサーバセットアップ等の運用に関する工数がかかる
・バックアップ保存先が単一拠点の場合、大規模災害時にデータを喪失してしまう

ここで、上記の問題を解決できるS3が登場します!S3の導入メリットは以下になります。

・容量無制限のS3をバックアップストレージとして採用することでテープのように、「容量がいっぱいになったらテープ交換しなければならない」といったことがなくなり、作業工数の削減につながる
・単一拠点ではなく、複数拠点に保存(S3リージョン内で自動複製)されるのでデータ堅牢性が高く、BCP強化に最適

また、以下のようなサードパーティ製のツールの利用も可能です。

・Cloud Berry:リストアがファイル単位で簡単におこなえる
・WebDrive  :Windows ServerのファイルをS3にバックアップする場合、ファイルサーバとS3を自動的に同期することが可能

■構成イメージ

20130315_03_01.png

いかがでしたでしょうか?
以上のことから、サーバのバックアップをおこなう際の手段としてS3も非常に有効であるということがお分かりいただけたかと思います。
運用負荷の軽減及び遠隔バックアップの災害対策を目的とした、AWSのストレージサービスS3を是非利用しましょう!

次回は、「Amazon EC2編~microインスタンスのSWAP領域について~」ということでお話しますのでお楽しみに!


Amazon EC2編~SnapshotやAMIを使ったバックアップと運用パート①~

こんにちは!

以前の記事では、「Amazon EC2編~EC2インスタンスを監視するには~」記述したと思います。

もちろんシステムの監視をおこなうことも大事ですが、もうひとつ欠かせないことがあります。
それは・・・

「データ」の保守です!!

AWSに限らず、システムを運用していくうえで「データ」はとても重要なものです。
大事なデータが消えてしまった!なんてことが起きてしまったら・・・
一大事ですよね?!!

そこで、やはりデータの保存[バックアップ]がとても大切になってくると思います。
今回は、そんなバックアップの際に重要になってくるSnapshotとAMIについてお話していきます。

これからAMIの作成と、SnapshotからAMIを作成する方法を説明していきたいと思いますが、その前にSnapshotとAMIについて簡単にまとめておきます。

AMI(Amazon Machine Image)とは


・Amazon EC2環境で実行可能なソフトウェア構成(OS、アプリケーション等)を含むテンプレートイメージ。
EC2インスタンスがスムーズに起動、動作することを目的として設計されている
・必要でないインストールパッケージは削除し、セキュリティ面における安全性を強化

Snapshotとは


・HDDのイメージファイルのことをいい、データだけでなくOSをまるごと複製することもできます。
・その他特徴

①ある瞬間のデータの複製バックアップが可能
②プログラムの更新確認やテスト環境を一時的に作る際など、ある特定のデータ部分を用いて環境を作りたいというニーズにも対応可能

以上の点から、Snapshotを使用することであの時の状態でインスタンスを起動したい!・・・という場合でもSnapshotからAMIを作成し、簡単に新しいインスタンスを立ちあげることができます。

AMIとSnapshotをうまく組み合わせて利用していけば、有効にバックアップをおこなうことが可能です。

それでは、始めにAMIの作成方法を説明します。

1. AWS管理コンソールにログインしてサービスでEC2を選択、下記画面を開き左メニューの「Instances」をクリックします。

20130621_02_01

2. インスタンスの一覧から、AMIを作成する対象インスタンスを右クリックし、「Create Image(EBS AMI)」を選択します。

20130621_02_02

3. 下記画面で以下の項目を任意で確認・入力して、[Yes, Create]をクリックします。
・[Image Name]:AMI作成日付等
・[Image Description]:対象サーバの名称

20130620_02_03

4. 初めの画面に戻り、左メニューの「AMIs」をクリックします。

20130621_02_04

5. AMI一覧から、作成をおこなったAMIの作成完了状況を確認します。
完了に時間がかかっている場合は画面右上にあるRefreshマークをクリックして再度、確認してください。
※「Status」の項目が緑の文字で"available"と表示されるまで待ちましょう。

20130619_01_05

これで、AMIの作成が完了です!
この作成したAMIから、新たにEC2インスタンスを起動することが可能になります。

次に、SnapshotからAMIを作成する方法です!

1. 先ほどと同じく、AWS管理コンソールにログインしてサービスでEC2を選択、下記画面を開き左メニューの「Snapshots」をクリックします。
20130621_02_06

2. 一覧から、利用したい瞬間のスナップショットを右クリックして、「Create Image from Snapshot」を選択します。
20130261_02_07

3. 下記画面で以下の項目を任意で確認・入力して、「Yes, Create」をクリックします。
・[Name]:作成日付等
・[Description]:サーバ名称
・[Architecture]:x86_64に変更
20130621_02_08

いかがでしたでしょうか?

バックアップと聞くと、手間も工数もかかり面倒なイメージもあるかもしれませんがAWSでは、簡単にバックアップをおこなえることがお分かりいただけたかと思います。

冒頭にもお話しましたが重要なデータを損失するリスクを解消するためにも、ちょっとした時に上記の方法で簡単バックアップをおこなっておきましょう!

次回は「Amazon S3編!」ということで、Amazon S3でのファイルサーバのバックアップについてお話しますのでお楽しみに!!

ナレコムではAWSに興味がある、AWSを仕事にしたいクラウドエンジニアを絶賛募集中です!興味がある方はこちらからお問い合わせください。


Amazon EC2編~EC2インスタンスを監視するには~

先日AWSの方で、Amazon CloudWatchに新機能が追加されたと発表がありました。
新機能とは、Amazon CloudWatchでサービスに異常を検知してアラームがトリガされた場合、EC2などのインスタンスでサービスを停止または、終了する機能だそうです。

この機能はフェイルセーフ(異常な状態を検知してから行動する)やアプリケーションの処理ロジックの一部(期待される条件を待ってから行動する)として使うことができるので、非常に便利な機能です。このアラームアクションの設定についても後ほど、ご説明したいと思います。

ということで今回は、そんなAmazon EC2での監視について記述したいと思います。

システムを運用していくうえで懸念事項となるのは、やはり「障害」かと思います。
どんなに万全に設定をおこなっても、障害が起きてしまうことはあります。
障害をいち早く検知また、できるだけ障害を未然に防ぐには日々のシステム監視が重要になります。
監視方法はいくつかありますが、まずは「Amazon CloudWatch」を紹介しましょう!

基本的にAWSでの監視はこのAmazon CloudWatch行えます。
Amazon CloudWatchは、リソース監視のためにあらかじめAWSで用意されている測定基準(メトリクス)をもとに、インスタンスをモニタリングしてそのデータに基づくアラートアクションを構成できるサービスです。
あらかじめ、CloudWatchで設定をおこなっておけば何か監視項目で変動が起こった際、所定の通知先にアラートメールを通知することもできます。

下記画面が実際のEC2でのCloudWatch監視項目です。
(※通常にAWS管理コンソールにログインしていただき、EC2サービスに入った画面下部の「Monitoring」タブをクリックしていただくと、表示されます。)

20130620_03_01

また、EC2でのCloudWatchアラート通知設定方法についても説明しておきましょう!

1.AWS管理コンソールにログインして、サービスでEC2を選択し下記画面を開き、画面左メニューにある「Instances」をクリックします。
20130620_03_02

2.インスタンスの一覧から今回、設定をおこなう対象インスタンスをチェック、画面下部より「Monitoring」タブを選択して「Create Alarm」をクリックします。

20130620_03_03

3.「create topic」をクリックします。

20130620_03_04

4.「Send a notification to:」の項目に任意の名前(アラーム名称)を入力していただき、「with these recipients:」にメールアドレス(ア ラーム通知先)を入力します。
「Whenever」の「of」の後の項目で「Status Check Failed(Any)」を選択、「Create Alarm」をクリックします。

20130620_03_05

5.Closeをクリック

20130620_03_06

また、今回は監視項目で「Status Check Failed(Any)」を選択しましたが、監視の設定項目は他にも以下の項目を選択することが可能です。
それぞれAverage(平均)、最大(Maximum)、最小(Minimum)で表示させることができるので簡単に項目の設定をおこなうことができます。

・CPU Utilization(CPU使用率)
・Disk Reads(ディスク読み込み状況)
・Disk Writes(ディスク書き込み状況)
・Network In,Out(ネットワーク状況)
・Status Check Failed(ステータスチェックに失敗した際)

また、手順3の画面にも表示されているしきい値のグラフはリアルタイムに反映され、下記画面のように確認することができます。

アラーム通知設定の手順2と同様、画面下部で「Monitoring」タブをクリックすると、グラフが表示されます。
20130315_01_05.png

これで、アラーム通知設定は完了です!

ただ、CloudWatchの基本設定だけではLoad Average(処理を待っているプロセス数)やメモリ利用状況、Disk Usage(ディスク利用状況)といったOS内部の情報を監視することはできません。その補完としてあるのが、「カスタムメトリクス」です。
「カスタムメトリクス」はCloudWatchにある機能の1つで、先述であげたような、CloudWatchの基本設定だけだと監視することができないけど、この部分については監視したい!という項目のメトリクスを独自に作成し監視をおこなうことも可能です。
20130315_01_06.png

加えて、冒頭でお話したCloudWatchのアラームアクションの設定に関する説明ですがもし、このアラームアクションの設定をおこなう際は、先ほどのアラーム通知設定の手順3の画面の「Take the action」の項目にチェックを付け、「Stop」か「Terminate」を選択してアラームがトリガされた場合の処理を決めましょう!

最後にもうひとつだけ、監視ツールをご紹介します。「Nagios」という監視ツールです。

Nagiosはサーバ自体の稼動状態を監視するツールです。
Nagiosには、システムの異常を検知してメールで報告する機能、Webインターフェースによるサーバステータスの一覧や、レポートの出力機能などがあります。
20130315_01_07.png

こちらでご紹介した監視ツールおよび監視方法は、ほんの一例です。
特に監視方法については、紹介したCloudWatchの「カスタムメトリクス」を用いることで様々なパターンで監視をおこなうことが可能です。
また監視をおこなう上で、「カスタムメトリクス」については公式のものも公開されていますので詳細については以下のページも参考にしてみてください。

■Amazon CloudWatch開発ガイドはこちら

いかがでしたでしょうか?
是非、監視ツールを活用していただき、負荷なく監視をおこないましょう!

次回は、「SnapshotやAMIを使ったバックアップと運用~パート①~」と題して、SnapshotやAMIを使ったバックアップについてお話しますのでお楽しみに!


Amazon RDS編~DBインスタンスを立ちあげてみよう!~

こちらについての最新記事が更新されました!
Amazon RDS編~DBインスタンスを立ちあげてみよう!Update~

先日、Amazon Relational Database Services(Amazon RDS)の方でも無料枠が追加され、SQL ServerのマイクロDBインスタンスを毎月750時間、20GBのデータベースストレージ、1000万I/O、20GBのバックアップストレージを1年間無料で使えるようになりました。

これにより、今までは利用しづらかったRDSも気軽に利用できるようになったと思います。

というわけで今回はそんなRDSの利用について紹介していきます。
以前の記事ではEC2入門編ということで掲載致しましたが、今回はそのRDS編!!基本設定や監視設定を実施する上での注意事項また、MySQLとの違いについてなど、入門から少し詳細な部分まで、RDSの利用法を解説していきます。
RDS(Relational Database Service)は、データ管理方式の1つでその各々で決定した方式に基づいて設計したデータベース(リレーショナルデータベース)を簡単にセットアップ、運用、拡張することのできるサービスです。

第1回目は、RDSのDBインスタンスの立ちあげ方法について、ご紹介します。EC2同様、簡単な操作ですぐにインスタンスを立ちあげることができるので是非、参考にしてください!

それでは、RDSを立ちあげてみましょう!

1. AWS管理コンソールのログインページにてメールアドレスとパスワードを入力、「Sign in using our secure server」をクリックします。

20130621_03_01

2. ログイン後、表示されるメニュー画面の「Amazon Web Services」の項目で、「RDS」を選択します。
予め、セキュリティグループとパラメータグループを作成しておきます。

20130621_03_02

3.  「DB Security Groups」をクリックします。

20130621_03_03

4. 「Amazon RDS: My DB Instances」項目の中の「Create DB Security Group」をクリック。

20130621_03_18

5. 「Name」、「Description(概要説明:日付等)」を入力して、「Yes, Create」をクリックします。

20130621_03_04

6. 「Navigation」のメニューの中の「DB Parameter Groups」をクリックします。

20130621_03_07

7. 「Amazon RDS: My DB Instances」の中の「Create DB Parameter Group」をクリックします。

20130621_03_08

8. 下記3項目を選択(入力)し「Yes, Create」をクリック。
「DB Parameter Group Family」
「DB Parameter Group Name」
「DB Parameter Group Description(概要説明:日付等)」
※「Family」、「Name」、「Description」は、任意のものを選択および入力してください。

これでパラメータグループが作成されます。

20130621_03_09

以上で、セキュリティグループおよびパラメータグループの作成は完了です。
いよいよ、DBインスタンスの作成に入ります!

9. 「Navigation」のメニューの中の「DB Instances 」をクリックします。

20130621_03_10

10. 「Amazon RDS: My DB Instances」の中の「Launch DB Instance」をクリックします。

20130621_03_11

11. 任意の項目を「Selectします」。

20130621_03_12

12. 下記7項目を選択(入力)し、「Continue」をクリックします。
「DB Engine Version」
「DB Instance Class」
「Multi-AZ Deployment」
「Allocated Storage」
「Master User name」
「DB Instance Identifier(DBインスタンス名称)」
「Master Password」
※ 「Master User Name」は「root」と入力して下さい。
※ 選択項目および入力項目は、任意のものを選択および入力してください。

20130621_03_13

13. 「Database Name」、「Availability Zone」をそれぞれ選択および入力します。
なおセキュリティグループとパラメータグループは、先ほど作成したものを選択して、「Continue」をクリックします。
※任意のものを入力および選択してください。

20130621_03_14

14. 「Enabled Automatic Backups(自動バックアップ設定)」、「Backup Retention Period(バックアップ期間)」をそれぞれ選択し、「Continue」をクリックします。
※任意のものを選択してください。

20130621_03_15

15. 「Launch DB Instance Wizard」の画面で設定内容を確認し、「Launch DB Instance」をクリック。

20130621_03_16

16.「Close」をクリックします。

20130621_03_17

これで、RDSインスタンスの立ち上げは完了です!いかがでしたでしょうか?
今回の記事を参考に是非、RDSを開始してみてください!

次回は、「Amazon EC2編~EC2インスタンスを監視するには~」と題して、Amazon EC2の監視についてお話していきたいと思いますのでお楽しみに!


Amazon EC2編~EC2インスタンスからメールを送る場合には(送信制限解除について)~

Amazon EC2からのメールの送信についてお話をする前に、少しAWSに関する情報をご紹介します。

先日、米アマゾン・ウェブ・サービスは、AWSが「SAP Business Suite」の実行環境として認定されたと発表しました。
SAP Business Suiteとは顧客管理関係ソフトのことで、企業の方が業務で利用するソフトをAWSで稼動できるようになったというものです。
これにより、EC2インスタンスなどでも顧客管理をおこなえるので、より業務が効率的に進むことと思います。

さて、ここから本題に入ります。

今回は、作成したAmazon EC2インスタンスからメールを送信したい!
そんな場合にやっておくべきことについてお話します。

AWS上のEC2インスタンスからSMTPサーバを稼動させてメールを送信する場合、デフォルトの状態だとメールの送信数に制限がかけられています。
さらにそのままの状態だと、送信したメールが迷惑メールとして扱われてしまう場合があります。これは最近、Amazon EC2のサーバが迷惑メール一斉送信に利用されていることが増えているためです。

SnapCrab_NoName_2013-5-22_17-14-40_No-00

今回は、これらを回避するために必要と思われる主な3点の実施を以下に紹介します。

① DNS逆引き設定
② SPF設定
③ メール送信制限解除申請

これさえおこなっていれば、EC2からのメール送信も安心!ということでさっそく、設定してみましょう。

①EC2でのDNS逆引き設定


メールサーバによっては送信元のホストでDNS逆引き設定がない、もしくは正引き設定(※DNS逆引き、正引きについては、文末に記載)との間に差異がある場合、SMTP接続を拒否されることがあります。

以前Amazon EC2では、DNS逆引き設定に以下のような既定値が設定されていたため基本的にユーザが設定をおこなうことはできなかったのですが、現在はAWSでDNS逆引き設定が正式にサービス化され、申請をおこなうことが可能になりました。

SnapCrab_NoName_2013-5-22_17-16-43_No-00

・DNS逆引き設定申請はこちら

※DNS 逆引き
→逆引きはDNSを利用してIPアドレスに対するホスト名を調べること、です。
基本的なネットワークサービスを利用する際にはあまり必要ではないのですが、エラーメッセージの表示や調査、ログに残ったIPアドレスを集計して統計情報を作成したり、アクセス元の詐称を防止するなど管理上の用途に利用されます。これはエラーなどの際、IPアドレスを直接表示するよりホスト名で表示した方が分かりやすいから、ということになります。

※ DNS 正引き
→逆に、ホスト名からIPアドレスを調べること、です。
ホスト名からは常に対応するIPアドレスを割り出すことができますが、IPアドレスには必ずしもホスト名を割り当てる必要はなくその場合、逆引きが失敗すると
いうこともあるため正引き設定についてもこなっておく必要があるのです。

②SPFの設定


SPFというのは、メールの送信元アドレスの偽装を防止することです。つまり、"@example.com"のメールは、正真正銘"xxx.xxx.xxx.xxx"のIPアドレスから送信されています!という証明を、所有者がサーバのDNS設定でおこないます。
DNSの設定は、以下のようなかたちです。

SnapCrab_NoName_2013-5-22_17-25-15_No-00

③ メール送信制限解除申請


①のDNS逆引き設定申請と同様に、AWSサイトページのフォームから申請をおこないます。
すると、数日後には下記のような形でAWSよりメールが届き、申請完了となります。

20130226_09_04
という訳で上記で紹介した3点を実施すれば、EC2インスタンスからのメールも問題なく送付できると思います。
EC2からのメールを利用する際は是非、確認を!

次回からは「RDS入門編」ということで、RDSに関する設定や操作についても記述していきます!
お楽しみに!

------------------------------------------------------------------------------------------------------
ナレコムクラウドのFacebookに『いいね!』をクリックして頂くと
最新のお役立ちレシピが配信されます★

┏━━━━━━━━━━━━━┓
┃ナレコムクラウド Facebook┃
┗━━━━━━━━━━━━━┛
------------------------------------------------------------------------------------------------------


Amazon EC2~ELB設定編~

さて、今回は前回に引き続きEC2立ちあげ後の初期設定ということで、ELB(Elastic Load Balancing)の設定について記述します!

そもそもELBとは何なのかということですが・・・
複数のEC2インスタンス間で、アプリケーショントラフィックの負荷を自動的に分散してくれるものです。
ELBは、耐障害性に優れたアプリケーション運用を可能にし、流入するアプリケーショントラフィックに対応した負荷分散機能をシームレスに提供して、プール内(プログラムを置いておく場所)で不具合のあるインスタンスを検出し、不具合が修復されるまでこれらのインスタンスに対するトラフィックのルートの変更を設定したELB間で自動的におこないます。
もちろん単一のゾーン内だけで有効にすることも、アプリケーションのパフォーマンスをさらに安定させるために複数のゾーンにわたって有効にすることもできます。
SnapCrab_NoName_2013-5-22_17-8-34_No-00

それではここで、そんなELBの設定方法を紹介しておきましょう!

 


ELBの設定方法

1. AWS管理コンソールにログインしてサービスでEC2を選択、下記画面を開いて左メニューにある「ロードバランサー」を選択し、画面上部の「ロードバランサーの作成」をクリックします。

elb-set_01

 

2. 下記画面で「ロードバランサー名」の項目に作成するロードバランサの名前を入力します。「リスナーの設定」の「追加」で適宜プロトコルの追加します。(デフォルトの設定でかまいません。)入力をしたら「次の手順:セキュリティグループの割り当て」をクリックします。

elb-set_02

 

3. ELBにセキュリティグループを割り当てます。すでに作成済みのセキュリティグループを割り当てる場合は「既存のセキュリティグループ」をポイントし、割り当てたいセキュリティグループを選んでください。セキュリティグループを設定したら「次の手順:セキュリティ設定の構成」をクリックします。

elb-set_03

 

4. そのまま「次の手順:ヘルスチェックの設定」をクリックします。
※「ステップ1:ロードバランサーの定義」でプロトコルにHTTPSやSSLを追加した場合、下記画面でSSL証明書の登録をします。

elb-set_04

 

5. ELBは負荷分散されたそれぞれのEC2インスタンスについて、定期的に状態をチェックします。そのため、EC2インスタンスでは、pingポートで着信トラフィックを受け入れる必要があります。
ここでは、各インスタンスに実行中のHTTPサーバーがあり、ポート80で着信トラフィックを受け入れることとします。項目の詳細は以下の通りです。

ヘルスチェックの設定
Ping プロトコル ヘルスチェックの際に利用するネットワークプロトコルの設定
Ping ポート ヘルスチェックの際に使用するポートの番
Ping パス ヘルスチェックの際に使用するファイルの場所
高度な詳細
応答タイムアウト ヘルスチェックからの応答を受信した場合の処理の待ち時間。設定した時間を過ぎた場合は処理が中断する
ヘルスチェック間隔 実際にヘルスチェックをおこなう間隔
非正常のしきい値 インスタンスが「異常な状態」という判断に至るまでに実施するヘルスチェックの回数
正常のしきい値 インスタンスが「正常な状態」という判断に至るまでに実施するヘルスチェックの回数

設定はすべてデフォルトのまま「次の手順:EC2インスタンスの追加」をクリック。

elb-set_05

 

6. 下記画面でどのEC2インスタンスにELBを設定するか選択をします。選択をしたら「次の手順:タグの追加」をクリックします。

elb-set_06

 

7. リソース管理用のタグを任意で追加できます。特に必要がなければ、そのまま「確認と作成」をクリックします。

elb-set_07

 

8. 設定内容を確認して、「作成」をクリックします。

elb-set_08

 

7. これで、ELBの作成は完了です! 「閉じる」でウィンドウを閉じてください。

elb-set_09

 


ELB運用における注意点

ELBを運用する上で注意して頂きたい点として、ELBは固定IPアドレスを設定することができず、意図せずにIPが変更される場合があります。
ELBにはドメインを設定することをお勧めします。
オンプレミス環境で負荷分散装置を用意しようとすると、とても高価になってしまいますがAWSであれば安価にそして、簡単にELBを利用することができます。
是非、負荷分散装置が必要なインフラ環境を構築する際はAWSのELBを利用しましょう!

3回にわたってAWSの基本サービスの初期設定について記述してきましたが、いかがでしたか?
記述したものは立ちあげ初期の基本的な内容になりますので、最低限の設定としておこなっていただければと思います。

 

次回は、「Amazon EC2編~EC2インスタンスからメールを送る場合には(送信制限解除について)~」と題して、立ち上げたAmazon EC2からメールを送信する場合の設定についてお話しますのでお楽しみに!

ナレコムではAWSに興味がある、AWSを仕事にしたいクラウドエンジニアを絶賛募集中です!興味がある方はこちらからお問い合わせください。