CDP:OnDemand NATパターン

From AWS-CloudDesignPattern
Jump to: navigation, search
Architect

メンテナンス時のインターネット設定変更

Contents

解決したい課題

セキュアなシステムでは、各サーバのインターネットへのアクセス(アウトバウンド)を禁止していることが多い。ただし、OSパッケージのアップデートなどインターネットへアクセスする必要があるメンテナンス作業が非常に非効率になってしまう。 解決方法としてインターネット接続用のプロキシー(NAT)サーバを用意し、各サーバはプロキシー(NAT)サーバ経由でインターネットアクセスできるようにするものがある。そして各サーバがインターネットにアクセスできる条件を、そのプロキシー(NAT)サーバでコントロールする形となる。 しかし、そもそもプロキシー(NAT)サーバが必要なのは、OSパッケージのアップデートなどのメンテンスの期間のみである。なので、それ以外の期間はプロキシーサーバは必要なく、コスト効率が非常に悪いサーバが存在することになってしまう。

クラウドでの解決/パターンの説明

従来、サーバなどを用意してしまうと、それは恒久的に利用し続けることが前提となっており(たとえ利用していなくても購入費や運用費はかかってしまう)、一時的に利用するサーバを一時的な利用料金で運用することは非常に難しい状態であった。 しかしクラウド上の仮想サーバは利用時間で課金されるものが多い。このプロキシー(NAT)サーバを仮想サーバで実現し、OSパッケージのアップデートなどのメンテンス時だけ起動するようにしておけば、非常にコスト効率が高く、運用することができる。 さらにクラウドでは仮想サーバの起動や停止を行うAPIも容易されていることが多い。これらのAPIを利用してプロキシー(NAT)サーバも起動と停止を自動化することも可能である。さらに、NATやルーティングの機能を持っているクラウドなら、より容易に実現することができる。

実装

AWSにはVPCと呼ばれるプライベートクラウドを構築する仕組みがあり、その機能の一つでNATインスタンス(EC2)を作成することができる。またサブネットごとにルーティングを設定する機能もあり、ルーティングを適切に設定することでサブネット内のEC2がNATインスタンスを経由するようにすることもできる。

  • VPC上でNATインスタンスを用意しておく。(停止状態/AMI状態)
  • メンテナンス開始時(インターネットへのアクセスが必要な時)にNATインスタンスを立ち上げ、サブネットのルーティングでNATインスタンスの設定を行う。
  • メンテナンス終了時、ルーティングからNATインスタンスの設定を削除し、NATインスタンスも停止/削除する。

構造

6wNg0ISJczU5Pz1m-48D36.png

利点

  • メンテナンス外の場合は内部からインターネットにアクセスする経路がなくなるので、システム内を非常にセキュアに保つことが可能。
  • NATインスタンス(EC2)は利用するときのみ稼働させる、つまり課金されるので、コスト削減につながる。

注意点

  • メンテナンス時はNATインスタンス(EC2)の立ち上げからサブネットのルーティングの調整まで行うので、オペレーションミスが起こらないように自動化スクリプト(APIを利用)を用意しておくと安全である。

その他

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox