20130330 awsを使ってみたよ

38
AmazonWebService(AWS) を使ってみたよ! タイムリミット80hで分かった事 ~技術的なじゃなくて世間話的な内容~ 2013/3/30 山重 崇人

Transcript of 20130330 awsを使ってみたよ

AmazonWebService(AWS)を使ってみたよ!タイムリミット80hで分かった事

~技術的なじゃなくて世間話的な内容~

2013/3/30山重 崇人

山重 崇人 (やましげ たかと)広島市内の中小IT企業でインフラ・ネットワークエンジニア風な事をやっていますした。

サーバやネットワーク機器が好きです。焼酎が好きです。お肉が好きです。猫も好きです。

好きなサービスはVPCです(キリッ

AWSを使った仕事に参加•公開系のサービス (Apache+php+Mysql)• すでに何となく構成が決定•NFSを使うLB環境• DBはRDSを使用•要件としてはAutoScalingあり•とりあえずEC2で構成しよう→(DevはEC2のmicroで構築済)• 10日(80h)という制限。できる所まで

私のスキル•レイヤの低い順に得意• LinuxよりもWindowsが好き•公開系のサービスは苦手• DB苦手(というか、任せる)俺に任せろ!と言えるほどのスキル適合ではない(́・ω・`)

• AWSを触ったことがあるけど、サービス利用したことのない方

• AWSの基本的な事はなんとなく理解できた(つもり)の方

• どういう事で問題が発生しそうかを見てみたい方• 何かわからないけど、何となくモヤモヤしてる方(一緒に悩みましょう)

対象となる方?

何が起こったか•CDP本があるし余裕じゃね?→実装する段階でどう配置すれば?

•環境を作ってみてから気づく事が多数•単純な仮想化以上に考慮する必要が個人的な見通しの甘さと認識の甘さから問題が多発!

CDP本もあるし、余裕じゃね?

さてと。これを実装と・・・

ん? これって。ネットワーク的にどうなってんの?

Plan A

Plan B

Plan A

•当時のEC2では実装できない (2NIC構成)•必然的にVPCの利用が条件•ネットワークの設計が必要

Plan B

•NFS+Web+DBアクセス。全部同じNICに乗るけどいいの?

EC2での設計

•サブネットは設計できないのでインスタンスの配置と、論理的な接続をイメージして書く

※ただし

VPCでの設計

•サブネットを含めた設計が可能• ELBはサブネットを跨げる• 1つのインスタンスはAZを跨げない

項目 EC2 VPCグローバルIP(標準) ○(非固定) ✗

ローカルIP ✗ ○(指定可能)

サブネット定義 ✗ ○(指定可能)

SecurtyGroup In In/Out

NACL ✗ In/Out

EC2,VPCの比較

ざっと見ても、こんなに違いが

VPCさん、舐めてました。ごめんなさい。

やっぱ、触ってみないとわかんないよね。

おさわり❤開始

あー! 遠くに行きたい!

何かもっさり

してんなー

何かもっさり

してんなー

Ping折り返しってこんなもん?

何かもっさり

してんなー

Ping折り返しってこんなもん?

あれ!?かーさん!!俺のインスタンス知らない!?

バージニアリージョンを利用する事案が多発!!

何かもっさり

してんなー

Ping折り返しってこんなもん?

あれ!?かーさん!!俺のインスタンス知らない!?

リージョン

まず確認

環境を作った後• EC2インスタンスを停止→開始するとIPアドレスが変わる

• EC2でEIPを使っても停止→開始時にEIPが剥がされる(半泣き

• NFSが遅い

• EIP付与時の挙動がEC2とVPCでは異なる

• 2NICのインスタンスをAMI化→デプロイ 1NIC構成になる

• ブラウザで表示するとサーバが見つからないエラー

• 2NIC構成は同一AZ内の各サブネットにだけ利用可能

EC2インスタンスを停止→開始するとIPアドレスが変わる

•そういうもん•検証中はあまり停止しないから気付きにくい

• EIPを使えば固定できる

EC2でEIPを使っても停止→開始時にEIPが剥がされる(半泣き

• そういうもん• AWS Toolsを使って(ry おググりください。• cronに @rebootを指定して起動時におまじないをしてくっつける

• 検証中はあまり停止しないから気付きにくい• インスタンスの停止→開始で想定外の事がないかを確認する習慣をつける→物理サーバでの確認事項+αが必要

NFSでパフォーマンスが出ない

• EC2でのレイテンシ(2-3ms)VPCだと0.5ms程度→これは主要因では無い(asyncで対応)

• NFS自体の理解不足 •プログラムとの相性→NFSにソースだけを置くと遅くない TMPファイルの取り扱いが問題

EIP付与時の挙動がEC2とVPCでは異なる

• EC2は無条件に外に出れるが、VPCはルーティングが必要

• VPCを手動で作成した場合はInternetGatewayの作成と割り当ても必要

• PublicDNSの扱いEC2:FQDNが変わるVPC:PublicDNSは無い

• 内部からPublicをlookupすると、ローカルIPが返ってくる

2NICのインスタンスをAMI化

• 2NIC構成のインスタンスをAMI化→デプロイすると、1NICとなる。

• これが、AutoScalingで問題になる。

←このWebインスタンスのような場合

未解決

ELBとサブネット指定

• ELB作成時に2サブネット構成片側にしかインスタンスを配置環境ではブラウザ接続時に「ページを表示で(ry」エラーが不定期に発生する→インスタンスがなくてもバランスしようとしてる?

• インスタンスを未配置なサブネットはELBに含めない

メンテナンス環境

• OpenVPNサーバをAWS上に配置し開発拠点内のクライアントにOpenVPNクライアント

• Tunnelモードで接続• OpenVPN用のネットワークを作成• VPC内でルーティングを定義• ACLでアクセス管理• AWS→クライアントについてはダイナミックポート(32768以上とか)Rejectする事で制限

establishedのみを要望

こんな感じ

OpenVPN構成の注意点

• VPCのルーティングにOpenVPNネットワークへのルーティングを追加

• ACLは慎重に(双方向の試験を)• インスタンスの「Change Source/Dest Check」を無効にする

• OpenVPNサーバの/etc/sysctl.confでnet.ipv4.ip_foward=1 を定義

インスタンスサイズに関する考察

• 評価環境と本番環境• 動けばOKであればmicroでもいいかな• パフォーマンスも評価の一部なら本番と同じインスタンスサイズ

• 「遅い」の切り分けを行うにあたってインスタンスサイズが小さい事が原因でした(・ω<)は、避けたい

セキュリティ診断について

• 公開前のセキュリティ診断等は事前に申請が必要

• 知らなかったけど、申請しないとマズイらしい

• 1~2週刊ぐらい前に申請が必要(だった気がする)

• ドメイン取得、証明書等余裕を持って準備を

まとめ

• 海外気分を楽しみたければバージニア• CDP本は魔法じゃない。頭のなかで組み立てよう

• 検証中もインスタンスの停止、部分停止などサービスへの影響を確認しよう

• 今日の常識は明日の非常識?活きのいいネタで勝負。

• VPCは色々と捗る

お詫び

記載されているEC2に関する内容は、すでに古いものとなっております。

ご静聴ありがとうございました。

(絶賛、スカウト受付中です!)