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 は、リソースメトリクスの包括的なビューを提供します。
以下のセクションでは、AWS のストレージレイヤーのアイドリングリソースを減らし、利用率を最大化するための 4 つのコンセプトを紹介します。
データアクセスパターンを分析し、ストレージ階層を利用する
データのアクセスパターンを分析した上で適切なストレージ階層を選択することで、クラウド上でより持続可能なストレージソリューションを提供します。
- 揮発性の低いデータを、効率的な長期保存のために設計されたストレージに保存することで、ストレージフットプリントを最適化することができます。より具体的には、ソリッドステートメモリではなく、磁気ストレージに変化の遅いデータや変化のないデータを保存することで、ストレージリソースの寿命に与える影響を軽減することができます。データのアーカイブや変化の遅いデータの保存には、Amazon EFS Infrequent Access、Amazon 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 内にのみ保存されるため、エネルギーとサーバー容量が削減されます。
列指向のデータフォーマットとデータ圧縮の利用
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 などのアーカイブストレージを使用します。
データの重複排除
大規模なデータセットには重複しているデータが含まれることが多く、これがストレージの使用量を増加させます。
- Amazon FSx for Windows File Server でデータ重複排除をオンにすることで、データストレージを最適化することができます。汎用的なファイル共有の場合、重複排除によってストレージ容量を 50~60% 削減することができます。
- Amazon S3 にデータセットが存在する場合、AWS Lake Formation が提供する FindMatches 変換を使用することで、重複を自動的に取り除くことができます。設定方法については、「AWS Lake Formation FindMatches を使用してデータセットの統合および重複の削除を実施」の記事を参照してください。
まとめ
このブログ記事では、ストレージの効率を高めるためのデータ保存技術について説明しました。これらには、ストレージボリュームの適切なサイズ設定、異なるアクセスパターンに応じたストレージ層の選択、データ圧縮と変換が含まれます。
これらのテクニックにより、AWS インフラストラクチャを環境維持のために最適化することができます。
このブログ記事は、シリーズの 2 番目の記事です。次回は、IT インフラストラクチャのネットワーキング部分を最適化し、クラウドでの持続可能性を高める方法を紹介します!
翻訳はネットアップ合同会社の岩井氏、監修はソリューションアーキテクトの戸塚 智哉が担当しました。
本シリーズの他のブログ記事
- 持続可能な AWS インフラストラクチャの最適化、第一部:コンピュート編
- 持続可能な AWS インフラストラクチャの最適化、第三部:ネットワーキング編
- 持続可能な AWS インフラストラクチャの最適化、第四部:データベース編
関連情報
TAGS: Optimizing your AWS Infrastructure for Sustainability Series, Sustainability