2014年1月31日金曜日

RDSの参照分散

こんにちは!

RDSは便利ですけど、参照分散の方法については、どうするのが最適なのか悩んでいます。
オンプレでやっていたときは、LVSを使う方法を採用するケースが多くありました。

ただ、AWSだとLVSを使うのに少しコツがいるようです。
先々のトラブルを回避するために、LVSは見送ろうと思っています。

Route53を使ってHealthCheckかけてラウンドロビンしよう!と思ったけど、HealthCheckの対象はIPアドレスで固定しなければダメなようです。
ELBで負荷分散しよう!と思ったら、ELBはEC2インスタンスにしかバランシングができない仕様でした。

MySQL Proxyを使うか、HA Proxyを使うか・・・ どちらかを採用することになりそうです。
どちらも、来週から少し検証してみようと思います。

2014年1月30日木曜日

AWS AutoScale コンパネでやってみた(2)の修正版

こんにちは!

AutoScaleをコンパネでやってみた手順です。赤字が修正部分です。

○事前準備
KeyPairs: astest
Security Groups: astest-sec (SSH / HTTP / HTTPSを許可)
AMIs: asami (Amazon Linuxにhttpdを入れ自動起動にして、適当なindex.htmlを配置してあります)
ELB: astest-elb (AutoScaleで作成したInstanceをELBのバランシグ対象にします。作成時はInstanceは0個で作成しました。)

○シンガポールリージョンでやってます。
○ELBにInstanceを2つ作り、負荷に応じて4つまで増えるようにします。負荷が減ったら2つに戻るようにします。
○負荷はCPU使用率が平均で50%以上とします。

○手順

1. AUTO SCALINGのLaunch Configurationsを押します
2. Create Auto Scaling Groupのボタンを押します
3. Create launch configurationのボタンを押します
4. AMIを選びます。My AMIsの中のasamiを選びます
5. Instanceはそのままで、Nextボタンを押します
6. Nameを入れ(astest-lcとします)、Nextボタンを押します
7. Storageはそのままで、Nextボタンを押します
8. Select an existing security groupを選択して、astest-secを選択し、Reviewボタンを押します
9. Create launch configurationボタンを押します
10. key pairにastestを選択し、Create launch configurationボタンを押します

そのまま、Create Auto Scaling Groupの設定画面が出てきます

1. Group nameを入れます(astest-asgとします)
2. Group sizeを2にします
3. Availability Zoneにap-southeast-1aとap-southeast-1bの2つを入れます
4. Advanced Detailsを開きます
5. Load Balancingにチェックを付け、ELBを選択(astest-elb)します
6. Health Check TypeをELBにし、Nextボタンを押します
7. Use scaling policies to adjust the capacity of this groupを選択します
8. Scale between 2 and 4 instancesに変更します
9. Increase Group SizeにあるAdd new alarmを押します
10. 図のようにします。Nmae of alarmを変更するのがポイント!


11. Take the actionを Add 1 Instanceにします
12. Decrease Group SizeにあるAdd new alarmを押します
13. 図のようにします。Nmae of alarmを変更するのがポイント!



14. Take the actionを Remove 1 Instanceにします
15. Nextボタンを押します
16. Reviewボタンを押します
17. Create Auto Scaling groupボタンを押します


その後、インスタンスが2つできあがり、負荷によって増減するようになります。

2014年1月29日水曜日

AWS AutoScale コンパネでやってみた(3)

こんんちは!

前回の原因ですが、Scaling Policyがよろしくなかったです。
同じ名前のポリシーの中に、Instanceの追加と削除のアクションを2つともかいてしまっていたので、増やしたり減らしたりと、異常な感じでした。

50%以下になったら削除するポリシーと50%以上になったら追加するポリシーを別々の名前で作りましょう!

下の図のような感じです。
前回の手順の修正版は、後日出す予定です。



CentOS5のルート証明書期限切れ

こんにちは!

昨日付けでルート証明書の有効期限が切れたようです。
サーバからサーバへの接続に証明書を利用していると、証明書のエラーが出てしまい接続できない問題がでるようです。

GlobalSignのサイトから新しい証明書をダウンロードして解決!

AWS AutoScale コンパネでやってみた(2)

こんにちは!

AutoScaleをコンパネでやってみた手順です。

○事前準備
KeyPairs: astest
Security Groups: astest-sec (SSH / HTTP / HTTPSを許可)
AMIs: asami (Amazon Linuxにhttpdを入れ自動起動にして、適当なindex.htmlを配置してあります)
ELB: astest-elb (AutoScaleで作成したInstanceをELBのバランシグ対象にします。作成時はInstanceは0個で作成しました。)

○シンガポールリージョンでやってます。
○ELBにInstanceを2つ作り、負荷に応じて4つまで増えるようにします。負荷が減ったら2つに戻るようにします。
○負荷はCPU使用率が平均で50%以上とします。

○手順

1. AUTO SCALINGのLaunch Configurationsを押します
2. Create Auto Scaling Groupのボタンを押します
3. Create launch configurationのボタンを押します
4. AMIを選びます。My AMIsの中のasamiを選びます
5. Instanceはそのままで、Nextボタンを押します
6. Nameを入れ(astest-lcとします)、Nextボタンを押します
7. Storageはそのままで、Nextボタンを押します
8. Select an existing security groupを選択して、astest-secを選択し、Reviewボタンを押します
9. Create launch configurationボタンを押します
10. key pairにastestを選択し、Create launch configurationボタンを押します

そのまま、Create Auto Scaling Groupの設定画面が出てきます

1. Group nameを入れます(astest-asgとします)
2. Group sizeを2にします
3. Availability Zoneにap-southeast-1aとap-southeast-1bの2つを入れます
4. Advanced Detailsを開きます
5. Load Balancingにチェックを付け、ELBを選択(astest-elb)します
6. Health Check TypeをELBにし、Nextボタンを押します
7. Use scaling policies to adjust the capacity of this groupを選択します
8. Scale between 2 and 4 instancesに変更します
9. Increase Group SizeにあるAdd new alarmを押します
10. 図のようにします

11. Decrease Group SizeにあるAdd new alarmを押します
12. 図のようにします

13. Nextボタンを押します
14. Reviewボタンを押します
15. Create Auto Scaling groupボタンを押します


その後、インスタンスが2つできあがり、負荷によって増減するはずですが、
いきなり3つのインスタンスを作成されてしまいました。

原因とかそのあたりは、次回のブログで書く予定です。その前に原因調査ですが・・・・

AWS AutoScale コンパネでやってみた(1)

こんにちは!

AutoScaleをコンパネからやってみました。
結論としては、ELBに傘下させる方法がわからなく、うまくいってません。

設定途中のオプションのようなところをちゃんと見ていなかったので、設定できてないのかもしれません。

もう1度最初からやってみて、結果を明日のブログに書こうと思います!

ただ、別件で時間をとられてしまい、なかなか進捗はよくありません・・・

2014年1月27日月曜日

AWS AutoScaleをためしてみる

こんにちは!

以前はコマンドでしか設定できなかったAutoScaleですが、いまはコンパネから設定できるようになっています。
コンパネからの設定を試したことがなかったので、やってみようと思います。

手順などは、後日掲載する予定です!

2014年1月24日金曜日

yumでMySQL5.6をインストールする話

こんにちわ!
今日はAWSではなく、MySQLの話です。

CentOSでMySQLのインストールのときに、単にyumを使っても5.1だったりします。
EPELやREMIなどのリポジトリを追加しても、5.5にはなりますが、5.6をインストールしたい要件が多くなってきました。

これまでは、MySQLの公式ページからrpmをダウンロードしてきてインストールしてました。

ところが、昨日公式ページにyumのリポジトリが公開されているのを見つけました。
http://dev.mysql.com/downloads/repo/

これを使うと、さくっとMySQL5.6がインストールできます。
手順を残しておきます。

# rpm -ivh http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
Retrieving http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:mysql-community-release-el6-5    ################################# [100%]

# yum install mysql-server
Loaded plugins: priorities, update-motd, upgrade-helper
1 packages excluded due to repository priority protections
Package mysql-server is obsoleted by mysql-community-server, trying to install mysql-community-server-5.6.15-1.el6.x86_64 instead
Resolving Dependencies
--> Running transaction check
---> Package mysql-community-server.x86_64 0:5.6.15-1.el6 will be installed
--> Processing Dependency: mysql-community-common(x86-64) = 5.6.15-1.el6 for package: mysql-community-server-5.6.15-1.el6.x86_64
--> Processing Dependency: mysql-community-client(x86-64) = 5.6.15-1.el6 for package: mysql-community-server-5.6.15-1.el6.x86_64
--> Running transaction check
---> Package mysql-community-client.x86_64 0:5.6.15-1.el6 will be installed
--> Processing Dependency: mysql-community-libs(x86-64) = 5.6.15-1.el6 for package: mysql-community-client-5.6.15-1.el6.x86_64
---> Package mysql-community-common.x86_64 0:5.6.15-1.el6 will be installed
--> Running transaction check
---> Package mysql-community-libs.x86_64 0:5.6.15-1.el6 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

======================================================================================================================================================
 Package                                    Arch                       Version                            Repository                             Size
======================================================================================================================================================
Installing:
 mysql-community-server                     x86_64                     5.6.15-1.el6                       mysql56-community                      51 M
Installing for dependencies:
 mysql-community-client                     x86_64                     5.6.15-1.el6                       mysql56-community                      17 M
 mysql-community-common                     x86_64                     5.6.15-1.el6                       mysql56-community                     296 k
 mysql-community-libs                       x86_64                     5.6.15-1.el6                       mysql56-community                     1.8 M

Transaction Summary
======================================================================================================================================================
Install  1 Package (+3 Dependent packages)

Total size: 71 M
Installed size: 322 M
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : mysql-community-common-5.6.15-1.el6.x86_64                                                                                         1/4 
  Installing : mysql-community-libs-5.6.15-1.el6.x86_64                                                                                           2/4 
  Installing : mysql-community-client-5.6.15-1.el6.x86_64                                                                                         3/4 
  Installing : mysql-community-server-5.6.15-1.el6.x86_64                                                                                         4/4 
  Verifying  : mysql-community-client-5.6.15-1.el6.x86_64                                                                                         1/4 
  Verifying  : mysql-community-libs-5.6.15-1.el6.x86_64                                                                                           2/4 
  Verifying  : mysql-community-common-5.6.15-1.el6.x86_64                                                                                         3/4 
  Verifying  : mysql-community-server-5.6.15-1.el6.x86_64                                                                                         4/4 

Installed:
  mysql-community-server.x86_64 0:5.6.15-1.el6                                                                                                        

Dependency Installed:
  mysql-community-client.x86_64 0:5.6.15-1.el6      mysql-community-common.x86_64 0:5.6.15-1.el6      mysql-community-libs.x86_64 0:5.6.15-1.el6     

Complete!

2014年1月23日木曜日

VM Importできました

こんにちわ!

AWSのVM Importが出来たので、その記録を残します。
参考になれば幸いです。

Import元のシステムは以下を使いました。
仮想: Citrix Xen Server 6.2.0 SP1

ゲスト:CentOS 6.4(10GBのストレージ、NIC*1)

作業環境は、Windows7 + Citrix Xen Centerと、
Ubuntu + ec2-api-toolsを使っています。

まずは、ゲストOSをExportしてイメージファイルを取ります。

完了すると、C:\CentOS6.4の中に、VHDファイルができあがります。

ここから先はAWSへの作業なります。
個人的にLinuxでの作業のほうが楽なので、出来あがったVHDファイルをUSBメモリ等でLinuxに持って行って作業します。(OVFファイルは不要です)

あらかじめ、S3のバケットと、インスタンスに適用するSecurityGroupを作成しておく必要があります。
次のコマンドを使って、S3にイメージをアップロードして、EC2インスタンスを作成します。

ec2-import-instance VHDファイル名 -t m3.xlarge -f VHD -a x86_64 -b S3バケット名 -g SecurityGroup名 -z ap-southeast-1a -p Linux --region ap-southeast-1 -o アクセスキー -w シークレットキー

一部改変しますが、具体的には、
ec2-import-instance 17519150-e914-46e5-8baf-d6805b6a4e2e.vhd -t m3.xlarge -f VHD -a x86_64 -b vhdfile-centos -g tcpall  -z ap-southeast-1a -p Linux --region ap-southeast-1 -o ABCDEFGHIJKLMNOPQRST -w ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn

イメージのアップロードの進捗が出ます。
Requesting volume size: 10 GB
TaskType IMPORTINSTANCE TaskId import-i-fgns67y9 ExpirationTime 2014-01-30T02:06:18Z Status active StatusMessage Pending InstanceID i-58fadb0e
DISKIMAGE DiskImageFormat VHD DiskImageSize 1065635840 VolumeSize 10 AvailabilityZone ap-southeast-1a ApproximateBytesConverted 0 Status active StatusMessage Pending
Creating new manifest at vhdfile-centos/18496c78-faf6-4006-943d-3c7301b2b533/17519150-e914-46e5-8baf-d6805b6a4e2e.vhdmanifest.xml
Uploading the manifest file
Uploading 1065635840 bytes across 102 parts
0% |--------------------------------------------------| 100%
   |=======

その後、100%まで行くとコマンドプロンプトが返ってきます。

0% |--------------------------------------------------| 100%
   |==================================================|
Done
Average speed was 0.868 MBps
The disk image for import-i-fgns67y9 has been uploaded to Amazon S3
where it is being converted into an EC2 instance.  You may monitor the
progress of this task by running ec2-describe-conversion-tasks.  When
the task is completed, you may use ec2-delete-disk-image to remove the
image from S3.

※ import-i-fgns67y9 タスクIDです。次のコマンドで使います。

その後、AWSで自動的にインスタンスの作成が始まっています。
次のコマンドで、インスタンスの作成状況を確認します。

ec2-describe-conversion-tasks --region ap-southeast-1 import-i-fgns67y9

TaskType IMPORTINSTANCE TaskId import-i-fgns67y9 ExpirationTime 2014-01-30T02:06:18Z Status active StatusMessage Progress: 56%InstanceID i-58fadb0e
DISKIMAGE DiskImageFormat VHD DiskImageSize 1065635840 VolumeId vol-6eaa8561 VolumeSize 10 AvailabilityZone ap-southeast-1a ApproximateBytesConverted 1065635840 Status completed

Progressが100%になったら完了です!
EC2のコンパネで確認してください。出来上がっているはずです。

最後に、不要になったらS3に保存されているイメージファイルを削除したほうが、お金の節約になります。

ec2-delete-disk-image --region ap-southeast-1 -o ABCDEFGHIJKLMNOPQRST -w ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmn -t import-i-fgns67y9

以上で、 VM Import の検証ができました!

2014年1月22日水曜日

VM Importを試してます

こんにちわ

AWSのVM Importを試してます。
Citrix Xen Server 5.6.0 SP2で稼働中のCentOS6.4を、AWS上で稼働させる目的でテストしています。
私の知識不足だと思いますが、3回ほど失敗しました。

VHDイメージファイルをS3にアップロードされるのですが、そこからインスタンス作成でエラーになってしまいます。

うまくいったら、手順も含めてまとめたいと思っています!

2014年1月20日月曜日

はじめまして

とあるITエンジニアのブログを始めました。
はじめまして。

最近問い合わせが増えてきているAWSのことを中心に、サーバやインフラについての雑多なことを書いていきたいと思っています。

AWSソリューションアーキテクトに1回落ちてしまいましたけど、次は合格できるように勉強中でもあります。
新しいサービスが次々に生まれてくるので、新しいことも覚えつつ、情報発信していきますので、よろしくお願いします。