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とする必要がありました。

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

次回に続く(かな)

0 件のコメント:

コメントを投稿