AWSのFirewall機能といえば Security Group ですが、意外にシンプルな機能でプロトコル、アクセス元、ポートのレンジを指定したセットをEC2起動時に指定してアクセス制御を行うしかけになってます。このままでも運用しても良いのですが、AWSブログで3tier構成にする場合の解説があったので紹介します。

suz-lab でも解説があったとおり、セキュリティグループの設定値で Source としてセキュリティグループを指定することができます。これは指定したセキュリティグループからの特定のポートへのアクセスを許可する方法です。

これを利用することで、いわゆる Internet - DMZ - LAN 的な 3tier を作ることができます。AWSブログでは WebSG、AppSG、DBSG というセキュリティグループを作成して、WebSG → AppSG、AppSG → DBSG の接続許可をしてます。API(コマンド)では以下のとおり。

photo by chotda


(まとまりは無いのですが、ビビっと来たのでメモしておきます)

先日クラウドEXPOに行ってきたが自分がイメージしていた「クラウド」とはかけ離れたいろんな会社やサービスがいて、一方で「帳票!」という言葉も目にして、何だかなぁと思った。彼らの提供するプロダクトやサービスは、自分が考える幸せな環境と全く違うのです。

最近 AWS+ を始めたこともありクラウド導入の話が多くある。ほとんどの場合まずはじめにどういう結果を重視するのか確認しているのですが、最近の案件でよく話す「クラウドを導入すべき大きな理由」は2つあります。完全に従量制になるので需要とぴったり合致したインフラ利用(増減)が可能になり実現する経済性か、もしくはインフラが完全に仮想化・サービス化されていることで手に入れられるスケールアップ/アウト可能な環境なのか。意識的に分けて説明しないと相手のイメージもモヤモヤしたままになってしまうので注意が必要。

ところが最近よくきくホスティングサービス事業者による「クラウド」サービスは、単純にVPSや今までのレンタルサーバー的なサービスの延長上にあるだけで、完全従量課金制のものは皆無だし自由に拡張しようにも手続きがある、リアルタイムに拡張可能なものはプライベートクラウドを買わせられるはめになるものばかり。

はて、なぜ「何だかなぁ」と思うのか、ここでやっと気づきました。

amazon web services logo
昨年秋に公式に発表されて、今年上期に利用開始予定となっていたシンガポールのデータセンターがなんと本日サービスインしました。

AWS Management Console - Asia Pacific

発表によれば、以下のサービスが利用可能になったそうです。ちなみにアメリカ西海岸のRDSは無かったのですが、先にシンガポールで対応してます。

  • Amazon EC2 (Elastic IP Addresses, Amazon CloudWatch, Elastic Block Storage, Elastic Load Balancing, Auto Scaling 込み)
  • Amazon S3
  • Amazon SimpleDB
  • Amazon RDS
  • Amazon SQS
  • Amazon SNS
  • Amazon DevPay
  • Amazon CloudFront

Amazon Web Services で複数のEC2インスタンスへロードバランスさせたいときに使用する Elastic Load Balacing に Sticky Session がサポートされました。

New Elastic Load Balancing Feature: Sticky Sessions

ロードバランスされた環境では HTTP リクエストごとに特定のアルゴリズムに従って振り分けされて負荷分散・冗長化構成としての効果を出すわけですが、ユーザー毎(セッション毎)の情報をウェブアプリケーション内で持つ必要のある構成の場合、どのインスタンスにリクエストが来ても同じ状態にしなければならないため memcached を導入したりして自前でセッションデータの共有をしておく必要がありました。

今回のアップデートで一旦始まったセッションを引き続き同じインスタンス(サーバー)へ転送することが設定で可能に。Cookie を使用して実装されているため、事前の設定以外でウェブアプリケーション側で気にする必要はなくシームレスに導入できるのがよいですね。(普通のロードバランサーと同じですが)

本番投入に当たっては、いずれかのサーバーが死んだ場合どうなるかとか、アプリから能動的にセッションを切れるのかなど、もう少し調べないといけないですがウェブアプリケーション本番環境の構成として必要なものがどんどんサービス化されるのはとても助かります。

少し探してもなかなかドンぴしゃな情報が出てこなかったので記録のためにまとめておきます。(最後の最後、結局自分の書いた記事にたどりついてヒントを得たりして)

運用中のサイトのメンテナンスなのに一時的にサイト全体のアクセスを禁止して、停止中のお知らせを出すようにしたい、かつメンテナンス中作業者によるアクセス確認のため特定IPからはアクセスを許可する設定は以下のようになります。

  RewriteEngine On
  RewriteCond %{REMOTE_ADDR} !^192\.168\.0
  RewriteRule ^.*$ /maintenance.html [L]

上の例だと、192.168.0.* からのアクセス以外は /maintenance.html の内容を表示するというものです。他のIPやネットワークアドレスを追加したければ RewriteCond を追加すればよいですね。

RewriteCond, RewriteRule はだいたいどのコンテキストでもかけるので、自分の場合は利用する VirtualHost 内に追記してます。

以上。こんなもんかな?

aws+ logo

About Me

フリーランスで、テクニカルディレクターたまにプログラマーをやっている後藤和貴(ごとうかずたか)です。

最近はAWSなどクラウドコンピューティングに興味あり。導入支援サービスAWS+はじめました

自己紹介的なものはまだ書いてないので、ひとまずこちら

連絡先は kaz.goto[at]gmail.com。

 

最近のコメント

  • ライブ環境で継続動作前提だと他のパッケージやパッチの管理と同じ方が管理者が楽かなと思って、あるものはyumで入れちゃいます。依存関係で面倒なことも起きないし。開発時は別だけどね。...

  • へぇ、CPANからライブラリを引っ張ってくるの、cpanコマンドじゃなくて、yumなんだ。。。どっちを使うべきか、いつも悩んで、結局cpanなんだよな。そっか、yumでもいいのか。。。...

  • キャズム会議はそれこそ、ごっさんとほとんど通しで一緒に参加しているし、そこにコミットできてついに製品化。感無量です。コメントありがとう!...

  • ご指摘ありがとうございます。いやーお恥ずかしい。 はじめ英語の方かと慌てたのがもっと恥かしいw...

  • わざとっぽいtypoチックな一行が素敵。 その調子で流感も切り捨てちゃってください。...

閉じる