AWSのネットワーク設計・運用における注意点とパフォーマンス改善

AWSのネットワークを設計・運用するためには、さまざまなことに注意をする必要があります。今回は、AWSのネットワークを設計・運用する際の注意点と、ネットワークが遅いといったように、パフォーマンスが十分に発揮できない場合の対策について解説します。

比べて納得!クラウドへの接続方法 e-Bookをダウンロードして理解を深めましょう!

AWSのネットワーク設計と復旧対策

AWSにおいてネットワーク設計を行う場合、どのようなことに注意したらよいのでしょうか。またネットワーク障害が発生した場合、サービスの遅滞を防ぐためにも、障害対策についても押さえておきましょう。

ネットワークの設計

AWSのネットワーク設計については、以下の点に注意しましょう。

オンプレミスとの違いを明確にする

AWSとオンプレミスの最大の違いは「物理設計が不要」ということです。AWSではサーバーや配線ケーブル、ネットワーク機器の調達や設置をする必要がなく、ネットワークをすぐに構築できます。特にネットワーク設計では物理的な配線のようなものがなくなるのは非常に大きなメリットです。論理設計したあとに、物理に落とし込むという手間もなくなり、オンプレミスのネットワーク設計のように苦労することがありません。

VPCを活用する

AWSを使うに当たって「VPC」(Virtual Private Cloud)の知識は欠かすことができません。「VPC」はインスタンスを入れておく「箱」のようなイメージです。AWSでは、まず“東京”“オレゴン”などの「リージョン」を選んで、その中にVPCを作成します。VPCの中は自分たちだけのプライベートIPアドレスで利用する空間、VPCの外側はパブリックIPアドレス空間となります。

セキュリティグループを設定する

セキュリティグループを使用すると、どのトラフィックがインスタンスに到達できるか、あるいはインスタンスからどのトラフィックを発することができるかなど、トラフィックを細かく制御することができます。例えば、会社や自宅からのコンピューターのみがSSHを使用してインスタンスにアクセス可能なように許可することができます。インスタンスがWebサーバーの場合、すべてのIPアドレスがHTTPまたはHTTPSを使用してインスタンスにアクセスできるようにすることで、外部ユーザーはWebサーバーのコンテンツを閲覧できます。

ネットワークの復旧対策

ネットワークに障害が起こった場合に備え、以下のような対策を行うとよいでしょう。

障害発生に備えるリスク分散

AWSに限らず、どんなクラウドでも自己の責任に関係なく障害が起きる可能性はあります。クラウドを使うのであれば、自社のシステム自体には問題はなくても障害は必ず起きるものという前提に立つ必要があるでしょう。重要なことは、クラウド側の障害が発生したときに共倒れにならないように、影響を最小限に食い止めることです。
AWSには「Availability Zone」(AZ)というデータセンター群の概念があります。例えば東京リージョンには現在4つのAZがあります。AZは、自然災害やデータセンター単位の障害などビジネスに影響を与えるリスクを最小化するよう地理的に影響を受けない十分離れた場所にあり、独立した電源、空調、物理的なセキュリティを備え、広帯域でハイスピードの光回線のバックボーンに接続されています。サービスを複数のAZに分散して利用することでリソースを分散し、冗長化を実現し高い耐障害性を実現することができます。Amazon RDSの場合、Multi-AZ配置を使って複数のアベイラビリティーゾーンにリソースを分散させることが容易にできます。またAmazon S3やAmazon EBSであれば、常に別のリージョンにバックアップを持っていくといったリスク分散が必要です。

監視と復旧体制の構築

ネットワークの監視は、障害発生時に発生箇所を切り分けるためにも重要です。AWSが提供する「フルマネージド運用監視サービス」としては「CloudWatch」が、AWSの各種リソースを監視してくれます。セットアップ不要で使用することができ、EC2やEBSなど、いろいろなサービスの稼働を監視できます。メトリクスに応じてアラート通知や、アクションを設定することにより、異常な状態を検知するところから自動での復旧まで可能です。

AWSネットワーク運用における注意点

AWSネットワークの運用に当たっては、以下の点に注意することが必要です。

サービスの選択

AWSには非常に多くのサービスが登録されていますので、自社にとって最適なサービスを選択し、組み合わせて運用するようにします。運用しようとするサービスやシステム、データの重要度、可用性要件、予算等によって、必要なスケールや要求されるパフォーマンスが異なるだけではなく、運用の体制も適切なサービスも異なります。

運用負荷とコストの節減

AWSは、サービスおよび料金オプションの幅広さにより、必要なパフォーマンスとキャパシティーを維持しながら、効果的にコストを管理できる柔軟性を実現していますので、予約(リザーブド)インスタンスや待機(スポット)インスタンス等を効果的に使用することで、コストの最適化を図ることができます。またコスト管理ツールを使用してモニタリングすれば、コストをほぼリアルタイムに把握できます。

セキュリティ

AWSにおいては、以下のようなセキュリティ管理をして、ネットワーク運用を行うとよいでしょう。

セキュリティグループの管理

IAMユーザーの管理、権限の分散と管理に関して、組織の議論を踏まえて体系的に設定運用する必要があります。

パスワードの管理

AWSアカウントから、IAMユーザーのパスワードの複雑な要件や必須の更新期間を指定するパスワードポリシーを設定することができます。また、AWSでの運用にとどまりませんが、パスワードは厳重に管理し、流出が起きないように配慮します。

バックアップ体制の用意

定期的にAMIやスナップショットを取得し、障害時に速やかな復旧ができるようにします。データライフサイクルマネジャーといったツールを利用すると、簡単に定期バックアップを取ることが可能です。

外部リソースの活用

ネットワークの運用や監視、24時間365日の対応体制などについては外部のコンサルティングや運用サポート専門の会社への委託など、外部リソースを適切に利用するとよいでしょう。

比べて納得!クラウドへの接続方法 e-Bookをダウンロードして理解を深めましょう!

AWSのネットワーク速度が遅い場合の対応

ネットワークが遅い場合、その原因がどこにあるのか切り分ける必要があります。オフィスとAWSとをつなぐ回線に問題がある場合や、メモリの改善によって状況が好転する場合もあります。またAWSのネットワーク自体を高機能化する方法もあります。当初想定していたような速度が出ない場合には、次の点を検討するとよいでしょう。

ネットワークの輻輳化やネットワーク機器の確認

基本的なことですが、AWSとオフィスを接続しているネットワークの回線上に多量のトラフィック(通信)が生じていないか確認しましょう。AWSの反応が遅いのではなく、クラウドとオフィスの端末を結ぶネットワーク回線自体の輻輳に原因がある場合もあります。輻輳が発生した場合、オフィスとクラウドとの通信速度がだんだんと遅くなっていき、さらにひどくなると回線がつながりにくくなったり、通信システムそのものがダウンしたりといった現象が起こります。またルーターやスイッチなどのネットワーク機器のパフォーマンスについても確認しましょう。

アベイラビリティーゾーンの適切配置(Multi-AZ配置の注意)

複数のアベイラビリティーゾーンにシステムを配置(Multi-AZ配置)してシステムの耐障害性を高めることは重要ですが、アベイラビリティーゾーンをまたいだ通信を行う場合には、コスト増と速度低下を招くことがあるので注意しましょう。配置の計画に際して留意しないと処理パフォーマンスが著しく低下する場合があります。Multi-AZ配置にするとAZ間の通信が発生してしまうので、どうしてもパフォーマンスが落ちる傾向がありますが、特にアプリケーションサーバがAZをまたいでRDSに書き込む構成になっている場合、はっきりと差がわかるくらいパフォーマンスが落ちます。これを避けるには、アプリケーションサーバとRDSのマスターを同じAZに置くようにしましょう。

ネットワークの高性能化(Linuxの拡張ネットワーキングの使用)

Linuxの拡張ネットワーキングを用いることでネットワークを高速化することができます。拡張ネットワーキングでは、シングルルート I/O 仮想化 (SR-IOV) を使用して、高性能ネットワーキング機能が提供されます。SR-IOVは、従来の仮想化ネットワークインターフェイスと比較し、I/Oパフォーマンスが高く、CPU利用率が低いデバイス仮想化手法です。拡張ネットワーキングは、高い帯域幅、1秒あたりのパケット(PPS)の高いパフォーマンス、常に低いインスタンス間レイテンシーを実現します。インスタンスタイプに応じて、Elastic Network Adapter(ENA)、あるいはIntel 82599 Virtual Function(VF)インターフェイスのいずれかを使用して拡張ネットワーキングを有効にすることができます。

メモリ利用率の監視(CloudWatchなどの利用)

ネットワークが低速である原因の一つにシステムのメモリマネージメントが適正化されていないという場合があります。「フルマネージド運用監視サービス」である「CloudWatch」のカスタムメトリクスで、メモリ使用率を取得することができます。システムが過剰にメモリを消費していないかチェックを行います。

スループットの改善(EBSボリュームタイプの選択)

Amazon EBSでは2つのボリュームタイプを提供しており、アプリケーションのニーズに応じてストレージのパフォーマンスとコストを調整できます。これによってスループットを改善できる場合があります。

  • I/Oサイズの小さい頻繁な読み取り/書き込み操作を含むトランザクションワークロード用に最適化されたSSD-Backedボリューム。主要なパフォーマンスの測定効果はIOPS(※)です。
  • 大きなストリーミングワークロード用に最適化されたHDD-Backedボリューム。パフォーマンスの測定単位としては、IOPSよりスループット(MiB/秒単位で計測)の方が適しています。

※IOPSとは、1秒当たりにディスクが処理できるI/Oアクセスの数のこと。1回のI/O処理にかかる時間は、データ転送時間と平均アクセス時間とを足した数値になります。I/O処理を1秒当たり何回実行できるかの数値がIOPSです。

Amazon ElastiCacheの利用(キャッシュの有効化)

キャッシュの有効化によりネットワーク速度を改善する方法もあります。Amazon ElastiCacheは、Memcachedまたは Redisプロトコルに準拠するサーバーノードのデプロイと実行を、クラウド内で簡単に実行できるWebサービスです。低速のディスクベースのデータベースに全面的に依存することなく、管理された高速のインメモリシステムから情報取得を可能にすることで、Webアプリケーションのパフォーマンスを向上させます。

インスタンスのパフォーマンス改善(EC2インスタンスタイプの見直し)

Amazon EC2は、さまざまなユースケースのために最適化されたインスタンスタイプの幅広い選択肢を提供しています。インスタンスタイプはさまざまなCPU、メモリ、ストレージ、ネットワークキャパシティーの組み合わせによって構成されているため、アプリケーションのリソースとして適切な組み合わせを柔軟に選択できます。ネットワーク速度が遅い場合、このインスタンスタイプを見直してパフォーマンスの改善を図る方法があります。

Webサイトを高速化する(CloudFrontの利用)

Amazon CloudFrontは世界100箇所のエッジロケーション(キャッシュサーバー)を配置して、最短距離でコンテンツを配信するCDN(コンテンツデリバリーネットワーク)です。Webサーバーをオリジンサーバー(元データを格納するサーバー)としてAmazon CloudFrontに登録し、Webページ内のコンテンツリンク先をキャッシュ参照用URLに変更することで、Amazon CloudFrontがオリジンサーバーからデータを取得します。これにより、Webサイト訪問者に短距離でコンテンツが配信されるだけでなく、同一コンテンツに繰り返しアクセスのあるWebサイトの高速化に強みを発揮します。

まとめ

AWSのネットワークを構築する場合には、パフォーマンスを最適化する設計と、障害の予防としての監視、障害発生時には切り分けや復旧対策が必要です。また運用時の注意点やネットワーク速度改善のための主な対策についても、あらかじめ把握しておくようにしましょう。

Amazon Web Services(AWS)は、米国その他の諸国における、Amazon.com, Inc.またはその関連会社の商標です。

比べて納得!クラウドへの接続方法 e-Bookをダウンロードして理解を深めましょう!

Amazon Web Services(AWS)、Microsoft Azureの
導入支援サービスのご相談、お問い合わせをお待ちしております。

ページ上部へ戻る