ファイルストレージは、他のITワークスペースと同様にクラウド環境でも重要です。クラウドの利便性と柔軟性には多くの利点があります。大幅な先行費用をかけずに、貴重なフロアスペースを失うことなくインフラ を構築することができます。
管理者にとっての朗報は耐障害性がクラウドストレージ環境にすでに組み込まれていることですが、それでもいくつかの重大な決断に直面することになります。クラウドを利用する上での選択肢の1つは、クラウドリソースのファイルストレージ形式を決めることです。オプションには以下のようなものがあります。
- ブロックストレージ
- オブジェクトストレージ
クラウド型のブロックストレージは、デスクトップやサーバールームにあるブロックストレージと非常によく似ています。ブロックストレージは、データを固定サイズのブロックに分割し、1ブロックずつ書き込み(または読み込み)を行います。
ネットワークブロックストレージは、ハードディスクやその他のストレージ・デバイスで40年以上にわたって使用されてきた同じブロック・ストレージ技術の延長線上にあります。低レイテンシを必要とするシナリオや、データに頻繁にアクセスする必要がある状況では、ブロックストレージは今でも費用対効果の高い代替手段となっています。とはいえ、ブロックストレージにはいくつかの欠点もあります。例えば、ブロックストレージは通常より高価であり、大規模なデータセットにはうまくスケールできません。構造化されていないデータ、バックアップ、アーカイブ、および頻繁なアクセスを必要としないその他のシナリオでは、オブジェクト・ストレージの方が良い選択となることが多いです。
オブジェクトストレージは、単一のオブジェクト(ファイルなど)をブロックに分割して保存するのではなく、一度にまとめて保存します。データの位置はハッシュ関数を使用して決定されるため、ボトルネックとなるルックアップテーブルやその他のマッピングコンポーネントは必要ありません。また、オブジェクトストレージシステムは効率的な検索をサポートする豊富で拡張性の高いメタデータを提供し、ブロックストレージでは不可能な管理機能を可能にします。
ほとんどのオブジェクトストレージシステムには、ブロックストレージシステムの管理者よりも多くのデータを一人の管理者が管理できる自動化と自己管理機能が搭載されています。効率性の向上は、GBあたりのコスト削減につながります。自動化と自己管理を重視することは、オブジェクトストレージがDevOps環境に適していることを意味します。
S3 APIは、クラウド上のオブジェクトストレージソリューションでよく使われるAPIです。元々はAmazonが開発したS3ですが、現在ではすべてのストレージプロバイダーが利用できるようになっています。S3は、URLで参照されるバケットにデータを格納します。バケットとは、データオブジェクトと記述的なメタデータで構成されるストレージリソースのことです。バケットバージョニングと呼ばれるオプション機能では、同じデータオブジェクトの複数のバージョンを1つのバケットに保存することができます。
いくつかのクラウドベースのオブジェクトストレージソリューションはS3と互換性があるため、S3対応のソリューションを採用した場合、他のS3対応ソリューションへの容易な移行や、既存の構成に他のS3ベースのサービスを簡単に追加することができます。多くの重要なネットワークサービスはすでにS3 APIへのインターフェースを構築しているため、S3はCephやOpenStack、Kubernetesなどの技術との統合が容易です。
RESTフルなHTTPベースのアクセスモデルにより、S3対応のデータストアをローカルネットワークやクラウド上の他のリソースとインターフェイスするカスタムWebアプリケーションを簡単に構築することができます。主要なコンテナおよび仮想化ツールで利用可能な互換性のあるインターフェイスにより、DevOps環境に不可欠な自動オーケストレーションソリューションにS3ベースのオブジェクトストレージを容易に統合できます。
オブジェクトストレージのレイテンシが高いため、構造化データベースにはS3互換のストレージは最適ではないかもしれませんが、非構造化データ、バックアップセット、および同様のS3互換オブジェクトストレージのシナリオでは、その低コストとスケーラビリティが最適なソリューションとなることが多いです。
オブジェクトストレージは、オーディオ、ビデオ、写真ファイルのライブラリをホストするために頻繁に使用されます。各ファイルにはそれぞれ独自のURLがあるため、ウェブサイトにファイルを埋め込んだり、ストリーミングソリューションに統合したりすることが簡単にできます。オブジェクトストレージの1GBあたりのコストが低いため、長期バックアップやコールドストレージのシナリオにも適しています。
ウェブサイトに関して言えば、コンテンツ管理システム(CMS)やPHPのようなサーバーサイドの処理言語を必要とする動的なサイトではブロックストレージの方が良いでしょうが、固定されたHTMLファイルを中心に構築された静的なウェブサイトでは、オブジェクトストレージがシンプルでコスト効率の良いオプションとなります。
S3対応のオブジェクトストレージをクラウドインフラに追加することを検討している場合 、いくつかの製品やベンダーから選択することになるでしょう。AWSはハイパースケールではS3を提供しているが、大規模なストレージを持たない中堅・中小企業(インフラ )では、代替クラウドの方がTCOが低く、コストパフォーマンスに優れていることに気づくことが多いです。オルタナティブ・クラウドとは、クラウドの専門家チームがいない企業にエンタープライズ・グレードのサービス・カタログを提供するクラウド・ベンダーのことである。低コスト、シンプルさ、そしてより個人的な顧客サービスに重点が置かれています。
すでにAWSのようなハイパースケールベンダーを利用している企業でも、特定のプロジェクトのためにシンプルさと低コストの恩恵を受けられる代替クラウドソリューションを選択することがあります。その場合、S3に対応したアーキテクチャを採用することで、AmazonクラウドのS3ストレージを中心に開発されたアプリケーションやサービスが、代替クラウド環境でも問題なく動作することが保証されます。
コメント (1)
Does this mean that we can use boto3-like python package to deploy objects (jpgs) to Linode block storage? Similar to what you can do with Backblaze? https://help.backblaze.com/hc/en-us/articles/360047629793-How-to-use-the-AWS-SDK-for-Python-with-B2-
If so, that would be amazing!
P.S.
Per this liode post, that seems to be the case https://www.linode.com/community/questions/20332/how-do-i-upload-a-file-to-object-storage-using-python