前回投稿した「AWSサービス一覧 ツリー構造で把握しよう」
https://qiita.com/tkworking2003/items/03e1c900dfbe4e609dac
と合わせてみていただくと、初学者の方はAWSのサービスを理解しやすいと思います。
AWSサービス比較
コンピューティング (サーバーを動かす機能)
-
Amazon Elastic Compute Cloud (EC2)
仮想サーバーを提供するサービス。OSの選択から、CPU、メモリ、ストレージ、ネットワークまで、サーバー環境を細かく自分でコントロールしたい場合に最適。
既存のオンプレミス環境の移行や、特定のOSやミドルウェアに依存するアプリケーションの実行に適している。
-
AWS Lambda
イベントが発生したときだけ、コード(関数)を実行する「サーバーレス」コンピューティングサービス。
サーバーの管理が一切不要で、実行した時間や処理量に応じて料金が発生する従量課金制です。WebサイトのAPIバックエンド、S3へのファイルアップロードをトリガーとした自動処理、データ変換など、短時間のイベント駆動型処理に非常に適している。
-
AWS Fargate
コンテナ化されたアプリケーションを、サーバーのプロビジョニングや管理不要で実行できる「サーバーレス」コンピューティングエンジン。
Dockerなどのコンテナ技術を使っている場合に非常に便利で、Webアプリケーション、バッチ処理など、コンテナとしてパッケージ化されたアプリケーションを動かしたいが、基盤となるサーバーの管理はAWSに任せたい場合に適している。
類似サービスとの比較
比較項目 | Amazon EC2 | AWS Lambda | AWS Fargate |
---|---|---|---|
管理モデル | サーバー管理必須/IaaS | サーバーレス/FaaS | サーバーレス/CaaS |
自由度 | 高い (OS、ミドルウェアなど自由に構成) | 低い (コード実行環境は限定的) | 中程度 (コンテナイメージの利用は自由) |
課金体系 | 起動時間に応じた課金 | コード実行回数と実行時間に応じた従量課金 | コンテナのリソース使用時間に応じた従量課金 |
実行時間 | 長時間稼働向け | 短時間 (現在最大15分) | 長時間稼働も可能 |
用途 | 既存システムの移行、常に稼働が必要なアプリ | イベント駆動型処理、APIバックエンド、データ処理 | コンテナ化されたWebアプリ、バッチ処理 |
-
Amazon Elastic Container Service (ECS)
AWSが提供するコンテナオーケストレーションサービス。コンテナ化されたアプリケーションのデプロイ、管理、スケーリングを効率的に行える。AWSの他のサービスとの統合がしやすく、AWSエコシステム内でシンプルにコンテナを利用したい場合に選ばれる。
-
Amazon Elastic Kubernetes Service (EKS)
オープンソースのコンテナオーケストレーションシステムである「Kubernetes」をAWS上で利用できるマネージドサービス。Kubernetesの知識がある場合や、マルチクラウドでのコンテナ運用を視野に入れている場合に選ばれる。
類似サービスとの比較
比較項目 | Amazon ECS | Amazon EKS | AWS Fargate (ECS/EKSの実行環境) |
---|---|---|---|
基盤技術 | AWS独自のコンテナオーケストレーション | オープンソースのKubernetes | ECS/EKSのサーバーレス実行環境 |
学習コスト | 比較的低い (AWSの概念に準ずる) | 高い (Kubernetesの知識が必要) | 低い (コンテナ管理はFargateに任せられる) |
移植性 | AWSに最適化されている | マルチクラウド環境への移植性が高い | ECS/EKSのコンテナイメージを使用 |
運用負担 | ECSコントロールプレーンはAWSが管理 | EKSコントロールプレーンはAWSが管理 | サーバーのプロビジョニング・管理が不要 |
サーバー管理 | EC2インスタンスを自己管理 or Fargateを使用 | EC2インスタンスを自己管理 or Fargateを使用 | 不要 (AWSが自動で管理) |
用途 | AWSでシンプルにコンテナ運用したい場合 | Kubernetesの標準機能を利用したい、マルチクラウド対応 | コンテナアプリケーションをサーバー管理なしで動かしたい場合 |
ストレージ (データを保存する機能)
-
Amazon Simple Storage Service (S3)
オブジェクトストレージと呼ばれる種類のストレージで、無制限にデータを保存可能。
ファイル、画像、動画、バックアップ、ウェブサイトの静的コンテンツなど、あらゆる種類のファイルを保存するのに適している。非常に高い耐久性と可用性を持ち、料金は保存したデータ量とデータの取り出し量に応じて課金される。
-
Amazon Elastic Block Store (EBS)
Amazon EC2インスタンスに接続して使用する、仮想的なハードディスク(ボリューム)。
OSやアプリケーションのデータなど、EC2インスタンスが直接読み書きするデータを保存するのに使用される。EC2インスタンスが停止してもデータは残り、スナップショット機能でバックアップも容易。
-
Amazon Elastic File System (EFS)
複数のEC2インスタンスから同時にアクセスできる共有ファイルシステム。NFS (Network File System) プロトコルをサポートしており、共有ストレージとして利用可能。ウェブサーバーのコンテンツ共有、開発環境でのファイル共有、ホームディレクトリの共有などに適している。
-
Amazon S3 Glacier
非常に低コストで、長期間ほとんどアクセスしないアーカイブデータを保存するためのストレージサービス。データの取り出しには数分から数時間かかるため、即時性が求められないデータ(監査ログ、医療記録の長期保存など)に適している。
類似サービスとの比較
比較項目 | Amazon S3 | Amazon Elastic Block Store (EBS) | Amazon Elastic File System (EFS) | Amazon S3 Glacier |
---|---|---|---|---|
種類 | オブジェクトストレージ | ブロックストレージ | ファイルストレージ | オブジェクトストレージ (アーカイブ特化) |
アクセス方法 | HTTP/HTTPS (URL経由) | EC2インスタンスにマウント (OSからディスクとして認識) | EC2インスタンスからNFSでマウント (OSからファイルシステムとして認識) | HTTP/HTTPS (S3経由でアクセス、取り出し時間要) |
用途 | Webサイトの静的コンテンツ、バックアップ、データレイク | EC2のシステムディスク、データベースのデータ | 複数のEC2からのファイル共有、ホームディレクトリ | 長期保存データ、法令順守のためのアーカイブ |
複数EC2からのアクセス | 可能 | 不可 (基本1つのEC2にのみ接続) | 可能 | S3経由でアクセス |
料金 | 保存容量、リクエスト数、データ転送量 | 保存容量、I/O性能 (IOPS/スループット) | 保存容量 | 保存容量 (S3よりはるかに低コスト)、データ取り出し料金 |
取り出し時間 | 即時 | 即時 | 即時 | 数分~数時間 (取り出しオプションによる) |
データベース (データを整理して保存・取り出す機能)
-
Amazon Relational Database Service (RDS)
リレーショナルデータベース(RDBMS)を簡単にセットアップ、運用、スケールできるマネージドサービス。「MySQL」, 「PostgreSQL」, 「Oracle」, 「SQL Server」, 「MariaDB」, そしてAWS独自の「Aurora」といった主要なデータベースエンジンをサポートしている。データベースのバックアップ、パッチ適用、スケーリングといった運用タスクをAWSが管理してくれるため、データベースの管理負担を軽減したい場合に最適。
-
Amazon DynamoDB
高速で柔軟なNoSQLデータベースサービス。ミリ秒単位の応答速度で、大量のデータを処理できる。スキーマ定義が柔軟で、データ構造が頻繁に変わるアプリケーションや、ゲーム、モバイルアプリ、IoTデータなど、予測不可能なデータ量や高速なアクセスが求められる場合に適している。サーバーレスで、インフラ管理は不要。
-
Amazon ElastiCache
フルマネージド型のインメモリキャッシュサービス。RedisやMemcachedといった人気のインメモリデータストアエンジンをサポートしている。データベースへのアクセス負荷を軽減し、アプリケーションの応答速度を向上させるために使用される。高速なデータ読み書きが必要な場合(Webサイトのセッション情報、ランキングデータ、頻繁にアクセスされるデータなど)に利用される。
-
Amazon Redshift
大規模なデータウェアハウスサービス。列指向のストレージと並列処理アーキテクチャにより、ペタバイト規模のデータを高速に分析できる。ビジネスインテリジェンス(BI)ツールとの連携に優れており、大量の販売データや顧客データなどを集計・分析して意思決定に役立てる場合に適している。
類似サービスとの比較
比較項目 | Amazon RDS | Amazon DynamoDB | Amazon ElastiCache | Amazon Redshift |
---|---|---|---|---|
種類 | リレーショナルデータベース (RDBMS) | NoSQLデータベース | インメモリキャッシュ (キーバリューストア) | データウェアハウス (列指向DB) |
データ構造 | 表形式 (行と列) | 柔軟なキーバリュー、ドキュメントなど | キーと値のペア | 表形式 (分析に最適化) |
スケール | 垂直スケール、水平スケール(リードレプリカ) | 水平スケール (容量に応じて自動分散) | 水平スケール | 水平スケール (クラスターノード追加) |
得意なこと | 構造化されたトランザクションデータ、複雑なクエリ | 高速アクセス、大量データ、柔軟なスキーマ | 高速データ読み書き、DB負荷軽減 | 大量データの高速分析、レポーティング |
用途 | WebアプリケーションのバックエンドDB、業務システム | モバイルアプリ、ゲーム、IoT、リアルタイムデータ | Webサイトのセッション管理、キャッシュ | 企業データの分析、BIツール連携 |
代表的なエンジン | MySQL, PostgreSQL, Aurora など | - | Redis, Memcached | - |
ネットワーキング & コンテンツ配信 (ネットワークを繋ぐ・データを届ける機能)
-
Amazon Virtual Private Cloud (VPC)
AWSクラウド内に、お客様専用の仮想的なプライベートネットワーク空間を構築できるサービス。IPアドレス範囲の定義、サブネットの作成、ルートテーブルの設定、ネットワークゲートウェイの設置など、ネットワーク構成を細かく制御できる。セキュリティを確保し、オンプレミス環境との連携も可能。
-
Elastic Load Balancing (ELB)
複数のサーバー(EC2インスタンスなど)に対して、受信したトラフィックを自動的に分散するサービス。これにより、単一サーバーへの負荷集中を防ぎ、アプリケーションの可用性と耐障害性を向上させる。急なアクセス増加にも対応し、システムの安定稼働に貢献する。
-
Amazon Route 53
ドメインネームシステム (DNS) ウェブサービス。ウェブサイトのドメイン名 (例: example.com) を、対応するIPアドレスに変換する機能を提供する。高い可用性とスケーラビリティを持ち、ドメイン名の登録、DNSレコードの管理、トラフィックルーティングなど、Webサイトへのアクセス経路を制御するために利用される。
-
Amazon CloudFront
コンテンツデリバリーネットワーク (CDN) サービス。Webサイトのコンテンツ(画像、動画、HTMLファイルなど)を世界各地のエッジロケーション(キャッシュサーバー)にキャッシュし、ユーザーの地理的に近い場所からコンテンツを配信することで、高速なコンテンツ配信を実現する。ユーザー体験の向上と、オリジンサーバーへの負荷軽減に役立つ。
類似サービスとの比較
比較項目 | Amazon VPC | Elastic Load Balancing (ELB) | Amazon Route 53 | Amazon CloudFront |
---|---|---|---|---|
機能 | 仮想ネットワーク環境の構築 | 複数サーバーへのアクセス分散 | ドメイン名とIPアドレスの変換 (DNS) | コンテンツの高速配信 (CDN) |
役割 | ネットワーク基盤そのもの | アプリケーションの可用性と拡張性向上 | Webサイトへのアクセス経路を制御 | ユーザーへのコンテンツ配信の高速化 |
用途 | 独自のネットワーク設計、オンプレミス連携 | Webサーバーの負荷分散、高可用性 | ドメイン名の管理、トラフィックルーティング | Webコンテンツ、動画、画像の配信 |
関連サービス | EC2, RDS, LambdaなどあらゆるAWSサービス | EC2, ECS, Lambdaなど | S3, EC2, ELBなど | S3, EC2, ELBなど |
管理とガバナンス (AWS全体を管理・監視する機能)
-
AWS Management Console
ウェブブラウザからAWSのサービスを操作するためのグラフィカルユーザーインターフェース (GUI)。サービスの起動、設定変更、監視など、ほとんどのAWS操作を直感的に実行できる。
-
AWS Command Line Interface (CLI)
コマンドラインからAWSサービスを操作するためのツール。スクリプトやプログラムに組み込むことで、AWSリソースの作成、管理、監視といった作業を自動化できる。大量のリソースを一括で操作する場合や、継続的インテグレーション/デリバリー (CI/CD) パイプラインでの利用に適する。
-
AWS CloudFormation
インフラストラクチャをコードとして定義し、その定義に基づいてAWSリソースを自動的にプロビジョニング(作成)および更新できるサービス。テンプレートファイル(JSONまたはYAML形式)にインフラ構成を記述することで、再現性のある環境構築や、誤操作の防止、バージョン管理されたインフラ運用が可能になる。
-
Amazon CloudWatch
AWSリソースやアプリケーションを監視するためのサービス。CPU使用率、ネットワークトラフィック、ディスクI/Oなどのメトリクス(性能指標)を収集・可視化し、指定した閾値を超えた場合にアラームを通知する。ログの収集・分析機能も持ち、システムの稼働状況把握や問題の早期発見に不可欠。
-
AWS CloudTrail
AWSアカウント内で行われたAPI呼び出し(操作履歴)をすべて記録するサービス。誰が、いつ、どこから、どのリソースに対して、どのような操作を行ったかを詳細にログとして残す。セキュリティ監査、コンプライアンス遵守、トラブルシューティングのために重要な情報源となる。
-
AWS Identity and Access Management (IAM)
AWSリソースへのアクセスを安全に管理するためのサービス。ユーザー、グループ、ロールを作成し、それぞれに最小限の権限(パーミッション)を付与することで、セキュリティリスクを最小限に抑える。誰がどのサービスやリソースにアクセスできるかを細かく制御するために利用される。
-
AWS Organizations
複数のAWSアカウントをまとめて一元的に管理するためのサービス。アカウントの作成、グループ化、請求の一元化、サービスコントロールポリシー(SCP)による一括での権限制御などが可能。大規模な組織でのAWSアカウント管理、コスト管理、セキュリティポリシーの適用を簡素化する。
類似サービスとの比較
比較項目 | AWS CloudFormation | Amazon CloudWatch | AWS CloudTrail | AWS IAM | AWS Organizations |
---|---|---|---|---|---|
機能 | インフラのコード化、自動プロビジョニング | リソースの監視、ログ収集、アラーム | AWS API呼び出しのログ記録 | ユーザー・グループ・権限の管理 | 複数のAWSアカウントの一元管理 |
役割 | 環境構築の自動化と標準化 | パフォーマンス管理、トラブルシューティング | セキュリティ監査、変更履歴の追跡 | セキュリティ、アクセス制御 | コスト管理、セキュリティ、コンプライアンス |
用途 | 環境構築の自動化、IaC (Infrastructure as Code) | システムの稼働状況監視、問題検知 | 監査、不正アクセスの調査 | 最小権限の原則に基づくアクセス制御 | 組織内のアカウント統制、請求の一元化 |
セキュリティ、ID、コンプライアンス (セキュリティを守る機能)
-
AWS Identity and Access Management (IAM)
AWSリソースへのアクセスを安全に管理するためのサービス。ユーザー、グループ、ロールを作成し、それぞれに**最小限の権限(パーミッション)**を付与することで、セキュリティリスクを最小限に抑える。誰がどのサービスやリソースにアクセスできるかを細かく制御するために利用される。
-
AWS WAF (Web Application Firewall)
Webアプリケーションを一般的なWebの脆弱性(例: SQLインジェクション、クロスサイトスクリプティング (XSS))や、悪意のあるボット、DDoS攻撃などから保護するファイアウォール。Webアプリケーション層でのセキュリティを強化し、不正なアクセスパターンをブロックできる。
-
AWS Shield
分散型サービス拒否 (DDoS) 攻撃からAWSで実行されているアプリケーションを保護するサービス。常に稼働し、大規模なDDoS攻撃を自動的に検出・緩和する。StandardとAdvancedの2つのティアがあり、Advancedではより高度な保護やDDoS対応チームへのアクセスが可能。
-
Amazon GuardDuty
AWSアカウントとワークロードにおける悪意のあるアクティビティや不正な動作を継続的に監視・検出する脅威検出サービス。S3、CloudTrail、VPC Flow Logsなどのデータソースを分析し、異常なAPI呼び出し、未知のIPアドレスからのアクセス、ポートスキャンなどの脅威を特定し、アラートを生成する。
類似サービスとの比較
比較項目 | AWS IAM | AWS WAF | AWS Shield | Amazon GuardDuty |
---|---|---|---|---|
機能 | ユーザー・グループ・権限の管理 | Webアプリケーションの保護 | DDoS攻撃からの保護 | 脅威検出、不正なアクティビティの監視 |
役割 | アクセス制御、認証・認可 | Webアプリケーション層での攻撃防御 | 大規模DDoS攻撃に対する防御 | 不審な挙動の検知、アラート |
用途 | 最小権限の原則に基づくアクセス制御 | SQLインジェクション、XSSなどのWeb攻撃対策 | 大規模なサービス妨害攻撃からの防御 | 不正アクセス、アカウント侵害、マルウェア感染の早期検知 |
防御レイヤー | 認証・認可 (APIレベル) | Webアプリケーション層 (レイヤー7) | ネットワーク層 (レイヤー3/4) およびアプリケーション層 | アカウント、ネットワーク、データレイヤー |
分析 (データを分析する機能)
-
Amazon Kinesis
ストリーミングデータをリアルタイムで収集、処理、分析するためのサービス群。IoTデバイスからのデータ、Webクリックストリーム、アプリケーションログなど、大量かつ継続的に生成されるデータをリアルタイムで取り込み、分析、可視化する。
-
Amazon Athena
Amazon S3に保存されたデータに対して、標準SQLを使用して直接クエリを実行できるインタラクティブなクエリサービス。データをロードしたりETL(抽出・変換・ロード)したりする必要がなく、S3上のログファイルやデータレイクのデータを手軽に分析したい場合に最適。利用したクエリのデータ量に応じて課金される。
-
Amazon Elastic MapReduce (EMR)
ビッグデータフレームワーク(Apache Spark, Hadoop, Presto, Hiveなど)を簡単に実行できるマネージドサービス。大量のデータを並行処理するバッチ処理や、機械学習、データ変換(ETL)など、複雑で大規模なデータ処理に適する。クラスターのプロビジョニングや管理をAWSが簡素化する。
類似サービスとの比較
比較項目 | Amazon Kinesis | Amazon Athena | Amazon EMR | Amazon Redshift (再掲) |
---|---|---|---|---|
機能 | リアルタイムデータ処理 | S3上のデータに対するSQLクエリ | ビッグデータ処理 (Hadoop, Spark) | 大規模データウェアハウス (分析) |
データ源 | ストリーミングデータ (継続的に発生) | S3に保存されたファイルデータ | HDFS, S3, DynamoDBなど、多様なデータ源 | 多様なデータ源から取り込んだデータ |
得意なこと | リアルタイム分析、ストリーミングETL | アドホッククエリ (都度分析) | 大規模なバッチ処理、複雑なデータ変換 | 大量データの高速分析、BI |
用途 | リアルタイム監視、異常検知、データパイプライン | S3上のログ分析、データレイクからの探索的分析 | 機械学習データ処理、ETL、ログ処理 | 企業データの集計・分析、レポーティング |
サーバー管理 | 不要 (サーバーレス) | 不要 (サーバーレス) | クラスターの管理が必要 (マネージドHadoop) | 不要 (マネージドDB) |
アプリケーション統合 (サービス間連携を助ける機能)
-
Amazon Simple Queue Service (SQS)
フルマネージド型のメッセージキューサービス。アプリケーションのコンポーネント間でメッセージを送信、保存、受信できるようにする。これにより、各コンポーネントが直接通信するのではなく、キューを介して非同期に連携できるようになり、システムの疎結合化とスケーラビリティ、耐障害性が向上する。
-
Amazon Simple Notification Service (SNS)
フルマネージド型のパブリッシュ/サブスクライブ(Pub/Sub)メッセージングサービス。特定のトピックにメッセージをパブリッシュすると、そのトピックをサブスクライブしているすべてのエンドポイント(例: Lambda関数、SQSキュー、Eメール、HTTPエンドポイント、モバイルプッシュ通知)にメッセージがプッシュ配信される。多数の宛先への通知や、ファンアウト型アーキテクチャに適する。
-
AWS Step Functions
複数のAWSサービスを組み合わせたワークフローを簡単に構築・可視化・オーケストレーションできるサーバーレスサービス。例えば、Lambda関数、EC2インスタンス、Glueジョブなどを組み合わせて、データ処理パイプラインやビジネスプロセスを定義できる。各ステップの状態を管理し、エラー処理や再試行も組み込めるため、複雑な分散アプリケーションの開発と運用を簡素化する。
類似サービスとの比較:
比較項目 | Amazon SQS | Amazon SNS | AWS Step Functions |
---|---|---|---|
機能 | メッセージキュー (非同期通信) | Pub/Subメッセージング (通知) | 分散アプリケーションのワークフロー構築 |
通信モデル | プル型 (コンシューマがキューからメッセージ取得) | プッシュ型 (サブスクライバーにメッセージを送信) | サービスオーケストレーション、状態管理 |
メッセージの永続性 | キューに一定期間保存 (最大14日) | メッセージは一時的 (すぐに送信される) | ワークフローの状態として保持 |
受信者数 | 1つのコンシューマグループが処理 | 多数のサブスクライバーへ同時配信 | ワークフローの各ステップで指定されたサービス |
主な用途 | 非同期処理、タスクキュー、負荷平準化 | イベント通知、モバイルプッシュ通知、ファンアウト | 複雑なビジネスプロセス、長時間のワークフロー |
デベロッパーツール (開発を助ける機能)
-
AWS CodeCommit
Gitリポジトリをホストするフルマネージド型のソースコード管理サービス。プライベートなリポジトリを作成し、コードの変更履歴を追跡したり、チームでの共同開発をサポートしたりする。GitHubやBitbucketのような外部のGitサービスと同じように利用できるが、AWS環境に統合されている点が特徴。
-
AWS CodeBuild
ソースコードをコンパイルし、テストを実行し、デプロイ可能な成果物(ビルド成果物)を生成するフルマネージド型のビルドサービス。ビルドサーバーのセットアップやスケーリングが不要で、コードの品質チェックやアプリケーションの準備プロセスを自動化できる。
-
AWS CodeDeploy
開発したアプリケーションをAmazon EC2、AWS Lambda、Amazon ECSなどの様々なコンピューティングサービスに自動でデプロイ(展開)するサービス。複雑なデプロイプロセスを自動化し、エラーのリスクを減らし、デプロイのスピードと信頼性を向上させる。
-
AWS CodePipeline
ソフトウェアのリリースプロセス(継続的デリバリー)を自動化するためのフルマネージドサービス。ソースコードの変更を検知すると、ビルド、テスト、デプロイといった一連のステップを自動的に実行する「パイプライン」を構築できる。開発から本番環境へのリリースまでのワークフローを完全に自動化し、迅速なデプロイを実現する。
類似サービスとの比較:
比較項目 | AWS CodeCommit | AWS CodeBuild | AWS CodeDeploy | AWS CodePipeline |
---|---|---|---|---|
機能 | ソースコード管理 (Gitリポジトリ) | ソースコードのビルド、テスト | アプリケーションのデプロイ | CI/CDパイプラインの自動化 |
役割 | コードのバージョン管理、チーム開発 | コードのコンパイル、依存関係の解決 | アプリケーションをサーバーに展開 | 開発からデプロイまでの一連の流れを自動化 |
用途 | コードの保存、変更履歴の追跡 | アプリケーションのビルド、単体テスト | EC2, Lambda, ECSなどへのアプリケーション展開 | 自動テスト、自動デプロイ、迅速なリリース |
関連サービス | CodeBuild, CodePipeline | CodeCommit, CodePipeline | EC2, Lambda, ECS, CodePipeline | CodeCommit, CodeBuild, CodeDeployなど |