こんばんわ、cloudpack新人のAkira Tsumuraです。

書籍レビュー「Amazon Web Services 基礎からのネットワーク&サーバー構築」

1インフラ屋として、一昨日から気になって気になって眠れなくて、気づいたら今朝Amazonさんが職場に届けてくれたので、帰りの電車の中で読み終わりました。。

Amazon Web Services 基礎からのネットワーク&サーバー構築
玉川 憲・片山 暁雄・今井 雄太 著, 2014 日経BP社
Amazon Web Services 基礎からのネットワーク&サーバー構築: 表紙

この本は、「抽象化されたネットワークインフラ(VPC)」を、丁寧に解説した良書だと思います。

僕のように物理レイヤー(データセンタ・物理サーバ)から入った人間としては、元がシンプルな故にちょっとでも仮想化・抽象化してしまうと、途端にハードルが高くなってしまいます。
例えば、EC2を理解するだけでも、それまであまり気にする事がなかった仮想マシンのPCIデバイスや、ホストのストレージ(例えばLVMを使ったスナップショット作成)といったスキルが必要とされます。

本書は、OSI階層モデルで言う、Layer2〜7が解説されており、MACアドレス・IPアドレス/サブネット/ルーティング・TCP/UDP・ステートフルファイヤーウォール・HTTPD/WordPressといったトピックで構成されます。
全体のシナリオとしては、t1.microインスタンスx2に、HTTPDとMySQLをインストールし、WordPressを動作させる、というものです。これにより、VPCとEC2インスタンスを用いて、実際にネットワークの動作を確認する事が目的です。
また、従来で言うNetScreenやjunosといった、ステートフルファイヤーウォールについても理解を深めることができます。

個人的には、通称「踏み台サーバ」について執筆されている事が嬉しかったです。
「踏み台サーバ」「シェルサーバ」「足場サーバ」など方言はあるようですが、僕はシェルサーバと呼んでいます。
このシェルサーバだけで1エントリと、とある定食屋さんのランチご飯5杯はイケるので、いつかエントリとしてまとめたいと思います。

Layer3〜4(IP・TCP/UDP)はVPCで抽象化されており、これまで何台ものルータ・サーバを使った検証環境を、ブラウザ1枚で構成できる事は、これからインフラエンジニアを始める1つの切り口として、とても良いとキッカケと思いました。

この本の特徴

この本は、主にサーバやNW機器を少し齧った程度の方が読むのに調度良いようです。
他クラウドベンダーからAWSへ、もしくは物理からAWSへスキルアップする際に見過ごしがちな、主にVPCやセキュリティグループといった、ネットワークインフラについて重点が置かれています。

指標としては、CCNA程度のスキルがあれば十分に読み進めることが可能と感じました。
(ちなみに自分は50分程で読み終えました。)
物理的なサーバ検証環境の一例

これまで、僕らは写真のような検証環境を作り、実機の動作を1つ1つ確認していました。
数十本のイーサケーブルと10台近い機器が、AWS上ではシミュレータではなく実際に稼働する「抽象化レイヤー」として実装されているのは、大きな進歩でしょう。
※従来CCNA等の教材としてサードパーティのCiscoシミュレータが用いられていましたが、往々にしてバグが多く、実際のネットワークとのブリッジも出来ない為、使い物になりませんでした。

もしこの本にリクエストするとしたら。

もしこの本にリクエストを挙げるとすれば、1点。

Appendix A(P.196)にて、パケットキャプチャツールのWireSharkの使いかたが解説されていますが、もし使うとすれば、プロトコルのデバッグとして、サーバサイドでWireSharkを使いたい事が多いのではないでしょうか。
WireShakeは、tcpdumpのキャプチャ結果をインポートする事が可能ですので、ここで勝手に補足させて頂きます。

参考:tcpdump でキャプチャしたファイルを WireShark で解析

上記のブログのように、以下のようにキャプチャを取ります。
自動では止まらないので、Ctrl+Cで止めてあげる必要があります。

[root@blog ~]# tcpdump -n -i eth0 -s 0 -w eth0.cap
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
^C1632 packets captured
1633 packets received by filter
0 packets dropped by kernel

WiresharkはX11アプリケーションなので、インストールに一手間必要です。
OSX 10.9の場合、brewで依存関係含めてインストールした後、dmgをインストールしてしまうと手軽です。

参考:Mac OS X MavericksでWiresharkを使う&Wiresharkフィルタサンプル

パケットキャプチャツール WireShark の様子

先のファイルを、Open(Importではない)で開くと、上記のようにパケットの解析が可能です。
これにより、tcpで通信される平文を確認する事(HTTPやMySQLプロトコル)や、TCPのステートを追う事ができるようになります。

元記事はこちらです。
書籍レビュー:Amazon Web Services 基礎からのネットワーク&サーバー構築