現代のクラウドストレージは、一般的に3つの異なるタイプのソリューションとして提供されています。 最初のタイプで一般的に最も馴染みのあるものはファイルベースのストレージです。ファイルベース・ストレージとは、記憶媒体上の階層内のファイルに保存されたデータのことです。近年では、ブロックストレージとオブジェクトストレージという2つのタイプが一般的に使用されるようになりました。ブロックストレージは、データをハードウェア内の小さな断片(ブロック)に分割して管理します。 オブジェクトストレージは、詳細なメタデータと一意の識別子を持つ不変のブロブとしてフラットな構造でデータを保存します。
3つのタイプのストレージにはすべて用途があり、どのタイプのストレージを使用するのか、そしてアプリケーションでどのタイミングで使用するのかを理解することが重要です。 この記事では、S3対応のオブジェクトストレージの知識を広げ、アーキテクチャで使用するのが適切なソリューションであるタイミングを理解することに焦点を当てていきます。
ストレージの種類
ファイルベースのストレージは、ディレクトリ、つまりフォルダ内の単一の情報としてデータを保存します。 アルファベット順に整理されたフォルダでいっぱいのファイルキャビネットを想像してみてください。庭(Garder)のデータを取得したいときは、ファイルキャビネットの「G」セクションに移動するだけです。
ブロックストレージ は、データをブロックと呼ばれる小さなセグメントにチャンクアップし、データの各ブロックには、検索のための一意の識別子が与えられます。 ブロックストレージは、本から各ページを取り出して、非線形の別の方法で保存するようなものです。 本を再構築する必要があるときは、ページ番号で再構築することができます。
オブジェクトストレージとは、ファイルをオブジェクトと呼ばれる個々の単位に分割し、一意の識別子を与えたフラットな構造のことです。 オブジェクトストレージは、Valetパーキングのようなもので、キーには位置情報が格納され、そのデータを使って駐車場から車を取り出すことができます。 キーは識別子であり、位置情報はメタデータであり、オブジェクトは車です。
まず、ビジネスと技術の観点からオブジェクトストレージをもう少し明確に定義しておきましょう。 ビジネスの観点から見ると、オブジェクトストレージとは大規模な拡張性、耐久性、コスト効率を考慮して設計されたデータストレージのシステムです。 技術的な観点から見たオブジェクトストレージは、データをオブジェクトとして格納し、格納されたオブジェクトを他のインフラ から切り離し、格納されたデータを HTTP ベースのインターフェイスを介してプログラム的にアクセスできるようにすることで、その目標を達成します。 アプリケーションでいつ、なぜオブジェクトストレージを使用するのかを理解することは、運用面と予算面の両方の観点から節約につながります。
オブジェクトストレージにおけるオブジェクトとは何か、もう少し掘り下げて理解を深めてみましょう。 データをオブジェクトとして保存するとはどういうことでしょうか?オブジェクトストレージは、大量の非構造化データを、関連するメタデータやインデックスを使って処理するために構築されました。 つまり、オブジェクトとは、ブロブやオブジェクトとして保存されるデータ、そのオブジェクトの周りのメタデータ、そして各オブジェクトに固有の識別子として定義することができます。
クラウドでは、このようなオブジェクトは一般的にバケットと呼ばれる構造体に格納され、すべてのオブジェクトはHTTPリクエストを介して直接アクセスすることができます。 これはアーキテクチャを構成するマイクロサービスからすべてのデータにプログラムでアクセスできることを意味し、アプリケーション全体の大規模なスケーラビリティと低価格のストレージコストを実現します。
HTTPリクエストを介してデータにアクセスすることは、今日のクラウドにおけるオブジェクトストレージサービスの中核的な考え方の1つです。 AWSは、Simple Storage Serviceとそれに関連するAPIを作成しS3 APIとして知られるようになったことで、クラウドコンピューティングにおけるオブジェクトストレージの利用を開拓しました。 S3 APIの機能をエミュレートすることは、クラウドにオブジェクトストレージを実装するためのデファクトスタンダードとなっています。
Linode は S3 APIの基本的なアクセスモデルとの互換性を提供するceph オブジェクトゲートウェイを使用してオブジェクトストレージサービスを構築しました。これにより、共通のAPIを使って複数のクラウド向けにS3に準拠したワークロードを書くことができます。つまり、現在Amazon S3、Google Cloud Storage、Azure Blob Storage、Digital Ocean Spacesでホストされているデータも、インターフェースを変更することなくLinode Object Storageに保存することができます。 共通のAPI標準を利用することで、マルチクラウド戦略を最大限に活用することができます。
ストレージの種類の違い、及びS3互換APIがどのようにマルチクラウド機能を提供できるかを理解したところで、本番環境のアーキテクチャにオブジェクトストレージを組み込むための最も一般的なユースケースをいくつか見てみましょう。 オブジェクトストレージは、多種多様なアプリケーションやサービスにまたがる非構造化データに対して、非常にスケーラブルでコスト効率の高いストレージを提供することを思い出してください。
ユースケース:
バックアップとディザスターリカバリ: オブジェクトストレージは、組織全体のバックアップ先として最適です。 SHIELD Cloudをはじめ、Linode オブジェクトストレージを活用したバックアップ戦略を活用した様々なサービスがあります。
静的資産:reactとS3対応のオブジェクトストレージを使用して、サーバーレスのWebアプリケーションを展開します。 静的資産をコンピュートアーキテクチャから切り離すことができるため、高可用性を維持しながらスケーラビリティとストレージコストを削減することができます。オブジェクトストレージは、コンピュート環境を必要としない静的なWebサイトに最適なユースケースです。
データウェアハウス: データウェアハウスやデータレイクのニーズに合わせて、構造化されていないデータをオブジェクトストレージに保存します。
ストレージの種類を理解し、組織全体で適切に適用することは、クラウド戦略の中核となる要素です。 オブジェクトストレージは、大規模でスケーラブルなクラウドストレージと、マルチクラウド戦略のための共通のインターフェイスを提供します。 一般的な用途についてもう少し詳しく知りたい方は、クラウドオブジェクトストレージのユースケースをご覧ください。
コメント