1
0

AWS勉強備忘録19 - レプリケーション、データ分析、CloudFront

Last updated at Posted at 2024-03-22

レプリケーション

AWS S3レプリケーションの種類

  1. 通常のレプリケーション (Same-Region Replication, SRR)

    • 同一リージョン内の異なるバケット間でオブジェクトを非同期にコピーします。
    • 主に、アクセスコントロールの分離、ログデータの集約、ライブデータとバックアップの分離などの用途に使用されます。
  2. クロスリージョンレプリケーション (Cross-Region Replication, CRR)

    • 異なるリージョン間のバケットにオブジェクトを非同期にコピーします。
    • データの地理的な冗長性を確保し、大規模な災害時にデータを保護するために使用されます。

主な特徴と要件

  • バージョニングの有効化: 両方のバケット(ソースとデスティネーション)でバージョニングを有効にする必要があります。
  • IAMロール: レプリケーションを実行するためには、適切な権限を持つIAMロールが必要です。
  • 所有者: コピー先のバケットの所有者は、コピー元のバケットの所有者と異なる場合がありますが、適切な権限設定が必要です。

日本におけるクロスリージョンレプリケーション

日本は、東京リージョン (ap-northeast-1) と大阪リージョン (ap-northeast-3) の2つのAWSリージョンを有しています。これにより、日本国内でもクロスリージョンレプリケーションが可能になりました。例えば、東京リージョンで発生したデータを大阪リージョンに非同期でバックアップすることができます。これにより、一方のリージョンに障害が発生した場合でも、もう一方のリージョンにデータが保護されているため、ビジネスの継続性が向上します。

注意点

  • データ保護: クロスリージョンレプリケーションを利用する場合、データの国外転送に関する法規制や企業ポリシーに注意が必要です。特に、国外に持ち出してはならないデータに関しては、適切なリージョンを選択する必要があります。

レプリケーションの設定手順の概要

  1. バージョニングの有効化: ソースバケットとデスティネーションバケットの両方でバージョニングを有効にします。
  2. IAMロールの作成: レプリケーションプロセスが使用するIAMロールを作成し、必要な権限を割り当てます。
  3. レプリケーションルールの設定: ソースバケットでレプリケーションルールを設定します。このルールでは、どのオブジェクトをレプリケートするか、デスティネーションバケットの指定、さらにはレプリケーションに使用するIAMロールを指定します。
  4. レプリケーションの監視: AWS Management Consoleからレプリケーションの進行状況を監視し、必要に応じて設定を調整します。レプリケーションの状態は、S3バケットの「管理」タブ内の「レプリケーション」セクションで確認できます。

表で見るレプリケーションの比較

特徴/要件 通常のレプリケーション (SRR) クロスリージョンレプリケーション (CRR)
バージョニングの有効化 必須 必須
IAMロールの必要性 あり あり
データの地理的冗長性 なし あり
災害復旧のための利用 限定的 高い
データ転送コスト 低い(同一リージョン内) 高い(リージョン間転送)
データ保護とコンプライアンスの考慮 低い 高い
日本国内での使用 可能 可能(東京と大阪のリージョン間)

まとめ

AWS S3のレプリケーション機能には、同一リージョン内でのデータコピー(通常のレプリケーション)と、異なるリージョン間でのデータコピー(クロスリージョンレプリケーション)の2種類があります。日本国内であれば、東京と大阪のリージョン間でクロスリージョンレプリケーションを利用することにより、大規模な災害時にもデータの安全を確保することができます。ただし、データの保護とコンプライアンスの要件を十分に検討し、適切なリージョンでのレプリケーションを実施することが重要です。

データ分析

AWS S3に保存されたデータを分析するためのサービスには、S3 Select、Amazon Athena、およびAmazon Redshift Spectrumがあります。これらのサービスはそれぞれ異なるユースケースに適しており、下記の表でその比較、メリット、デメリット、差異、および注意点をまとめました。

比較表

特徴/サービス S3 Select Amazon Athena Amazon Redshift Spectrum
主な用途 S3内の特定データ抽出 サーバレスクエリサービス 大規模データウェアハウス内でのクエリ
データ分析方法 オブジェクト内のデータを選択的に抽出 SQLクエリを使用したデータ分析 Redshiftクラスタを介したデータ分析
メリット 高速なデータアクセス サーバレス、即時にクエリ実行 大規模データセットに対応
少量のデータに対してコスト効率良好 広範囲なデータフォーマットに対応 Redshiftと統合してパフォーマンス向上
デメリット 複雑な分析には不向き クエリの実行コストがかかる Redshiftクラスタが必要
大規模なデータセットには非効率 大量のデータ転送が発生する場合がある
主な差異 個々のオブジェクトに対する単純なクエリ 広範囲のデータセットに対する複雑なクエリ RedshiftテーブルとS3データの組み合わせ
データ形式のサポート CSV, JSON CSV, JSON, Parquet, ORC CSV, JSON, Parquet, ORC
コスト 使用したデータ量に基づく スキャンしたデータ量に基づく スキャンしたデータ量およびRedshiftの使用量に基づく
スケーラビリティ
注意点 個々のS3オブジェクトに対する簡単なクエリに適用 データスキャン量によってコストが増加 Redshiftクラスタの管理とコストが必要

結論

  • S3 Selectは、S3に保存された特定のデータを素早く抽出したい場合や、データ量が少ない場合に適しています。
  • Amazon Athenaは、サーバレスであり、広範囲のデータセットに対する複雑な分析を即時に実行したい場合に最適です。コスト管理には注意が必要です。
  • Amazon Redshift Spectrumは、大規模なデータセットに対して高度な分析が必要な場合や、既存のAmazon Redshiftインフラを活用して分析を行いたい場合に適しています。

Amazon CloudFront

CloudFrontとは?

Amazon CloudFrontは、あらゆるタイプのデータ、ビデオ、アプリケーションをエンドユーザーに高速に配信するためのグローバルコンテンツ配信ネットワーク(CDN)サービスです。静的コンテンツだけでなく、動的コンテンツの配信もサポートしており、世界中に点在するエッジサーバーを通じてコンテンツをエンドユーザーの近くでキャッシュし、配信することで、Webサイトのロード時間を大幅に削減します。

エッジサーバーとは?

エッジサーバーは、ユーザーの物理的な位置に近い場所に配置されるサーバーのことで、ユーザーからのリクエストに対してコンテンツを迅速に提供します。エッジサーバーは、ユーザーの最寄りの地点でコンテンツをキャッシュすることで、データの伝送距離と遅延を減らし、配信速度を向上させます。

高速化の仕組み

  1. キャッシング: 静的コンテンツ(画像、CSSファイル、JavaScriptファイルなど)をエッジサーバーにキャッシュし、コンテンツのロード時間を削減します。
  2. ルーティング最適化: ユーザーのリクエストを最適なエッジサーバーにルーティングすることで、応答速度を最適化します。
  3. TCP接続の最適化: 長距離のTCP接続を最適化し、データ転送速度を向上させます。

料金体系と料金クラス

CloudFrontの料金は使用したデータ転送量とリクエスト数に基づいて計算されます。料金は地理的な場所によって異なり、以下の料金クラスが提供されます:

  • 標準価格: 最大のグローバルカバレッジを提供します。
  • 価格クラス200: 一部の高価格の地域を除外してコストを削減します。
  • 価格クラス100: さらに多くの地域を除外して最低限のコストでサービスを提供します。

料金クラスを選択することで、サービスのグローバルカバレッジとコストのバランスを調整できます。

暗号化通信への対応

CloudFrontは、HTTPSを使用した暗号化通信に完全対応しており、データの安全性を保ちながら高速配信を実現します。無料のAWS Certificate Manager(ACM)を利用してSSL/TLS証明書を簡単に管理でき、カスタムドメインでの安全な配信を実現できます。また、オリジン間リソース共有(CORS)設定と組み合わせることで、セキュアなAPIリクエストの処理もサポートしています。

注意点

  • キャッシュ戦略の設定: 効率的なコンテンツ配信のためには、キャッシュの挙動を適切に設定し管理することが重要です。TTL(Time To Live)の設定や、キャッシュの無効化ポリシーを適切に利用しましょう。
  • セキュリティ: CloudFrontはAWS WAF(Web Application Firewall)と統合されており、アプリケーションを様々なWeb攻撃から保護できます。セキュリティ対策を十分に施しておくことが重要です。
  • コスト管理: CloudFrontの料金は使用量に応じて変動します。特に大量のデータ転送やリクエストが発生する場合は、料金クラスの選択やキャッシュ戦略を見直すことで、コストを最適化することができます。
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0