Amazon Web Services ブログ

持続可能な AWS インフラストラクチャの最適化、第二部:ストレージ編

このブログは Katja Philipp、Aleena Yunus、Otis Antoniou の Associate Solutions Architect 3 名と Ceren Tahtasiz (Startup Solutions Architect) によって執筆された内容を翻訳したものです。原文はこちらを参照して下さい。 

本シリーズのパート I では、AWS アーキテクチャのコンピュートレイヤーを持続可能に最適化する戦略を紹介しました。AWS ワークロードのリソースとエネルギー効率を改善するのに役立つ成功基準、メトリクス、およびアーキテクチャパターンを提供しました。 

このブログポストでは、AWS インフラストラクチャのストレージ層に焦点を当て、データを持続的に保存するために実行できる推奨事項を紹介します。

AWS インフラストラクチャのストレージ層の最適化

データのライフサイクルを管理し、さまざまなストレージ階層を使用することは、ストレージを最適化して持続可能性を高めるための重要な要素です。さまざまなストレージメカニズムを検討する際には、リソース効率、アクセス遅延、信頼性の間でトレードオフが生じることを覚えておいてください。つまり、それらに応じて管理パターンを選択する必要があります。

アイドリング状態のリソースを削減し、使用率を最大化する

データを効率的に保存し、アクセスすることに加え、アイドリング状態のストレージリソースを削減することは、より効率的で持続可能なアーキテクチャを実現します。Amazon CloudWatch は次の表に示すように、ストレージの改善を評価するために使用できるストレージメトリクスを提供しています。

サービス メトリクス 参照
Amazon Simple Storage Service (Amazon S3) BucketSizeBytes メトリクスとディメンション
S3 Object Access サーバーアクセスログを使用したリクエストのログ記録
Amazon Elastic Block Store (Amazon EBS) VolumeIdleTime Amazon EBS のメトリクス
Amazon Elastic File System (Amazon EFS) StorageBytes Amazon EFS の Amazon CloudWatchメトリクス
Amazon FSx for Lustre FreeDataStorageCapacity Amazon FSx for Lustre のモニタリング
Amazon FSx for Windows File Server FreeStorageCapacity Amazon CloudWatch によるモニタリング
Amazon FSx for NetApp ONTAP StorageCapacity / StorageUsed ファイルシステムのメトリクス
Amazon FSx for OpenZFS StorageCapacity / UsedStorageCapacity Monitoring with Amazon CloudWatch

図1 に示すようなアーキテクチャで、これらのメトリクスを監視することができます。CloudWatch は、リソースメトリクスの包括的なビューを提供します。

CloudWatch for monitoring your storage resources

図1. ストレージリソースを監視する CloudWatch

以下のセクションでは、AWS のストレージレイヤーのアイドリングリソースを減らし、利用率を最大化するための 4 つのコンセプトを紹介します。

データアクセスパターンを分析し、ストレージ階層を利用する

データのアクセスパターンを分析した上で適切なストレージ階層を選択することで、クラウド上でより持続可能なストレージソリューションを提供します。

  • 揮発性の低いデータを、効率的な長期保存のために設計されたストレージに保存することで、ストレージフットプリントを最適化することができます。より具体的には、ソリッドステートメモリではなく、磁気ストレージに変化の遅いデータや変化のないデータを保存することで、ストレージリソースの寿命に与える影響を軽減することができます。データのアーカイブや変化の遅いデータの保存には、Amazon EFS Infrequent AccessAmazon EBS Cold HDD ボリュームAmazon S3 Glacier の使用をご検討ください。
  • データのライフタイムを通じて効率的にデータを保存するには、事前に定義したルールに基づいてオブジェクトを別のストレージクラスに自動的に転送する Amazon S3 ライフサイクル管理を作成します。ブログ記事「Expiring Amazon S3 Objects Based on Last Accessed Date to Decrease Costs」では、オブジェクトの最終アクセス日に基づいてAmazon S3 用のカスタムオブジェクト有効期限ルールを作成する方法を紹介しています。
  • アクセスパターンが不明または変化するデータについては、Amazon S3 Intelligent-Tiering を使用して、アクセスパターンを監視し、階層間でオブジェクトを自動的に移動させます。一般に、これらのストレージ・メカニズムを検討する際には、リソース効率、アクセス遅延、信頼性の間でトレードオフを行う必要があります。図2は、Amazon S3 のデータアクセスパターンとその結果のストレージティアの概要を示しています。例えば、S3 One Zone-IA では、データは 1 つの Availability Zone 内にのみ保存されるため、エネルギーとサーバー容量が削減されます。
Data access patterns for Amazon S3

図2. Amazon S3 のデータアクセスパターン

列指向のデータフォーマットとデータ圧縮の利用

Parquet や ORC のような列指向データフォーマットは、CSV や JSON のような行指向のフォーマットと比較して、必要なストレージ容量は少量です。

  • Parquet は、テキスト形式と比較して、Amazon S3 において最小 1/6 のストレージ消費を実現します。これは、Amazon Athena のブログポスト「Amazon Athena のパフォーマンスチューニング Tips トップ 10」に示されているように、列単位の圧縮、異なるエンコーディング、またはデータ型に基づく圧縮などの機能があるためです。
  • データを圧縮、パーティショニング、列指向フォーマットに変換することで、Amazon Athena のパフォーマンスを向上させ、クエリのコストを 30~90% 削減することができます。列指向データ形式と圧縮を使用することで、スキャンされるデータ量を減らすことができます。

未使用のストレージリソースの削除

ストレージボリュームの適切なサイズ設定または未使用なリソースの削除 

Cost Optimization on AWS のビデオで紹介されているように、データの種類や用途に応じてストレージのサイズを適切に設定することで、関連コストを最大 50% 削減することができます。

  • 未使用のストレージリソースを削減する簡単な方法は、接続されていない EBS ボリュームを削除することです。ボリュームを後で迅速に復元する必要がある場合は、削除前に Amazon EBS スナップショットを取得することができます。
  • また、Amazon Data Lifecycle Manager を使用して、EBS スナップショットおよび Amazon EBS でバックアップされた Amazon マシンイメージ (AMI) を自動的に保持および削除することができます。これにより、古いリソースのストレージフットプリントがさらに削減されます。
  • ボリュームを過剰にプロビジョニングしないようにするには、「AWS Step Functions と AWS Systems Manager を使用して、Amazon EBS ボリュームのサイズ変更を自動化する」の記事を参照してください。これは、容量のしきい値に達するたびにボリュームを自動的に拡張するワークフローを実証しています。これらの Amazon EBS エラスティックボリュームは、「Amazon EBS のアップデート」 のブログポストで示されているように、必要なときにボリュームを拡張します。

CloudWatch Logs の保存期間を変更する

デフォルトでは、CloudWatch Logs は無期限に保存され、期限切れになることはありません。各ロググループの保持ポリシーは、1 日~ 10 年の間で調整することができます。コンプライアンス上の理由から、ログデータを Amazon S3 にエクスポートし、Amazon S3 Glacier などのアーカイブストレージを使用します。

データの重複排除

大規模なデータセットには重複しているデータが含まれることが多く、これがストレージの使用量を増加させます。

まとめ

このブログ記事では、ストレージの効率を高めるためのデータ保存技術について説明しました。これらには、ストレージボリュームの適切なサイズ設定、異なるアクセスパターンに応じたストレージ層の選択、データ圧縮と変換が含まれます。

これらのテクニックにより、AWS インフラストラクチャを環境維持のために最適化することができます。

このブログ記事は、シリーズの 2 番目の記事です。次回は、IT インフラストラクチャのネットワーキング部分を最適化し、クラウドでの持続可能性を高める方法を紹介します!

翻訳はネットアップ合同会社の岩井氏、監修はソリューションアーキテクトの戸塚 智哉が担当しました。

本シリーズの他のブログ記事

関連情報

TAGS: Optimizing your AWS Infrastructure for Sustainability Series, Sustainability 

Katja Philipp

Katja Philipp

Katja は、ドイツ・ミュンヘンを拠点とするアソシエイトソリューションアーキテクトです。情報システム学修士のバックグラウンドを持ち、2020 年 9 月に TechU Graduate program で AWS に入社しました。電力・公益事業分野のお客様に対して、クラウドジャーニーに関するベストプラクティスを提供します。Katja は、持続可能性と、より良い未来のために現在の課題を解決するためにテクノロジーをどのように活用できるか模索することに情熱を注いでいます。

Aleena Yunus

Aleena Yunus

Aleena Yunus は、DACH のアソシエイトスタートアップソリューションアーキテクトです。コンピュータサイエンスの修士号を取得し、分散システムとネットワークセキュリティを専攻しています。開発、顧客のクラウド革新の支援、アーキテクチャのベストプラクティスの適用を楽しんでいます。読書家であり、好きな作家はジョン・スタインベック。

Otis Antoniou

Otis Antoniou

Otis Antoniou は、ロンドンを拠点とするアソシエイトソリューションアーキテクトです。英国およびアイルランドの SMB チームに所属し、AWS サービスを使ってお客様のビジネス課題の革新と解決を支援しています。仕事以外では、チームスポーツやラケットスポーツを楽しみ、音楽に熱中しています。

Ceren Tahtasiz

Ceren Tahtasiz

Ceren Tahtasiz は、ロンドンを拠点とするスタートアップソリューションアーキテクトです。スタートアップの目標や課題を理解し、AWS をどのように使い始められるかを指導することで、スタートアップの成長を支援しています。顧客が弾力性と拡張性のあるクラウドネイティブ製品を立ち上げられるようにすることに情熱を注いでいます。主なテーマはサーバーレス技術とクラウドにおける持続可能性。