VPC によるネットワーク分離は、社内コラボレーションの実現や機密情報の適切な保存など、多くのセキュリティ上の利点をもたらします。 開発作業の面では、ネットワーク分離を使用して、多層 Web アプリケーションの展開を実装することもできます。アプリケーションを階層化することで、パブリック インターネットにアクセスできるアプリケーションとアクセスできないアプリケーションを異なるセグメントに分割できます。たとえば、データベース層は通常、このようにしてパブリック インターネットから分離され、パブリック インターネットに直接アクセスせずに上位層からパッチやソフトウェア更新を取得できるようになります。このアプローチは、攻撃対象領域を減らすだけでなく、複数リージョンへの展開も容易にします。 Akamai クラウドコンピューティングの詳細を読む 海外のクラウドサービスならAkamai Linodeをお選びください! 多層アプリケーションを実行する方法は多数ありますが、多くの場合、最大限のスケーラビリティ、セキュリティ、信頼性を実現するために、いくつかの基本的な形式に依存しています。 3 層アーキテクチャは最も一般的な設計形式であり、特にクラウド環境で一般的です。 3 層アプリケーションは通常 3 つの層で構成され、多くの場合は異なるサーバーに配置され、高度に独立した方法で開発および保守できます。 3 つのレイヤーは次のとおりです。
これら 3 つのコンテンツ レイヤーは、ネットワーク ベースの API を介して通信する必要がある独立したサービスです。セキュリティとパフォーマンス上の理由から、アプリケーション層とデータ層は通常、同じローカル ネットワーク内に、同じファイアウォールの背後に配置する必要がありますが、各層を分離することで、各コンポーネントを異なるハードウェアに、さらには異なる地理的な場所に展開することもできます。実際に実現できる柔軟性は、アプリケーションの特定のニーズに大きく依存します。 次の図は、実際の基本的な 3 層 Web アプリケーションを示しています。プレゼンテーション層の Web サーバーは、ブラウザ ウィンドウ内のユーザーに対話型インターフェイスを提供します。もう一方の端にあるデータ層はデータベースであり、これは別個のシステムである場合もあれば、ネットワーク内の単一のエンティティによって表されるクラスターである場合もあります。データベース層で人気のあるオープンソースのオプションとしては、MySQL、MariaDB、PostgreSQL for SQL、MongoDB、Cassandra for NoSQL などがあります。 図 1: 3 層アーキテクチャでは、Web アプリケーションをプレゼンテーション層、アプリケーション層、およびデータ層に分割します。 Web サーバーとデータベースの間にはアプリケーション層もあり、開発作業のほとんどはこのあたりで行われることになります。アプリケーション層には、アプリケーションが目的を達成するために必要なカスタム コードとビジネス ロジックが含まれています。フロントエンドでは、Web サーバーがアプリケーション層にクエリを送信し、アプリケーション層は Web サーバーに応答し、Web サーバーはデータをフォーマットしてユーザーに表示します。バックエンドでは、アプリケーション層がデータベースにクエリを実行し、データを受信し、受信したデータを処理して、ユーザーが必要とする情報や結果を生成します。 非常に単純な例として、データベースは会社の売上記録を保存する記録帳と考えることができます。ユーザーは、特定の期間における特定の場所の特定の製品の平均日次売上を取得するリクエストを入力します。 Web サーバーはアプリケーション層にリクエストを送信します。アプリケーション層はデータベース クエリを構築し、生データを受信し、必要な計算を実行してから、応答を Web サーバーに返します。 図2: ユーザーはプレゼンテーション層に情報セットを要求し、アプリケーション層はその要求をデータベースクエリに変換します。 アプリケーション層の場合、Apache Web サーバーはおそらく最も便利なプレゼンテーション層ソリューションであり、MongoDB はおそらく最も便利なデータ層ソリューションです。アプリケーション層のカスタム コードは、Python、PHP、Ruby などの言語で記述されることが多いです。また、いくつかの既成のプログラミング フレームワークの助けを借りて、より効率的に独自のコードを書き始めることができます。たとえば、Python 開発の場合は Django、Ruby 開発の場合は Rails、PHP 開発の場合は Symfony を選択できます。 理論上は、アプリケーション層をプレゼンテーション層と組み合わせることができ、この目的のためには、データベースを直接照会するために必要なコードのみを Web サーバーに提供する必要がありますが、ほとんどの複雑なビジネス ロジックの場合、このアプローチは現実的ではなく、アプリケーション パーティショニングの利点も相殺してしまいます。 上記の「利点」の中で最も重要なのは、攻撃対象領域を減らしてセキュリティを向上できることです。図 1 に示すように、3 層ソリューションでは、ファイアウォールの外側に配置する必要があるアプリケーション コンポーネントが最小限に抑えられます。 Web サーバーは安全な API を介して通信でき、その他のすべてのアクティビティはファイアウォールの内側で行われ、さらに重要なことに、プライベート アドレス空間で行われるため、インターネットからアクセスすることはできません。これにより、SQL インジェクションを含む多くの潜在的なリスクを抑制できます。結局のところ、SQL インジェクションは最も一般的で最も破壊的な脆弱性です。幸いなことに、これらのリスクは通常、データベースを分離し、すべての直接通信を保護することで軽減できます。 3 層アプリケーションがもたらすもう 1 つの利点は信頼性です。各層が別々のサーバー、異なる物理ハードウェア、または完全に異なるデータ センターで実行される場合、1 つの層で障害が発生しても他の層に影響が及ぶ可能性は低くなります。これにより、スケーラビリティがさらに向上します。独立して実行されるこれらのコンポーネントは、独立してスケーリングすることもできるためです。たとえば、データベース アクセスでパフォーマンスのボトルネックが発生した場合、全体的な操作への影響を最小限に抑えながら、データベース クラスターにノードを追加できます。 3 層アプローチは開発プロセスの最適化にも役立ちます。レイヤーを接続する API は、効率的な分業をサポートする方法でさまざまなコンポーネントを分離します。 Web 開発者および管理者は Web サーバーを操作および管理でき、データベース開発者および管理者はデータベース システムを実行できます。その間に、アプリケーション層で使用されるフレームワーク テクノロジに精通した専門家は、アプリケーション コードのみに集中できます。たとえば、DevOps シナリオでは、アプリケーション開発者はアプリケーション コードの新しいバージョンをオフラインで構築およびテストし、運用への影響を最小限に抑えながらアプリケーション コードを簡単に変更できます。 Web アプリケーションを開発する場合は、最初から 3 層アーキテクチャを採用することを検討できます。今日のコンテナおよびクラウド環境では、さまざまなコンポーネントをさまざまなシステムに簡単に分離できます。その利点は明らかで、信頼性が高く、安全で、スケーラブルなアプリケーションを簡単かつ迅速に構築できます。 この記事の内容は大丈夫でしょうか?今すぐ Linode プラットフォームで試してみませんか?今すぐ登録すると、100 ドル相当の無料クレジットを獲得できることをお忘れなく。早速、この記事で紹介した機能やサービスを実際に体験してみましょう↓↓↓ 海外のクラウドサービスならAkamai・Linodeをお選びください!高可用性 MySQL/MariaDB リファレンス アーキテクチャと豊富なアプリケーション例について学ぶには、 Akamaiをフォローしてください。 |
<<: トップクラスのマネージドクラウドサービスプロバイダーの選び方
>>: K8S PV / PVC / StorageClass をわかりやすい言葉で説明する (理論 + 実践)
cmivpsは米国南部海岸のシアトルデータセンターにVPSを構え、中国聯通のAS4837回線に接続し...
最近、Baidu はサイト全体の HTTPS セキュリティ暗号化サービスを有効にし、従来の HTTP...
みなさんこんにちは、私はXiaosiです。今、多くの人がインターネットファイナンスと金融インターネッ...
米国の老舗ブランドサービスプロバイダーであるServerhub(2002〜)は、現在、米国/ポーラン...
2014年のモバイルインターネット分野では、「Moman Camera」は注目に値する製品です。この...
昨晩、PRが再び更新されました。これは2012年2回目の更新です。PRは突然、ウェブマスターの間で話...
ネットセレブやスターに倣って買い物をすることは、多くの人にとって一般的なショッピングパターンとなって...
今日、タオバオで残念なことに遭遇しました。友達が服を気に入って、私に買ってほしいと頼んできたのです。...
現在、多くの企業のオンライン マーケティングは、まだプロモーションの表面的なレベルにとどまっています...
以前、「中小企業のマイクロブログマーケティングプロセスにおける問題の分析と要約」というタイトルの記事...
ソウルは今年5月11日に米証券取引委員会にIPO申請書を提出し、6月24日にナスダックに上場する予定...
ルーマニアの商人である hostsolutions が 2 つのクリスマス + 新年のプロモーション...
10月13日午後8時頃、友人から、デジタルオーシャンが不正行為で得た100ドルの整理を開始し、さらに...
今日は、[Kubernetes] DaemonSet の詳細な説明を共有して、履歴書を充実させ、面接...
1. ダブル11の電子商取引プロモーション戦争の再現:Tmallが主導権を握り、JD.comは孤立毎...