2013年12月2日月曜日

VMware View 5系のちょっとしたメモ

VMware View 5系 でかるくハマったのでメモ

・View Administratorでの展開でクローンが変。具体的には、ホスト名がテンプレートマシンと同じで展開されてしまい「エージェントに到達できません」となる。

2パターンではまった。

1.DHCPリレーを行っている場合で、かつWindows7を利用している場合。
MSのパッチを当てることで回避可能。L3スイッチでDHCPをリレーする場合には当たる可能性が高い。

Event ID 5719 and event ID 1129 may be logged when a non-Microsoft DHCP Relay Agent is used
http://support.microsoft.com/kb/2459530

2.クローン元の仮想イメージがSysprepの上限回数に達している。
該当クローン元にて slmgr -dlv コマンドを実行。0回ならビンゴ。


・フルクローンはうまくいくのに、リンククローンは以下のエラーにより失敗する。
 view composer diskfault selected parent vm is not accessible

Deploying a linked desktop pool fails with the error: Selected parent VM is not accessible (1024566)

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1024566

要は、ViewComporserからESXiホストへのネットワーク的な疎通と名前解決のパスが必須という事らしい。

2013年11月26日火曜日

SQLServerのログ肥大化

http://technet.microsoft.com/ja-jp/library/ms189080(v=sql.105).aspx

SQLServerのトランザクションログファイル、データベースファイルのサイズが肥大した場合はSQLServerのDBCC SHRINKFILE, DBCC SHRINKDATABASE コマンドで圧縮すると幸せになれるかも。

だって。

2013年10月10日木曜日

hp 5900のファームアップデート

マニュアル嫁って事だけど。抜粋ね。
FTPとかUSBでスイッチローカルに保存。そっからの話。

To upgrade the software images:
1. Specify the upgrading image file (newest.ipe in this example) used at the next startup
for the master switch, and assign the M attribute to the boot and system images in the
file.
<Sysname> boot-loader file flash:/newest.ipe slot 1 main
Images in IPE:
 boot.bin
 system.bin
This command will set the main startup software images. Continue? [Y/N]:y
Add images to target slot.
The specified file list will be used as the main startup software images at the next
reboot on slot 1.
2. Specify the upgrading image file used at next startup for the subordinate switch, and
assign the M attribute to the boot and system images in the file. (As a result, the
subordinate switch automatically copies the file to the root directory in its Flash
memory.)
<Sysname> boot-loader file flash:/newest.ipe slot 2 main 
Images in IPE:
 boot.bin
 system.bin
This command will set the main startup software images. Continue? [Y/N]:y
Add images to target slot.
The specified file list will be used as the main startup software images at the next
reboot on slot 2. Hewlett-Packard Development Company, L.P. 25

3. (Optional) If the IRF fabric size has a lot of members, enable the software auto-update
function.
<Sysname> system-view 
[Sysname] irf auto-update enable
[Sysname] quit 
Software auto-update is typically used for synchronizing the software images of the master
switch to new member switches when you expand the IRF fabric. This function enables a
subordinate switch to compare its main startup software image version with that of the IRF
master. If the versions are different, the subordinate switch automatically downloads the
current software images from the master, sets the downloaded images as the main
software images at the next reboot, and automatically reboots with the new images to
re-join the IRF fabric. In this upgrade process, the function avoids the failure of assign all the
subordinate switch the same main software image file as the master switch causing an
upgrade failure.
4. Save the current configuration in any view to prevent data loss.
<Sysname> save
The current configuration will be written to the device. Are you sure? [Y/N]:y
Please input the file name(*.cfg)[flash:/startup.cfg]
(To leave the existing filename unchanged, press the enter key):
flash:/startup.cfg exists, overwrite? [Y/N]:y
Validating file. Please wait.................
Saved the current configuration to mainboard device successfully.
Slot 2:
Save next configuration file successfully.
5. Reboot the IRF fabric to complete the upgrade.
<Sysname> reboot 
Start to check configuration with next startup configuration file, please wait.
........DONE!
This command will reboot the device. Continue? [Y/N]:y
 Now rebooting, please wait...
The system automatically loads the .bin boot and system images in the .ipe file and
sets them as the startup software images.
6. Perform the display version command in any view to verify that the current main
software images have been updated (details not shown).

2013年5月14日火曜日

WinodwsServer2012のHyper-Vを有効にすると0xc0000225となり起動できない

久しぶりに書きます。

暇なのでWindowsServer2012のお触りをはじめた。
自作マシンにインスコした後でHyper-Vを有効にすると0xc0000225エラーとなり起動できなくなっちゃう症状でハマったので覚え書き。

2つの同型マザーとプロセッサを用意したんだけど、片方はうまくいくのに片方はうまくいかない。
WindowsServer2012自体は両方とも普通にインスコできちゃうから困った。


  • 自作マシン
    • CPU:AMD A8-5500
    • マザー:GIGABYTE GA-F2A85X-D3H
    • メモリ:4GBx4 16GB
    • HDD:160GB SATA

と、ちょっと寂しい環境だけど。

結果的にはマザー側のセットアップにある「Boot Mode Selection」の項目で 「Legacy Only」を選択しないと発生する事が分かったので、これにしてしのいでいる。
自宅の評価環境だし、まぁいいんだけど実際にはこれで良いのか?

2013年4月19日金曜日

XenApp6.5+Online-Pluginによるパススルー認証設定

ちょっとはまったから備忘録。

クライアント側にOnline-Pluginを入れて、PCにログインしたら自動的にアプリケーション使えるようにしたい場合。パススルー認証を使うのが普通らしい。

で、設定しようとしたけど悩んだので。

■サーバ側
1.WebInterfaceのXebApp Serviceサイトに接続用のサイトを作る。
  昔の名前でPNAgentって言ってたのかな。
2.作ったサイトのプロパティを設定する。
  右クリック→認証方法
  ここのパススルー認証にチェックを入れる(入っているかを確認する。)
  そして、パススルー認証を規定値として設定する。
3.この状態でOKを押下。

■クライアント側
4.Online-Pluginを右クリックしてオプションを選択。
5.表示されたオプションの「ログオンモード」が指定ユーザになっていたら「パススルー認証」に帰る。
6.OKを押下し、一旦ログオフ→ログオンすると自動的にOnline-Pluginの認証が行われアプリケーションを使う事ができるはず。


2013年4月1日月曜日

JAWS-UG 広島支部 第1回勉強会に行ってきたよ

Amazon Web Serviceのユーザ会であるJAWS-UG。
これの広島支部 第1回勉強会に参加してきた。

個人的に時間もあるし、最近ちょっと本気でAWSを使ったので思い切って発表してみた。
内容的にまとまってない事が多く反省。
特にEC2とVPCが入り乱れた内容となったので聞く人には分かりづらかっただろうなと思った。

発表は慣れてないけど、自分なりにまとめる作業も必要で復習的な作業が必要となる。
何となくだけど、自分のやった事をおさらいしたり再確認したり。いい経験になった。

Route53について小川さんが発表された。
独自ドメインを管理するぐらいにしか使ってないから非常に参考になった。
既存のDNSからRoute53に移行する過程やツールの説明。さらにはデモまで実施してもらい、視覚的にも確認することができた。

吉田さんによるCDPの啓蒙活動?美人時計になぞらえた美人CDPや、エバンジェリストの堀内さんによる導入事例やサービスの説明など、盛りだくさんの内容だった。

もちろん懇親会が開催され、第0会と同じく三代屋に。
こちらのお店、メニューが多い上提供されるまでの時間が割りと短い。
お店の人も皆さん愛想があって好き。

と、いう事で広島でAWSについてご興味のある方。
次回、是非参加してみては?

2013年3月20日水曜日

VERDE でVID環境の構築実験

久しぶりの更新。

IBMのやってるシス生ってUst番組で知ったVERDEっていうVDI基盤を動くところまでという感じで試してみたのでメモ。

LoveなのはCitrixのXenDesktopなので、それとの比較になる感じで書いてみる。


■インストール
VERDE自身を稼働させるにはLinux系OSが必要。今回はCentOS6.3のx64を使用。
インストールでは、いくつかのモジュールが必須だった。
・java
・libaio
・libXrandr
・libXfixes
が記載されていたけど、実際にはmkisofsが入っていないとNGのようで、最小構成から追加した状態だとうまくいかなかった。パスも通したし問題ない状況まで持っていったけどダメだったから最小構成+適当なライブラリ追加した状態でOSの再インストールを実施、。その後はうまくいった。
mkisofsはデプロイするOSイメージをISO化するのに使ってるのかな?
iptablesの設定やユーザの追加、パスワード設定などありがちな項目。
SELinuxは停止(Disabled)が必要。

VERDE自体のインストールはrpmでサクッと完了。
初期設定はCLIで番号を選んでいく形。


■利用者・管理者端末の設定
VDIツールっぽいのをインストールする必要がある。
ここも注意が必要で
・VERDE VDI User Tools(32-bit or 64-bit)
・VERDE VDI User Tools(GPL)
の2つを入れる必要がある。もう少し分かりやすいように名前を分けてくれるといいと思う。

これはちょっと分かりにくいかな・・・


このように、VDI用仮想PCの画面に文字が表示された場合
VERDE VDI User Toolsのどちらかが入ってない可能性が高い


■インストール後の初期設定
VERDEは、マネジメントコンソール的なものがWebで提供される。ユーザがログインするコンソールも同じ。Citrixさんはユーザログイン用と管理用コンソールがアプリで分離されているからこの変の違いはあるね。(ユーザが接続するのはWebInterfaceで、管理はWebからではない)

ブラウザでアクセスして設定を行うけど、ここで少しはまった。(マニュアル嫁って話だけど)
上で書いたようにユーザが利用するためのコンソールも、管理用のコンソールも同じサーバで同じくブラウザでの接続。よく管理用ポートが分かれていたりするけど、VERDEの場合はディレクトリで分離されてた orz

https://<サーバのIP>:8443 ←VERDE User Console と表示される
で接続すると、ユーザ用のログイン画面が表示される。

最初に接続しなければならないのは

https://<サーバのIP>:8443/mc ←VERDE Console と表示される
でマネジメントコンソール。ここが注意点。最初に接続するとパスワードの変更画面が出てきた気がする。


■マネジメントコンソールでの作業
・ユーザが利用する基本OSイメージの作成(ゴールデン・マスタ というらしい)
・ユーザを作成し、公開するゴールデン・マスタの関連付け

こんな感じで実にあっさりと利用できるようになる。


■VERDEの動き
深いところまでは分からないが、動かしてみて分かったことをメモしておく。
・仮想PCにはNICが2つ認識させられている。(ネットワークモードがデフォルトのNATだったから)
 それぞれのNICにはブリッジすべきネットワークとは別のネットワークが割り当てられる。
・ユーザプロファイルがDドライブに作成される
・標準の状態だと、停止→起動を行うとユーザプロファイルは初期化される?(未確認:デスクトップに配置したファイルは消えた)
・利用者端末と仮想PCの接続は、常にVERDEサーバを通じて行われる。


■XenDesktopと動きの比較
最後の「利用者端末と仮想PCの接続は、常にVERDEサーバを通じて行われる。」
という点について。これはXenDesktopと圧倒的に仕組みが違うので少し考えてみたい。

出典:オリゾンシステムズ
http://www.orizon.co.jp/products/verde/

販売元のオリゾンシステムズさんのサイトから拝借した図。つねにVERDEサーバが中継して通信が行われることが分かる。つまり、VERDEサーバが稼働していない状況だと、ユーザは利用できない事になる。


XenDesktopは、以下の流れとなっている。
出典:ThinkIT
http://thinkit.co.jp/article/1003/1


VERDEは、VDIと利用者端末間を中継しいているイメージ。
XenDesktopはIDによる利用者端末とVDIのひも付けだけを行いそれが終わった後は利用者端末とVDIが直接通信を行う。つまり、一旦関連付けが終わればコネクションを管理するサーバは稼働していないくても問題ない。利用中のユーザは影響を受けない。
ただし、CitrixにもVERDEのような動きをさせる事も可能。プロトコル変換を行うAccessGatewayやSecureGateway、NetScallerにもこの仕組みが搭載されている。外部からHTTPSで接続を受け、内部のVIDにプロトコル変換を渡して通信を中継する。常にこのGatewayを中継しながらの通信となるのでここに問題があれば利用者は利用できない。

どちらが良いか、悪いかは運用やサービスレベル、提供範囲に寄るので簡単には決められない。
Citrixでは別途仕組みが必要な事をVERDEで行えばつるしのままでOK。

検索してみたところ、UserConsoleを公開しているところはいくつかあった。
簡単に外部からの接続ツールとして利用するのも使い方の一つだなと思った。

VERDEがXenDesktopと違うポイントはまだある。
・ActiveDirectoryが必須ではない。(独自ののID/Password管理が可能)
・LinuxOSのVDI化が可能
・WindowsServer2008R2 DatacenterEditionをゲストとして利用可能(ライセンス制限による1ホスト上のゲスト数は無制限)


■まとめ
ほんのさわり程度しか触ってないのでまとめもなにもないんだけど、確かに簡単に利用できるイメージはある。
VDIとの接続は基本的にはVNCのようだけどローカル環境ではほとんど違和感を感じなかった。WANを超えるとどうなるかも試してみたかったんだけど、ちょっと私自身のパワー不足で orz

価格がよくわからないけど、単純にVID化して使いたいって場合のコストメリットはあると感じた。って事で。

2013年2月13日水曜日

XenServer 6.1の「activate free xenserver」ボタンがグレーアウトされてアクティベートできないぃ!!(涙目

こんにちわ。

つい先日自宅のXenServerを5.6から6.1に変更しました。
ライセンスは後でいいや。と思っていたら、あと16日となったので手続き開始。

XenCenterで該当サーバに接続して手続きをしようとしても
「activate free xenserver」がグレーアウトのままで押せない^^;

これはピンチです。貴重な日曜日を割いてサーバを移設したのに・・・再インストールとかだったら全米が泣くレベル。

よく考えたらXenCenterのバージョンをあげてなかったな・・・
と思ってXenServerにブラウザで接続。インストーラをゲットしてインストールを実施。

再度接続したらあっけなくアクティベートするサーバを選択することができました。

XenCenterもXenServerと同じバージョンを使いましょうねって事ですかね。


2013年2月5日火曜日

はじめてのAWSでわかったこと、わからないこと -3-

第三回目です。そろそろ終わりかな。

2NIC構成のマシンをAutoScalingでデプロイすると1NICになる

どうやってもわからなかったので、今なお1NICでデプロイしています。
AutoScalingで2NICのWebサーバをデプロイしたい。上はELBからのバランスを受けて後ろではNFSサーバと接続したい。
こういう構成でAutoScalingを使いたかったので。

でも、AutoScalingするときに2NICにできない。設定が無いような気がする。
実際に2NIC構成をデプロイする方法、ご存知であればご教示いただけませんか。


ELB作成時に2Zoneの構成とし、片側にだけインスタンスをぶら下げると不定期にWebの表示が行えなくなった

ELBを作成してぶら下げるインスタンスを選定します。セオリーに従い2つのZone上のインスタンスをぶら下げる予定でした。ですから2つのAvailabilityZoneを設定しましたが、この時点ではぶら下げるインスタンスは1個しかありませんでした。
それでも設定は可能なので2つのAvailabilityZoneを設定したのに1つのAvailabilityZone、1台の構成で検証を続けました。
すると、不定期に無応答となり、気がつくとまた応答が帰ってくるような状況になりました。
ApacheのログをみるとAccessに来ていないようです。
この状態でELBのPublicDNS名をLookupしてみると2つのIPが帰って来ました。もしかすると、インスタンスが無い方のAvailabilityZoneに行こうとしているのかなと思いELBの設定からインスタンスが無いZoneを削除しました。
これで再度Lookupすると帰ってくるIPアドレスは1つとなりました。
その後は正常にアクセスできるようになりました。

ヘルスチェックしてるから、インスタンスが無い方には行かないと思っていましたが、最初から2つのAvailabilityZoneを指定してインスタンスを置かない状況だと行っちゃうこともあるのかな?
それらしき原因は見当たるけど、これが意図した動きなのかどうかは不明。
だから、最初から2Zoneを構成してインスタンスを置かないというような事は止めておきます。
必要ならAvailabilityZoneを増やしてインスタンスを追加します。

インスタンスはAvailabilityZoneをまたいで2NICの構成はとれない

VPC内にNFSサーバをおいた場合、AvailabilityZoneをまたぐと2-3ms程度の遅延が発生するので、同一AvailabilityZoneでNFSを組みたかったのですが、どうするかな・・・と考え。
そうだ!NFSを2NICにして、それぞれのAvailabilityZoneに出せばいいじゃん!オレカッコイイ!とか安易に考えたのですが・・・
結果はインスタンスがあるAvailabilityZoneと同じところにしか2つ目のNICを作る事ができませんでした。
当たり前といわれば当たり前かもしれませんが、当たり前じゃ無いことができちゃうAWSなので。

サブネット内にDHCPによる動的割り当てと明示的な固定割り当てが共存して良いのか

最初のシンプルな構成はPrivateIPを固定して構成しました。その後AutoScalingで自動的に仮想マシンをデプロイする場合はDHCPでの割り当てとなると思います。
このような場合、同じサブネット内に静的に定義されたIPとDHCPによる自動割り当てが混在する事になります。果たしてIPアドレスのバッティングが発生しないのかが疑問でした。
DHCPの動作を考えればバッティングしてもそのまま重複したままということは無いんじゃないの?というのが大方の意見でしたが、AWSとしてこれはどういう動きをするのか、とても知りたいです。
こちらも動作の仕様をご存知の方がいらっしゃれば是非ご教示ください。


他にも色々あったのですが、いい勉強になりました。
AvailabilityZoneとネットワークまわりの理解は進んだ気がします。
インスタンスタイプやその他のサービスについて、もう少し理解したいです。

2013年2月3日日曜日

AccessGateway 個人的な関連ナレッジ

個人的に構築する際にはまった内容のまとめ。

◆ログイン後に401エラーが発生する。

AGで認証後に401エラーとなる場合は、SSL証明書関係の不備の可能性が高い。
WebInterfaceサーバにもAGの証明書を認証している中間認証局の証明書が必要。
オレオレ証明とか使ってる場合は必須となる作業だと思う。

CTX126312:Citrix Access Gateway Enterprise Editionのログオンページで認証に成功した後に、「401 - 権限がありません:資格情報が無効であるため、アクセスが拒否されました」というエラーメッセージがWebブラウザに表示される
http://support.citrix.com/article/CTX126312

証明書をインポートするが、ユーザとしてでなく、コンピュータとしてインポートする。



◆AccessGateway用のサイトをWebInterfaceに作る際の注意

簡単に作れるが、HTTPSとHTTPの違いや単純なパスやファイル名の入力ミスに注意する。
また、ICAプロキシとして稼働させる場合は、ag用サイトの「セキュアなアクセス」の設定は
・ゲートウェイ直接を指定
・アドレス(FQDN)にはAccessGatewayのドメイン名
・ポートは443
セッション画面の保持を有効にする のチェックがデフォルトなのでチェックを外す
以上で設定する。


◆Online PluginのダウンロードをWebInterfaceからに変更

C:\Program Files (x86)\Citrix\Web Interface\5.4.0\Clients\Windows\Online Plug-in に
CitrixOnlinePluginWeb.exeを配置する。

C:\inetpub\wwwroot\<サイト名>\conf の WebInterface.conf を編集し

# ClientIcaWin32=Filename:CitrixOnlinePluginWeb.exe の先頭のコメントを削除

これでクライアント側に何もない場合はCitrixサイトではなくWebInterfaceからダウンロードできるようになる。

2013年2月1日金曜日

はじめてのAWSでわかったこと、わからないこと -2-

引き続き、実際の構築で色々あった内容の総括です。

EC2環境のインスタンスにEIPを設定していても、インスタンス停止→開始のタイミングで勝手に外れる

基本的なオペレーションはManagementConsoleから実施しています。

停止→起動のタイミングでいつまでたってもEIPが割り当てられず ん?? となっていました。

Google先生に聞いたところ、解決方法まで示していただけている先人がおられたので参考というか丸パクリで解決です。

EC2 インスタンス起動時に自動で EIP をセットする (AWS Advent Calendar 2012 20日目)
http://dogmap.jp/2012/12/20/aws-advent-calendar-2012-day-20/

やってる事としては、インスタンスが起動してきたタイミングで自動的に実行されるCronを仕込んでおくというものです。インスタンス内には「EC2 API Tools」等のインストールが必要です。
今回は、AmazonLinuxでインスタンスを作成していたため、最初から入っていました\(^o^)/

Cronの先頭を @reboot とすると、起動時だけに実行されるCronになるんですね。知らなかったです。
他にもあるみたいですね!

@yearly → 0 0 1 1 * と同意
@monthly → 0 0 1 * * と同意
@weekly → 0 0 * * 0 と同意
@daily → 0 0 * * * と同意
@hourly → 0 * * * * と同意

と、寄り道しましたけど、これで誰がオペレーションしても確実にEIPが割り当てられるようになりました。

EC2やRDSのパッチってどうなってるの?

これも不明でした。特にAmazonLinuxを使うという事が確定していまいたがパッチの提供方法や適用について誰も知らなかったので調べてみると、これも自動的に適用されるという事が分かりました。

自動的に適用されるためのスケジュールがManagementConsoleに示され、それまでの範囲内で管理者の希望する日時に再設定も可能なようです。

Amazon Elastic Compute Cloud Maintenance Help Page
http://aws.amazon.com/jp/maintenance-help/

2013/02/01修正
↑これは、ハイパバイザレベルのパッチに関する記述でした。

正しくは、Amazon側が用意したリポジトリにパッチが挙げられるので、その後利用者側にてアップデートが必要なようです。
検索を行なってみると、インスタンスコンソールにログインした際にアップデートがある旨のメッセージがでるとの記事がありました。


RDSについては、DB作成時に自動的なマイナーアップデートを行うか否かのチェックボックスがあるのでこちらで設定を行います。
適用時期についてはEC2と同じくManagementConsoleで確認することができます。

Amazon RDS よくある質問
http://aws.amazon.com/jp/rds/faqs/#75

作成した2NIC構成のインスタンスをAMI化。手動でデプロイしてみたけど、2個目のNICが正しく認識されない。

2NICとしてWebサーバをAMI化し、それを手動でデプロイしてみましたが、2個目のNICがいつまでたっても通信できません。

ip addrで確認すると、Eth0,Eth2として認識されているようです。ifcfg-eth2をみてみると、実際に接続されているENIとは異なるMACが記載されています。
結果的には

/etc/udev/rules.d/70-persistent-net.rules
を削除し、再起動することで認識されました。
AMI化する前のベースインスタンスで、/etc/udev/rules.d/70-persistent-net.rulesを削除した後に停止。この状態をAMI化することで手動デプロイを行なっても問題なく利用できるようになりました。
運用時のオペレーションに制約が増えてしまいますが、これはやむを得ないのでしょうか。
良い案がありましたら是非、ご教示ください。

メンテナンス用のOpenVPNサーバに接続しても、VPC側にパケットが流れない。

これは、少しハマったというか今回の件以前からうまくいかなかった事です。
今回の構築で解決できて、個人的にもすっきりしました。
AmazonLinuxにOpenVPNサーバを構築し、TAP構成としてクライアントから接続を行います。
OpenVPNサーバとクライアント間はあっさりと接続できていますが、VPC側にパケットが流れません。VPC側のルーティングは途中で気づいたのですが、あと2つ設定が必要でした。

一つは、OpenVPNサーバのIPパケット転送を有効にする事でした。
/etc/sysctl.conf を編集して
net.ipv4.ip_forward = 1
とする必要がありました。

2点めは、AWSのManagementConsoleで行いました。
OpenVPNサーバのインスタンスを右クリックし「Change Source / Dest Check」をDisableとする必要がありました。

どれも、検索すえば出てくるようなものですけど、メモ。という事で。

次回に続く(かな)

2013年1月30日水曜日

はじめてのAWSでわかったこと、わからないこと -1-

機会があって、初めてAWSを使って仕事をしました。
とある公開Web系サービスの構築です。

公開系自体、あまり経験がないので色々な意味でいい勉強になりました。
今回は、AWS環境ではまった内容、わからなかった内容、未だに謎な項目を上げておきたいと思います。

せっかくですので発生した順に並べます。

CDP(Cloud Design Pattern)を、どうやって実装すればいいの?

やりたい事、簡単な構成を書き出し、CDPの「NFS Sharingパターン」が近いという事で認識が一致しました。
NFSサーバ上にソースを配置してとりあえず2台のWebサーバ+NFSをELBでバランスさせることとなりました。基本的な構成だよねって事でインスタンスをデプロイ。

ん?でも・・・これって。
インスタンス同士はネットワーク的に、どういう風に接続されてるんだろう。

IPアドレスもバラバラだし。どうなってるんだろう。全くわかりませんでした。これらがネットワーク的につながっている事はPingを発射してわかりましたが、そもそもこのままでいいの?単純な疑問でモヤモヤとしましたが、ネットワークを好きに設計できないEC2はそんなもんだという事で納得しました。

EC2環境で構成を始めたけど、NFSでパフォーマンスが出ない

公開系サービスで凝った事するんじゃないからEC2でいいんじゃない?という満場一致の賛成意見によりEC2環境で構築を行いました。
NFSの構成も特にハマる事なく完了。でも、いざソースを配置してELB経由で動かしてみると・・・

「遅い・・・」
Webサーバのローカルにソースを置いた状態よりも遅い。明らかに遅い。
そもそも構成的にNFS接続用のネットワークを分離していないため、後々レスポンスの問題は発生するだろうと思ってはいました。
でも、今の環境はWebサーバ2台、しかも1台だけでの接続でこんなに遅いなんて!('A`)

まず、WebサーバとNFSサーバ間のネットワーク的な遅延を考えました。この間のPingによる折り返し応答は2-3ms。LANという意識としては遅延が大きいです。
遅い原因はこれだろうと考えました。

でも、解決する方法があるのだろうか?そもそもEC2環境に実装した時にIPアドレスはバラバラだしネットワーク的にどうなっているのかも理解できていないままでした。
そこでVPC環境でサブネットを切り、そこにWebサーバとNFSサーバを配置して、同一のサブネットでどうなるかを実験してみました。
すると、Pingの折り返しは0.5ms以下となりました。
これで問題は解消されるはずだと判断し、VPC環境に同じ構成を構築しました。
その結果

若干のレスポンス解消は見られたものの、根本的な解決にはいたっていませんでした。


NFSの構成自体に慣れてないため、根本的な過ちを犯している可能性もあります。
Twitterにて状況をつぶやいていると、色々な方から助言をいただくことができました。ソースを作っているチームに話を聞いてみるとNFS上にはソースを置いているだけでなく様々なテンポラリも配置していることが分かりました。試しにテンポラリをWebサーバのローカルに吐くとレスポンスの悪化は見られません。
以上の事から、テンポラリを吐くタイミングでレスポンスが悪化しているのではないかと想定され、これについてNFSマウントオプションでasyncを設定してみる事で回避できるのではないか?とアドバイスを受けました。
結果的にはこれが正解でした。NFSクライアント側のマウントコマンドをsync→asyncとすると良好なレスポンスを得られるようになりました。

EC2環境とVPC環境の違いを舐めきってました。ただ単にサブネットが自由につくれるぐらいの認識しかありませんでした。
VPCさん、ゴメンナサイ。

次回に続く

2013年1月4日金曜日

Linux関連Tips (基本的な事)

Linuxで運用するにあたって操作に慣れる必要があるので必要な事のメモ。
AWSでの運用を考慮して。


■sudo su - で rootに昇格できるのはec2-userだけ。
これを変更するには
 1)ユーザを作成
 2)ユーザをWheelグループに追加

■wheelグループに所属しているユーザ一覧の表示
grep wheel /etc/group

■ユーザ一覧の表示
cat /etc/passwd

■ユーザの作成
adduser <ユーザ名>

■作ったユーザをwheelグループに所属させる
usermod -G wheel <ユーザ名>