OCI Kubernetes Engineを使用した自動スケーリング・ウイルス・スキャナのデプロイ

Oracle Cloud Infrastructure Object Storageのファイルがウイルス・スキャンされていることを確認して、ウイルス、マルウェア、アイデンティティ盗難および不正を検出および防止します。ウイルス・スキャナを実装すると、Oracle Cloud Infrastructure (OCI)ソリューションに入るすべてのファイルが安全で安全であることが保証されます。

アーキテクチャ

このアーキテクチャでは、OCI Object Storageにアップロードされたファイルをスキャンするウイルス・スキャナが作成されます。ウィルス・スキャナはOracle Cloud Infrastructure Kubernetes Engineにデプロイされ、Kubernetesベースのイベント駆動型自動スケーリングを使用してウィルス・スキャン・ジョブを管理します。

ウイルス・スキャン・ジョブは、単一ファイルおよびzipファイルをスキャンするように構成されます。作成されたオブジェクト・ストレージ・バケットに複数のファイルがアップロードされると、OCIイベントおよびOCIキューを使用してOCI Kubernetes Engine (OKE)でウイルス・スキャン・ジョブが実行されます(デフォルトでは最大3つのジョブが同時に実行されますが、これはKubernetesベースのイベントドリブン自動スケーリング構成を使用して変更できます)。スキャン後、スキャン結果(クリーンまたは感染)に応じて、ファイルがオブジェクト・ストレージ・バケットに移動されます。スキャンするファイルがない場合、Kubernetesベースのイベントドリブン自動スケーリングは、プール2のノードをゼロにスケール・ダウンします。スキャン時に、Kubernetesベースのイベント駆動型自動スケーリングによってノードがスケール・アップされます。

ウィルス・スキャナは、トレリックスの無料トライアルuvscanという名前のサードパーティを使用します。アプリケーション・コードは、主にNodeJSで記述され、Oracle Cloud Infrastructure SDK for JSを使用します。

次のダイアグラムにこのアーキテクチャを示します。



オークアンチウイルス architecture.zip

このアーキテクチャには、次のコンポーネントがあります。

  • リージョン

    Oracle Cloud Infrastructureリージョンとは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立し、長距離の場合は(複数の国または大陸にまたがって)分離できます。

  • 可用性ドメイン

    可用性ドメインは、リージョン内の独立したスタンドアロン・データ・センターです。各可用性ドメイン内の物理リソースは、他の可用性ドメイン内のリソースから分離されているため、フォルト・トレランスが提供されます。可用性ドメインどうしは、電力や冷却、内部可用性ドメイン・ネットワークなどのインフラを共有しません。そのため、ある可用性ドメインでの障害は、リージョン内の他の可用性ドメインには影響しません。

  • フォルト・ドメイン

    フォルト・ドメインは、可用性ドメイン内のハードウェアおよびインフラストラクチャのグループです。各アベイラビリティ・ドメインに3つのフォルト・ドメインがあり、電源とハードウェアは独立しています。複数のフォルト・ドメインにリソースを分散する場合、アプリケーションは、物理サーバーの障害、システム・メンテナンスおよびフォルト・ドメイン内の電源障害を許容できます。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定する、カスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNを使用するとネットワーク環境を制御できます。VCNには重複しない複数のCIDRブロックを含めることができ、VCNの作成後にそれらを変更できます。VCNをサブネットにセグメント化して、そのスコープをリージョンまたは可用性ドメインに設定できます。各サブネットは、VCN内の他のサブネットと重複しない連続した範囲のアドレスで構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックにもプライベートにもできます。

  • インターネット・ゲートウェイ

    インターネット・ゲートウェイは、VCN内のパブリック・サブネットとパブリック・インターネット間のトラフィックを許可します。

  • 動的ルーティング・ゲートウェイ(DRG)

    DRGは、VCNとリージョン外のネットワーク(別のOracle Cloud Infrastructureリージョン内のVCN、オンプレミス・ネットワーク、別のクラウド・プロバイダ内のネットワークなど)の間のプライベート・ネットワーク・トラフィックのパスを提供する仮想ルーターです。

  • ネットワーク・アドレス変換(NAT)ゲートウェイ

    NATゲートウェイを使用すると、VCN内のプライベート・リソースは、受信インターネット接続にこれらのリソースを公開することなく、インターネット上のホストにアクセスできます。

  • ロード・バランサ

    Oracle Cloud Infrastructure Load Balancingサービスは、単一のエントリ・ポイントからバックエンドの複数のサーバーへの自動トラフィック分散を提供します。

  • オブジェクト・ストレージ

    オブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージやビデオなどのリッチ・コンテンツなど、任意のコンテンツ・タイプの構造化データおよび非構造化データにすばやくアクセスできます。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納し、取得できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージを拡張できます。迅速、即時、頻繁にアクセスする必要があるホット・ストレージには、標準ストレージを使用します。長期間保持し、ほとんどまたはほとんどアクセスしないコールド・ストレージには、アーカイブ・ストレージを使用します。

  • モニタリング

    Oracle Cloud Infrastructure Monitoringサービスは、メトリックを使用してクラウド・リソースをアクティブおよびパッシブに監視し、リソースおよびアラームを監視して、これらのメトリックがアラーム指定のトリガーを満たしたときに通知します。

  • ロギング
    Loggingは、クラウド内のリソースから次のタイプのログへのアクセスを提供する、高度にスケーラブルな完全管理型のサービスです:
    • 監査ログ: 監査サービスによって発行されたイベントに関連するログ。
    • サービス・ログ: APIゲートウェイ、イベント、ファンクション、ロード・バランシング、オブジェクト・ストレージ、VCNフロー・ログなどの個々のサービスによって発行されるログ。
    • カスタム・ログ: カスタム・アプリケーション、他のクラウド・プロバイダまたはオンプレミス環境からの診断情報を含むログ。
  • 関数

    Oracle Cloud Infrastructure Functionsは、完全に管理された、マルチテナントのスケーラビリティが高いオンデマンドのFunctions-as-a-Service (FaaS)プラットフォームです。これは、Fn Projectのオープン・ソース・エンジンによって機能します。ファンクションを使用すると、コードをデプロイし、直接コールするか、イベントに応答してトリガーできます。Oracle Functionsは、Oracle Cloud Infrastructure RegistryでホストされているDockerコンテナを使用します。

  • キュー

    Oracle Cloud Infrastructure Queueは、1回以上保証された処理、追跡、クライアント分離などの複雑な管理タスクを処理しながら、メッセージを処理するスケーラブルなシステムを提供します。この一元化されたサービスでは、メッセージの順序付けおよび処理状態も管理されるため、ステートレス・クライアント・プロセスはカーソル・トラッキングをオフロードできます。

  • イベント

    Oracle Cloud Infrastructureサービスでは、イベント(リソースの変更を説明する構造化メッセージ)を発行します。イベントは、作成、読取り、更新または削除(CRUD)操作、リソース・ライフサイクルの状態変更およびクラウド・リソースに影響するシステム・イベントのために発行されます。

  • レジストリ

    Oracle Cloud Infrastructure Registryは、本番ワークフローを簡素化できる、Oracle管理のレジストリです。レジストリを使用すると、Dockerイメージなどの開発アーティファクトを簡単に格納、共有および管理できます。Oracle Cloud Infrastructureの高可用性とスケーラビリティのアーキテクチャにより、アプリケーションを確実にデプロイして管理できます。

デプロイ

ウィルス・スキャナをデプロイするコードは、GitHubにあります。

  1. GitHubに移動します。
  2. リポジトリをローカル・コンピュータにクローニングまたはダウンロードします。
  3. READMEドキュメントの手順に従います。

詳細の参照

Oracle Cloud Infrastructure Kubernetes Engineへのウイルス・スキャナのデプロイについてさらに学習します。

次の追加リソースを確認します。

確認

  • Author: Mika Rinne
  • Contributors: Marta Tolosa, Badr Tharwat