Amazon ElastiCacheは、データストレージにメモリを利用するインメモリデータベースサービスです。SSDや他のディスクストレージと比較して、高速かつ安定したアクセスを実現します。この特性は、特にパフォーマンスを重視するアプリケーションにおいて有効です。また、RDSやRedshiftなどの他のデータベースサービスと連携して、クエリ結果をElastiCacheにキャッシュすることで、全体のパフォーマンス向上が期待できます。
ElastiCacheにはKVS(Key-Value Store:Key-Value型のデータストア)型のデータベースエンジン「Memcached」と「Redis」が用意されています。Redisは、Memcachedと比較してデータのレプリケーションなど機能が豊富であり、より柔軟な利用が可能です。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-21.jpeg)
EC2インスタンスにMicrosoft SQL Serverをインストールすることで、SQL Serverのすべての機能をフルに活用でき、オンプレミスと同様のカスタム構成も可能です。
一方、Amazon RDSはフルマネージド型のデータベースサービスであり、運用管理が不要です。しかし、利用できるデータベースエンジンやバージョンが限定されており、Microsoft SQL Server特有の機能が使用できない場合があります。例えば、データベースのログ配布やネイティブのデータベーススナップショットなどが該当します。これらの機能をAWS上で引き続き利用したい場合、EC2インスタンスにMicrosoft SQL Serverをインストールする必要があります。
Amazon RDS Proxyは、Amazon RDSおよびAmazon Auroraデータベースへの接続を効率的に管理するフルマネージドのプロキシサービスです。RDS Proxyをアプリケーションとデータベースの間に配置することで、データベース接続の管理を効率化し、アプリケーションのパフォーマンス、スケーラビリティ、および可用性を向上させることができます。
AWS Lambda関数はデフォルトで、Lambda専用のセキュアなVPCに配置されます。Lambda関数からプライベートサブネット内のAWSリソースにアクセスさせたい場合は「VPCアクセス」の設定を行います。VPCアクセスを設定したLambda関数からRDS Proxy経由でDBインスタンスにアクセスすることで、データべースへの接続が効率的に管理されて過負荷を防げます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-63.png)
DynamoDBでは、テーブルに対する書き込み・読み込みの量と利用料金が関係しています。
・オンデマンドモード … 書き込み・読み込みのリクエスト単位で利用料金がかかる
・プロビジョニングモード … 1秒間に行う書き込み・読み込みの量で利用料金が異なる
プロビジョニングモードの書き込み・読み込みは、「キャパシティユニット」という単位で管理されています。これは1秒間にどれだけ読み込み・書き込みを行うかを予約する設定で、容量が大きいほど料金がかかります。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-62.png)
キャパシティユニットは、テーブル作成時にはWCU、RCUともに 5 に設定されています。キャパシティユニットの変更はいつでも行うことができます。
また、データアクセスの負荷に応じてキャパシティユニットを自動的にスケール(増減)することもできます。常に高いパフォーマンスを維持しておく必要がないため、コストを抑えたい場合に有用です。
AWS Glueは、フルマネージドのETLツールを提供するサービスです。Glue(糊)の名の示す通り、複数のデータソース(S3やDynamoDBなど)からデータを抽出し、変換・統合したデータをターゲット(Redshiftなど)へ格納するといった、データ分析における橋渡しの役割を担います。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-61.png)
ETLとは、データのExtract(抽出)・Transform(変換)・Load(書き出し)を意味する用語で、様々なデータソースを基に、データを統合してデータウェアハウス(DWH)※へ格納する一連のプロセスのことをいいます。※データウェアハウス(DWH:Data WareHouse)… 複数のシステムからデータを収集・統合・蓄積し、分析に使用するデータベースです。蓄積したデータは、例えば時系列や顧客のデータに基づいて分析され、結果はシステム効率化や経営改善などの意思決定に利用されます。AWSの代表的なDWHサービスには、Redshiftがあります。AWS GlueはETLジョブに特化したサービスであり、XMLからJSONへの変換を効率よく処理できます。また、サーバーレスサービスなので運用コストも最小限に抑えられます。
インスタンスストアは、EC2インスタンスの内部ストレージとして利用できる揮発性の(インスタンス稼働中にだけ利用可能な)ブロックストレージです。ホストコンピュータに物理的に割り当てられたディスク上にあり、頻繁に変更されるデータの一時的な保存領域として使用できます。
同じブロックストレージにはAmazon EBSがありますが、インスタンスストアはEBSよりも高いパフォーマンスを発揮できるという特徴があります。
以下はAmazon EBSのボリュームタイプです。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-22.jpeg)
表の「最大IOPS」列に着目してください。
(表中「最大IOPS」の「IOPS」とはInput Output per Second、つまり1秒間にどれだけI/O(Input/Output:読み取り/書き込み)が行えるかを意味する性能指標です。プロビジョンド(provisioned:予約済み)IOPS SSD(io1、io2 Block Express)を選択すると、予約したI/O性能をAWSが保証してストレージを提供します。)
最も性能のよいプロビジョンドIOPS SSD(io2 Block Express)の最大IOPSは256,000です。一方、インスタンスストアは数百万IOPSとされています。
Amazon EFSはNFS(Network File System)プロトコルをサポートするファイルストレージサービスです。NFSとはネットワーク上にある複数のコンピュータからストレージを共有することができるプロトコルのことで、主にLinuxを含むUNIX系のサーバーで使用されています。EFSはNFSに対応したAWSサービスおよびオンプレミスのシステムから利用できます。また、EFSは最小ストレージ容量の制限がありません。
EFSをEC2インスタンスからアクセスするには「マウントターゲット」を設定します。マウントターゲットとは、EFSファイルシステムをネットワーク経由で接続するためのエンドポイントです。マウントターゲットを利用することで、EC2インスタンスやオンプレミスのシステムが、ファイルシステムとしてEFSにアクセスできるようになります。
マウントターゲットは必要に応じて各AZに配置します。複数のAZに配置する(マルチマウントターゲット)ことで、特定のAZに障害が発生しても他のマウントターゲットを通じてEFSへのアクセスを維持することができ、高い可用性を確保できます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-65.png)
Amazon RDS Proxyは、Amazon RDSおよびAmazon Auroraデータベースへの接続を効率的に管理するフルマネージドのプロキシサービスです。RDS Proxyをアプリケーションとデータベースの間に配置することで、データベース接続の管理を効率化し、アプリケーションのパフォーマンス、スケーラビリティ、および可用性を向上させることができます。特に、サーバーレスアーキテクチャやマイクロサービスアーキテクチャで使用されることが多く、頻繁なデータベース接続の確立や切断がパフォーマンスに影響を与えるケースに適しています。
[Amazon RDS Proxyの利用例]![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-64.png)
AWS Step Functionsは、複数のAWSサービスをワークフローとして連携させ、処理を自動化するためのフルマネージド型のサーバーレスサービスです。専用のGUI(Workflow Studio)を介して、視覚的にワークフローを作成することができ、AWS Lambda、Amazon S3、Amazon ECSなど、多くのサービスと連携することができます。Step Functionsを使用することで、イベント駆動型のワークフローを構築し、定義した各ステップを順次実行することが可能です。また、各ステップでLambda関数を呼び出すことで、サーバーレスアーキテクチャの利点を活かした効率的なワークフローを作成することができます。これにより、インフラの管理負担が軽減され、運用上のオーバーヘッドを最小限に抑えることができます。
Amazon DynamoDB Accelerator(DAX)は、DynamoDBのインメモリのキャッシュクラスタです。DAXを利用することにより、ミリ秒(千分の一秒)だったレスポンスをマイクロ秒(百万分の一秒)レベルのパフォーマンスにまで向上させることができます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-66.png)
DynamoDB Accelerator(DAX)をニュース記事とコメントのテーブルに対して設定し、キャッシュであるDAXからデータを取得することでDynamoDBデータベースへのアクセス回数が減少し、読み取り遅延を解消できます。
Amazon CloudFrontは、AWSが提供する高速でセキュアなコンテンツ配信ネットワークサービスです。CloudFrontを利用すると、ユーザーに最も近いエッジロケーションを通してコンテンツが配信されるようになります。これにより、世界各地に散在するエッジロケーションから、静的コンテンツだけでなく動的コンテンツも効率的かつ高速に配信できます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-67.png)
D
CloudFrontでALB・EC2インスタンス(動的コンテンツ)とS3バケット(静的コンテンツ)両方を配信することにより、世界中のユーザーに低遅延での配信が可能になります。また、Route 53でCloudFrontにトラフィックをルーティングするようにDNSを設定することで、ユーザーから独自ドメインへのアクセスを適切にCloudFrontへ向けることができます。
解説 AWS Service Catalogは、主にCloudFormationテンプレートを製品として登録し、他のAWSユーザーへ共有できるサービスです。共有先のAWSユーザーは、セルフサービスで製品からAWS環境をデプロイ(構築)できます。製品の管理者は、製品のバージョンや、製品がいつ・誰に使用されたかを一元的に管理できるので、共有するAWS環境の一貫性とコンプライアンスを維持できます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-68.png)
例えば、システム管理者が構築したAWS環境をService Catalogに登録してアプリケーション開発者に共有することで、アプリケーション開発者は容易に自身のAWSアカウント内に開発環境をデプロイできます。また、システム管理者は共有したAWS環境のバージョンや使用履歴を一元管理できます。
AWS DataSyncは、オンプレミスとAWSのストレージサービス、またはAWSのストレージサービス間で、高速かつ信頼性の高いデータ移行と同期をサポートするマネージドサービスです。Amazon EFSもサポートしており、それぞれのリージョンから他のリージョンのストレージサービスにデータを移行することができます。双方向のデータ同期を行いたい場合は、初めに設定した方向に対して逆方向となる別の設定することで可能です。そのため2つのリージョンにあるAmazon EFS間で大量のデータを定期的に相互に転送する要件に適しています。
[異なるリージョンにあるAWSストレージサービス間の相互データ移行]![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-69.png)
収集用S3バケットと分析用S3バケット間でS3レプリケーションを設定する。S3イベント通知を使用して、分析用S3バケットにオブジェクトがアップロードされたときに、分析用のLambda関数およびSageMaker Pipelinesへ通知するように設定する
➡️ S3イベント通知の通知先はLambda関数、SQSキュー、SNSトピック、EventBridgeです。SageMaker Pipelinesへ通知するには、EventBridgeを経由する必要があるので、誤りです。
Amazon DynamoDBのグローバルテーブルは、DynamoDBテーブルを複数のリージョンにまたがって運用できるサービスです。複数のリージョンにDynamoDBテーブルが自動的にレプリケートされ、ユーザーは地理的に近いリージョンのDynamoDBテーブルへ高速な読み込みと書き込みが可能になります。データのレプリケーションは通常1秒以内に完了し、リージョン間のデータ冗長化によって高可用性が確保されます。
Amazon Transcribeは、機械学習を利用した音声認識サービスで、音声をテキストに変換します。例えば、リアルタイム文字起こしや、通話記録データのテキスト化、動画の字幕付けなどに利用できます。Transcribeでは「PIIの識別とマスキング」を有効にすることにより、PIIをテキストから削除できる機能があります。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-70.png)
Elastic Load Balancing(ELB)にはロードバランシングの方式によって複数の種類があります。そのうちのALBはレイヤー7(アプリケーション層)で負荷分散を行い、HTTP、HTTPSをサポートしています。本ケースのアプリケーションはHTTPSで通信しているのでALBを利用します。
[ALB/NLB/CLBの比較表]![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-71.png)
AWS Global Acceleratorは、ユーザーからAWSリソースまでのアクセス経路をAWSネットワークを利用して最適化するサービスです。通常、ユーザーがAWSリソースにアクセスする時、AWSリソースがあるリージョンまでに経由するインターネット回線の影響を受けるため、遅延の発生やデータ損失などのリスクがあります。Amazon Global Acceleratorは、ユーザーと地理的に近いエッジロケーションから高パフォーマンスなAWSネットワークを経由してAWSリソースへアクセスするため、遅延の発生やデータ損失などのリスクを少なくします。
[通常のアクセス]![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-72.png)
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-73.png)
Global Acceleratorは2つの固定パブリックIPアドレスを保有しており、ユーザーはこの固定IPアドレスへアクセスします。エンドポイントが増減してもIPアドレスに影響なくサービスを継続できるため可用性が向上します。
Global Acceleratorを使用することで、ユーザーから最も近いAWSエッジロケーションにリクエストをルーティングできます。さらに、Elastic IPアドレスを割り当てられないALBに対して、固定IPアドレスでアクセス可能になります。
また、EC2インスタンスはIaaSサービスなのでOSカーネルのカスタマイズが可能です。
Amazon Forecastは、機械学習を利用した時系列予測を提供するフルマネージドサービスです。時系列予測とは、過去の時系列データから将来の事象を予測することを指します。具体的には、季節ごとの商品需要予測、プロモーション効果の予測、予算計画、スタッフの要員計画などに役立てることができます。Forecastでは、既に時系列予測のモデルが用意されており、ユーザーがデータをインポートするだけで、自動的に予測子を作成し、予測を行うことができます。そのため、機械学習の知識や経験がなくても利用可能です。予測子とは、予測を行うためにトレーニング(学習)された機械学習モデルのことです。過去のデータを使って構築され、将来の需要やトレンドを予測するために使用されます。具体的には、Amazon Forecastに販売データをインポートすると、予測アルゴリズムが自動的に学習し、将来の需要を予測できる予測子が作成されます。
また、Lambdaの関数URL(HTTPリクエストを受け取るための専用エンドポイント)を利用することで、他のシステムやアプリケーションがLambda関数を呼び出し、Forecastからリアルタイムで予測結果を取得できます。Lambda関数を介することで他のシステムやアプリケーションと容易に統合することができ、予測データを幅広く利用できます。
Elastic Fabric Adapter (EFA)は、AWSが提供する高性能なネットワークインターフェースで、科学研究、工学、機械学習などの高パフォーマンスを要求する計算タスクに最適です。ネットワークインターフェイス作成時にEFAを有効化し、EC2インスタンスにアタッチして利用します。EFAは、通常のENIと比較してネットワークの遅延を最小限に抑え、高いデータ転送速度を実現できます。なお、EFAは特定のEC2インスタンスタイプでのみサポートしています。
Amazon FSx for Lustreは、高性能ファイルシステムであるLustreを提供するAWSのストレージサービスです。FSx for Lustreは、スーパーコンピューターや機械学習を含むHPCアプリケーションで広く利用されているオープンソースのファイルシステムであり、大量のクライアントから低レイテンシーかつ高スループットでファイルアクセスを必要とする用途に適しています。FSx for LustreクライアントをインストールしたEC2 Linuxインスタンスやオンプレミスのコンピュータからファイルシステムをマウントでき、1つのファイルシステムには数千台のクライアントから同時アクセスが可能です。FSx for Lustreの特徴の一つとして、S3との連携があります。S3バケットをFSx for Lustreファイルシステムに統合すると、ファイルシステムとS3バケット間でデータを自動的にインポートおよびエクスポートします。これにより、S3に保存されているデータをFSx for Lustreから透過的に利用できるようになります。
[データを透過的に利用できるイメージ図]![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-74.png)
プレイスメントグループは、複数のEC2インスタンスを論理的にグループ化し、インスタンス間での低遅延な通信や、ハードウェア障害による影響を軽減できる機能です。プレイスメントグループのうち「クラスタープレイスメントグループ」は、グループ内のEC2インスタンスを単一AZ内の物理的に近い距離に配置するので、各EC2インスタンス同士の通信は遅延が発生しにくくなります。複数のインスタンスをクラスタープレイスメントグループに所属させることで、インスタンス間は可能な限り低遅延で通信可能になります。また、Auto Scalingグループを作成することにより、インスタンスが異常停止した場合は自動的に新規のインスタンスが起動するので回復性も兼ね備えられます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-75.png)
AWS Storage Gatewayは、オンプレミスからAWSのストレージサービスへのアクセスを高速かつセキュアに行うことができるサービスです。堅牢性・耐久性に優れたS3をファイル共有ストレージとして利用したり、災害対策を目的としたバックアップやアーカイブを行ったり、あまりアクセスされないデータを自社サーバーからAWSへ移動させるなど、様々なケースで利用することができます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-76.png)
さらに、AWSへ移行したデータへのアクセスを監査するには、AWS CloudTrailのデータイベントを有効にします。CloudTrailには監視対象ごとに3つのイベントがあります:- 管理イベント … ユーザーのログイン、EC2インスタンスの作成など- データイベント … S3上のオブジェクト(データ)の操作、Lambda関数の実行など- インサイトイベント … 通常と異なる操作(書き込みAPIの呼び出しなど)データイベントおよびインサイトイベントはデフォルトでは有効になっておらず、「証跡情報」を登録しそれぞれのイベントの記録を有効にするか否かを選択します。
AWS Direct Connectを利用する際は、ユーザーが専有の機器を配置して接続する「専用接続」と、AWS Direct Connectパートナーが用意した機器と回線を共用する「ホスト接続」があります。
専用接続の場合は1Gbps、10Gbps、100Gbps、ホスト接続の場合は50Mbps、100Mbps、200Mbps…500Mbps(特定のユーザーのみ1Gbps~10Gbps)の間で利用可能です。契約の途中で帯域の変更はできないので、帯域を変更したい場合は新しい接続を契約する必要があります。Direct Connectで接続を開設するには数日~数週間かかります。
300Mbpsで8TBを転送した場合は、伝送効率80%で約81時間、すなわち3~4日で完了する見込みです。
また、S3バケットへ転送したデータは、Amazon RDSやAmazon Auroraデータベースへインポートすることができます。
AWS DataSyncは、オンプレミスとAWS間、またはAWSストレージ間のデータ転送サービスです。AWSのストレージにはS3やAmazon EFS、Amazon FSxなどがあります。データは暗号化されて転送されるため、安全かつ高速なデータ転送を行えます。本設問のケースでは、移行後のデータに対して更新や削除は禁止するように設定することが要件です。この要件を満たすには、Amazon S3の「オブジェクトロック」機能を利用します。オブジェクトロック機能は、S3バケットへ保存したオブジェクトに対する更新・削除を防ぎます。
Storage Gatewayは、AWSへデータを移行した後もオンプレミスから継続してデータが更新されるケースで利用します。
オンプレミスとAWSクラウドとを接続するサービスとして代表的なものは「AWS Direct Connect」「AWS Site-to-Site VPN(サイト間VPN)」があります。AWS Direct Connectは専用回線を敷設するため、安定した回線で多量のトラフィックを扱う接続に適していますが、ランニングコストが高額です。一方、AWS Site-to-Site VPN(サイト間VPN)は、カスタマーゲートウェイ(オンプレミスのルーター)とVPCの仮想プライベートゲートウェイ(VGW:Virtual Private Gateway)を、インターネットVPNで接続するサービスです。Direct Connectよりも低コストかつ早期に利用を開始できます。
Egress-Onlyインターネットゲートウェイは、NATゲートウェイとインターネットゲートウェイの特徴を併せ持つ、IPv6専用のインターネットゲートウェイです。
AWSクラウドとオンプレミスサーバーを接続する機能はありません。
Amazon CloudFrontは、AWSが提供する高速でセキュアなコンテンツ配信ネットワークサービスです。CloudFrontを利用すると、ユーザーに最も近いエッジロケーションを通してコンテンツが配信されるようになります。これにより、世界各地に散在するエッジロケーションから、静的コンテンツだけでなく動的コンテンツも効率的かつ高速に配信できます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-77.png)
Amazon EMR(旧Amazon Elastic MapReduce)とは、ビッグデータの処理や分析を行うサービスです。ビッグデータを処理する既存のフレームワークであるHadoop(ハドゥープ)やSpark(スパーク)を用いています。さらに、ビッグデータを分析し経営に役立てることを「BI:Business Intelligence」といい、代表的なBIツールにはMicrosoft ExcelやMicroStrategyなどがあります。Amazon EMRはこれらのツールにも対応しています。Amazon Redshiftはペタバイト級のストレージに対応したデータウェアハウスです。データウェアハウス(DWH:Data WareHouse)とは、複数のシステムからデータを収集・統合・蓄積し、分析に使用するデータベースのことをいいます。
Amazon ElastiCacheは、データストレージにメモリを利用するインメモリデータベースサービスです。SSDや他のディスクストレージと比較して、高速かつ安定したアクセスを実現します。この特性は、特にパフォーマンスを重視するアプリケーションにおいて有効です。また、RDSやRedshiftなどの他のデータベースサービスと連携して、クエリ結果をElastiCacheにキャッシュすることで、全体のパフォーマンス向上が期待できます。
キャッシュにおけるデータの保存方法は、データの整合性と可用性を保ちつつ、パフォーマンスを最大化するために非常に重要です。
以下に、代表的なキャッシュ戦略の2つを紹介します。
■ライト(書き込み)スルー戦略
データベースへのデータ書き込みや更新が行われるたびに、同時にキャッシュにも書き込みます。この戦略では、キャッシュのデータが常に最新の状態を保たれるため、データの整合性が維持されます。しかし、書き込み性能が若干低下する可能性があるのと、アクセスされないデータがキャッシュに蓄積されるというデメリットもあります。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-78.png)
■遅延読み込み戦略
データベースへの書き込みを優先し、必要な時にのみキャッシュにデータを書き込みます。アプリケーションがデータを要求した際には、まずキャッシュを確認します。キャッシュにデータが存在する場合、そのデータをアプリケーションに返します。データが存在しない場合には、データベースからデータを取得し、そのデータをアプリケーションに提供した後でキャッシュに書き込みます。この方法では要求されたデータのみがキャッシュされるため、リソースの無駄遣いを減らすことができますが、キャッシュとデータベース間で一時的なデータの不一致が生じる可能性があります。また、キャッシュミス(キャッシュからデータを取得できなかった)した場合には、データ取得に時間がかかることがあります。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-79.png)
【TTL(Time To Live)】TTL(Time To Live)とは、データがキャッシュやその他のストレージシステムに保持される時間の長さを指します。これはキャッシュ管理における非常に重要な要素であり、リソースの効率的な使用とデータの整合性維持に広く利用されています。具体的には、データに保存期間が設定され、その期間が経過すると自動的にキャッシュからデータが削除されます。このメカニズムにより、使用されない古いデータや不要なデータを効率的に整理でき、リソースの確保につながります。オンラインゲームのようなリアルタイムでステータス反映が求められる環境では、特にライトスルー戦略が最適です。データベースとキャッシュ間の整合性を保ちながら、パフォーマンスを確保することができます。
Amazon SQSを使用せずに、S3イベント通知から直接Lambda関数を実行することもできます。SQSキューを使用する利点は、大量のリクエストが一度に発生した場合にリクエストをキューイングして順に処理できることです。しかし、SQSキューを使用しなくてもLambdaには自動スケーリング機能があるので、相当の負荷にも耐えられるようになっています(1秒間に同時に実行できる関数の数はデフォルトで1000)。処理にタイムアウトが発生するなどでなければ、SQSを使用せずにS3イベント通知からLambda関数を実行する方がシンプルで効果的な構成です。
Amazon API GatewayはAWSサービスと連携するAPIの作成や管理ができる機能です。API GatewayではREST APIとWebsocket APIの2種類のAPIを作成できます。AWS Lambda(ラムダ)はサーバーレスでプログラムのコードを実行できるサービスです。Lambdaで実行されるコードを「Lambda関数」といい、Java、Node.js 、Pythonなど様々な開発言語に対応しています。Amazon DynamoDBはKey-Value型のデータ形式をサポートするNoSQLのデータベースです。Amazon DynamoDBでは、テーブルに対する書き込み・読み込みの量と利用料金が関係しています。- オンデマンドモード … 書き込み・読み込みのリクエスト単位で利用料金がかかる- プロビジョニングモード … 1秒間に行う書き込み・読み込みの量で利用料金が異なるオンデマンドモードのオンデマンド(On Demand)とは「要求に応じて」を意味する熟語であり、ユーザーが要求して利用した分だけのサービスが提供されることをいいます。DynamoDBの場合も同様に、リクエストを発行した分だけ料金が請求されます。プロビジョニングモードは、オンデマンドモードの「どれだけ使ったか」とは反対に、読み込み量と書き込み量を予約しておくモードです。リクエスト量やキャパシティの要件が予測可能な場合にはプロビジョニングモードを、リクエスト量が不明瞭なケースや利用した分だけの支払いをしたい場合はオンデマンドモードを選択すると、コストを抑えた運用ができます。設問の場合はリクエスト量が予測されているので、DynamoDBを「プロビジョニングモード」に設定するのが適切です。Amazon API Gateway、Lambda、DynamoDBはすべてマネージドサービスなので、サーバーのメンテナンスやキャパシティプランニングの必要なく、スケーラブルなアプリケーションを実装できます。
○Amazon EFSAmazon EFS(Elastic File System)はNFS(Network File System)プロトコルをサポートするファイルストレージサービスです。EFSはNFSに対応したAWSサービスおよびオンプレミス(自社運用)のシステムから利用できます。○Amazon EBSEBS(Elastic Block Store)はEC2インスタンスに割り当てられるブロックストレージで、物理ハードディスクドライブと同じように利用できます。EBSは必要に応じて複数作成し、EC2インスタンスにアタッチ(取り付け)して利用します。○EC2インスタンスストアインスタンスストアは、EC2インスタンスから利用できる揮発性の(インスタンス稼働中にだけ利用可能な)ブロックストレージです。インスタンスストアは、EBSよりも高いパフォーマンスを発揮できるという特徴があります。EBSで最も高性能なボリュームタイプでも256,000IOPS(※)ですが、インスタンスストアは数百万IOPSを発揮します。※IOPS(Input Output per Second)… 1秒間にどれだけI/O(Input/Output:読み取り/書き込み)が行えるかを意味する性能指標のこと。○Amazon S3Amazon S3(Simple Storage Service)は安価で耐久性が高く、保存容量が無制限のオブジェクトストレージサービスです。S3に保存されたオブジェクトにはURLが付与され、インターネットからアクセスできます。
[主なストレージサービスの比較]![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-80.png)
S3の署名付きURLは、非公開設定されたオブジェクトに対して有効期限のついたURLを発行することで、AWSアカウントを持っていないユーザーでも一時的にアクセスが可能になる機能です。署名付きURLはオブジェクトのダウンロードの他、アップロード用のURLも発行可能です。S3はフルマネージドサービスなので、ユーザーが管理・運用する必要なく、スケーラビリティを確保できます。
EFSボリュームでファイル共有するには、クライアントからNFS接続でマウントする必要があります。
AWS DataSyncはAWSのデータ移行サービスです。オンプレミスのストレージとAWSのストレージサービス間や、AWSのストレージサービス同士で高速かつセキュアなデータ転送を行います。対応しているストレージサービスは、Amazon S3、Amazon EFS、Amazon FSxです。DataSyncで転送されるデータは、ファイルやフォルダのタイムスタンプ、ディレクトリ構造、アクセス権限などのメタデータが保持されます。
SnowballはSnowファミリーの一つです。Snowファミリーは多量のデータをAWSストレージへ転送するサービスです。利用者には大容量のストレージを備えた機器がAWSから貸し出され、移行対象のデータを機器へ取り込んでからAWSへ返送すると、データがAmazon S3へ保存される仕組みです。Snowファミリーにはデータの量や用途ごとに選べる3つのサービスがあります。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-81.png)
Snowballはストレージ機器の輸送をしてデータ転送をするので、データの移行にDataSyncは利用できません。また、機器を輸送してS3バケットに保存したあとに、DataSyncを利用してAmazon FSx for Windows File Serverに転送する方法でも、途中でS3バケットに保存する際にファイルのアクセス権限が喪失してしまいます。
Snowconeは、他のSnowファミリーのように機器をAWSへ返送する方法のほか、DataSyncを利用してデータを移行することも可能です。SnowconeデバイスにはDataSyncエージェントがプリインストールされており、DataSyncを利用してSnowconeデバイスとAWSストレージサービス間でデータ転送ができます。物理的な輸送ではデバイスからS3への移行に限られますが、DataSyncを利用するとデバイスから直接FSx for Windows File Serverへデータを転送できるので、ファイルのアクセス権限を保持したまま移行できます。
AWS Storage Gatewayのボリュームゲートウェイは、S3をiSCSI接続のブロックストレージボリュームとして利用できるサービスです。iSCSI(Internet Small Computer System Interface)とはコンピュータのストレージを接続するSCSIプロトコルをTCP/IPで実現したもののことで、サーバーはiSCSIで接続されたストレージ(Storage Gatewayの場合はS3)をローカルディスクとして使用します。AWS Storage Gatewayのボリュームゲートウェイにはキャッシュ型と保管型があり、ローカルキャッシュを利用できるのはキャッシュ型です。ボリュームゲートウェイ(キャッシュ型)は、すべてのデータをS3に保存し、高頻度アクセスのデータのみオンプレミスのキャッシュストレージにコピーします。データがキャッシュ上に存在しない場合はS3へアクセスするので遅延が発生しますが、オンプレミスのストレージ容量を抑えることができます。
![](https://dev.wellcorelife.com/wp-content/uploads/2024/07/image-82.png)
Amazon S3のTransfer Accelerationは、ユーザーからS3バケットへ最適化したネットワークルートを経由してデータを転送する機能です。ユーザーと地理的に近いエッジロケーションから高パフォーマンスなAWSネットワークを経由してS3バケットへアクセスするため、遅延の発生やデータ損失などのリスクを少なくします。マルチパートアップロードは、単一のオブジェクトをパートといわれる複数のデータに分割して、S3バケットにアップロードする機能です。各パートはそれぞれ並列にアップロードされるので、アップロード時間を大幅に短縮できます。また、パートの一部に送信エラーが発生しても、他のパートへ影響を及ぼすことなくエラーが発生したパートのみを再送します。AWSではファイルサイズが100MB以上の場合は、マルチパートアップロードの使用を推奨しています。Transfer Accelerationとマルチパートアップロードを併用することによって、データをより迅速に転送できます。また、通常では2GBのデータの送信途中で回線エラーが発生してしまうとファイルの送信を初めからやり直す必要がありますが、マルチパートアップロードによって再送信の影響も小さくできます。
MemcachedはマルチAZに対応しておらず、Redisほどの高可用性を提供できません
この記事は役に立ちましたか?
もし参考になりましたら、下記のボタンで教えてください。
コメント