type
status
date
slug
summary
tags
category
icon
password
 

理論

「クローリング」とは、インターネット上のウェブサイトやページを自動的に巡回して情報を収集するプロセスのことです。特に、検索エンジンのボットがウェブページをスキャンして、内容をインデックスに登録する際に行う作業が「ウェブクロール」と呼ばれます。
このプロセスでは、指定されたURLのリストを基に、ページを訪れてデータを取得し、必要な情報(例えば、テキストや画像)をダウンロードしたり、解析したりします。クローリングは、例えば検索エンジンがページの内容を理解し、結果をランキングに反映させるために必要不可欠です。
 

1. AWS Lambdaを利用したサーバーレスアーキテクチャ

  • AWS Lambdaは、サーバーを管理せずにコードを実行できるサーバーレスサービスです。
  • Lambdaは、トリガーに応じて自動的にスケールし、リクエストがないときは実行されません。この特性により、リソースの無駄を避けることができ、コストを最小化できます。
  • Lambdaの利用には、リクエストに基づいた課金がされるため、アイドル状態のコストが発生しません。

2. Amazon S3を用いた低コストなストレージ

  • Amazon S3は、非常にスケーラブルで耐久性が高いオブジェクトストレージサービスです。データを長期間保存する場合に最適で、クローリングデータのような大量のファイルを効率的に保存できます。
  • S3は、保存するデータ量に基づいてコストが発生するため、処理後の結果を保存するのに非常にコスト効率が良いです。

3. Amazon EC2インスタンスのコスト最適化

  • EC2インスタンスを使用する場合、インスタンスが常に稼働し続けるため、アイドル状態の時間が長いとコストが無駄になります。
  • 必要に応じてスケールするサービス(LambdaやFargateなど)の導入により、コストを最適化することができます。

4. 非同期処理とバッチ処理

  • SQS(Simple Queue Service)を使用することで、非同期処理を実現し、リクエストがあるときにのみリソースを利用できます。LambdaやEC2インスタンスの利用を非同期にすることで、効率的にリソースを使用できます。
これらの知識を活用することで、ウェブクローリングのようなリソースを動的に管理するタスクのコストを最適化し、スケーラブルなシステムを構築できます。

実践

一問道場

ある企業が、機械学習アルゴリズムの訓練データを取得するために、ターゲットURLのリストに基づいてウェブクローリングプロセスを実行しています。複数のAmazon EC2 t2.microインスタンスが、Amazon Simple Queue Service (Amazon SQS)キューからターゲットURLを取得し、クローリングアルゴリズムの結果を.csvファイルとしてAmazon Elastic File System (Amazon EFS)ボリュームに書き込みます。EFSボリュームは、インスタンスのすべてのフリートでマウントされています。別のシステムが、URLをSQSキューに追加していますが、その頻度は低いです。インスタンスは、各URLを10秒以内にクローリングします。メトリクスによると、URLがSQSキューにないときに、一部のインスタンスがアイドル状態になっています。ソリューションアーキテクトは、コストを最適化するためにアーキテクチャを再設計する必要があります。
次の手順のうち、コストを最も効果的に最適化するために実施すべきものはどれですか?(2つ選んでください。)
A. ウェブクローリングプロセスにm5.8xlargeインスタンスを使用し、インスタンスの数を50%削減します。
B. ウェブクローリングプロセスをAWS Lambda関数に変換し、Lambda関数でSQSキューからURLを取得するように設定します。
C. ウェブクローリングプロセスで結果をAmazon Neptuneに保存するように変更します。
D. ウェブクローリングプロセスで結果をAmazon Aurora Serverless MySQLインスタンスに保存するように変更します。
E. ウェブクローリングプロセスで結果をAmazon S3に保存するように変更します。

解説

この問題の解説は、AWSリソースのコスト最適化に関するアーキテクチャの変更方法に焦点を当てています。以下のステップで解説します。

問題の背景

  • 会社はEC2 t2.microインスタンスを使って、SQSからURLを取得し、ウェブページをクローリングしてEFSに結果を保存しています。
  • 現在、URLがない時にはインスタンスがアイドル状態になるため、コスト効率が悪化しています。
  • 要求される解決策は、コスト最適化を目指し、クローリングプロセスを再設計することです。

解決策の選択肢の分析

A. EC2インスタンスの変更

  • m5.8xlargeインスタンスに変更することで、インスタンスの性能は向上しますが、t2.microよりもはるかに高価です。さらに、インスタンス数を削減しても、依然としてEC2インスタンスはコストがかかり続けます。
  • この方法では、クローリングの間にインスタンスが稼働し続ける必要があるため、コスト削減にはつながりません。

B. AWS Lambdaを使用

  • Lambda関数に変換することで、サーバーレスアーキテクチャを利用できます。Lambdaはリクエストがあるときにのみ起動するため、アイドル時間がなく、コストが必要なときにだけ発生します。
  • SQSからURLを取得してLambdaで処理するため、アイドル状態がなくなり、リソースの無駄を減らせます。
  • 最もコスト効率の良い方法です。

C. 結果をAmazon Neptuneに保存

  • Amazon Neptuneはグラフデータベースであり、クローリングの結果を保存するには適していません。データがリレーショナルではないため、Neptuneはこのケースにおいては適切ではないでしょう。

D. 結果をAmazon Aurora Serverless MySQLに保存

  • Aurora Serverlessは、需要に応じて自動的にスケールするため、コスト効率が良い選択肢ですが、クローリング結果を保存するには過剰かもしれません。
  • 通常、クローリングデータは単純なファイルとして保存することが多いため、Aurora Serverlessはやや高価な選択肢となります。

E. 結果をAmazon S3に保存

  • Amazon S3は、低コストでデータを保存できるため、クローリング結果を保存するのに非常に適しています。S3はスケーラブルで、高い耐久性を持つため、クローリングデータを長期間保存するのに理想的です。

結論

最もコスト効率が良い解決策は、AWS Lambdaを使用してクローリングを処理し、その結果をAmazon S3に保存することです。Lambdaは必要なときにだけ実行され、アイドル状態のインスタンスを回避できます。また、S3は低コストで、データの保存に最適です。
したがって、最適な選択肢はB(Lambdaを使用)とE(S3に保存)です。
相关文章
クラウド技術の共有 | AWS Site-to-Site
Lazy loaded image
EKSでのWordPressデプロイ:KCNA-JP試験対策 (Kubernetes実践編)
Lazy loaded image
初心者向け!コンテナ化WordPressサイト構築ガイド(超詳細版)
Lazy loaded image
EFSを活用!AWS EC2でDockerを使ったWordPressサイト構築
Lazy loaded image
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
Lazy loaded image
528-AWS SAP AWS 「理論・実践・一問道場」Migration Evaluator
Lazy loaded image
461-AWS SAP AWS 「理論・実践・一問道場」Elastic Beanstalk ウェブサイトの移行459-AWS SAP AWS 「理論・実践・一問道場」GitHub Action(OIDC)
Loading...
みなみ
みなみ
一个普通的干饭人🍚
最新发布
02-生成AIパスポート試験対策:第2章「生成AI」
2025-2-1
01-生成AIパスポート試験対策:第1章「人口知能」
2025-2-1
究極のAWS認定 AI 実践者 AIF-C01 - 学習メモ
2025-1-27
不要再傻傻的直接买NISA啦
2025-1-27
Kubernetes、仮想マシンとコンテナの概念を超簡単に解説!
2025-1-24
529-AWS SAP AWS 「理論・実践・一問道場」VPCエンドポイント
2025-1-22
公告
🎉欢迎访问我的博客🎉
- 感谢您的支持 --
本站点于2024/09/01建立
👏主要分享IT相关主题👏
系统管理:
Redhat…
容器和编排:
Kubernetes、Openshift…
云计算:
AWS、IBM…
AI入门
以及技术笔记和考证经验
定期更新,欢迎互动。
感谢访问!
快速浏览相关标签