1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【初心者向け/AWS】基本サービスまとめ コンピューティング系

1
Posted at

概要

AWSのサービスはコンピューティング系のサービスだけでも種類が多く、覚えづらいので各サービスごとに主な特徴や用途をまとめました。
AWS CLFを受験しようとしている方、AWS初学者の方のご参考になれば幸いです。

目次

  • Amazon EC2
  • Amazon Lightsail
  • AWS Lambda
  • AWS Elastic Beanstalk
  • Amazon ECS
  • Amazon EKS
  • AWS Fargate
  • Amazon ECR
  • まとめ

Amazon EC2 (Amazon Elastic Compute Cloud)

ソフトウェアをインストールするなど、カスタマイズが自由に行える仮想サーバ(IaaS)。
オンプレミスと同等の機能を持つサーバを低コストで導入できる。

特徴

①CPU・メモリ・ストレージ・ネットワーク性能を選択可能(インスタンスタイプ)。

②任意のOS(Linux、Windowsなど)を選択できる。

③起動・停止・再起動をユーザーが制御。

④長時間稼働や独自構成に向く。

⑤無料利用枠がある

EC2がおすすめな人

・サーバの設定やOSを細かく制御したい
・アプリやシステムがコンテナやサーバレスに向いていない
・長時間稼働するシステムを運用したい
・高度なネットワークやセキュリティ設定を適用したい

Amazon Lightsail

初心者向けの簡易サーバ構築サービス。
WebサイトやWebアプリケーションを動作させるために最低限必要な機能のパッケージを月額固定料金で利用できる。

特徴

①料金が固定で分かりやすい。

②WordPress、LAMPなどのプリセットあり。

③EC2ほど細かい設定はできないが、シンプルで使いやすい。

Amazon Lightsailがおすすめな人

・AWSを初めて使う
・小規模なWebサイトやアプリを運用したい
・コストを分かりやすくしたい
・ネットワークやセキュリティを簡単にしたい
・大規模なAWS機能を使う予定がない(EC2への移行が比較的容易)

AWS Lambda(サーバレスコンピューティング)

サーバを意識せずにコードを実行できるサービス。

特徴

①イベント駆動型で、必要なときだけ起動。

②課金は実行時間とリソース消費に応じて発生(EC2のように常時起動不要)。

③サーバの運用・管理はAWS側が行う

AWS Lambdaがおすすめな人

・サーバ管理をしたくない(コードだけ書きたい)
・イベント駆動の処理が多い
・スケーリングを自動化したい
・短時間で終わる処理を頻繁に実行する(Lambdaは1回の実行で最長15分)
※長時間バッチには不向き

AWS Elastic Beanstalk

アプリケーションが動作する環境のデプロイを自動化してくれるサービス。

特徴

①アプリケーションコードをアップロードすると、自動でEC2やロードバランサなどを構築。

②サーバやOSの設定はAWSに任せられる。
※ただし、EC2やRDSを裏で起動するのでコストは高めになる

AWS Elastic Beanstalkがおすすめな人

・インフラ管理は最小限にしたいが、完全サーバレスは避けたい
・WebアプリやAPIを簡単にデプロイしたい
・自動スケーリングとロードバランサーを簡単に使いたい
・本番環境と開発環境を簡単に分けたい
・ミドルウェアやOSを自分で構築したくない

コンテナサービス

コンテナとは

アプリケーションとその実行に必要なライブラリ・設定・依存関係を軽量なパッケージ(コンテナイメージ)としてまとめ、どこでも同じ環境で実行できる仕組みのこと。

VM(仮想マシン)との大きな違いとして、VMがOSごと仮想化しているので起動が重い・時間がかかるのに対し、コンテナは基本的にホストOSを共有し、必要なアプリだけ分離しているので、軽量で起動が速いという利点があります。

VM(仮想マシン)とコンテナの違い

項目 仮想マシン(VM / EC2) コンテナサービス(ECS / EKS / Fargate)
実行単位 OSごとの仮想マシン アプリ+ライブラリ+設定の軽量コンテナ
OSの管理 必須(アップデート、パッチ適用など) 不要(Fargateなどサーバレスでは特に不要)
起動時間 数分かかることもある 秒単位で起動可能
リソース効率 低め(OSごとにリソースを消費) 高め(ホストOSを共有)
スケーリング 手動またはAuto Scalingを設定 自動スケーリングが容易(タスク単位で管理)
移植性 OSや環境依存がある 高い(どこでも同じコンテナイメージで動作)
用途例 Webサーバ、DB、レガシーアプリ マイクロサービス、API、バッチ処理、イベント駆動アプリ
課金方式 インスタンス時間に応じた従量課金 コンテナ実行時間やリソース単位で課金(Fargateはサーバ管理不要)
運用負荷 高い(OS、ミドルウェア、セキュリティ管理) 低い(特にFargateはインフラ管理不要)

Dockerとは

アプリケーションをコンテナとしてパッケージ化・配布・実行できるプラットフォーム。
重要な点として、Docker自体はコンテナサービスではなく、「コンテナを作る・管理するためのプラットフォーム」であることを覚えておきましょう。

Amazon ECS(Amazon Elastic Container Service)

AWSが提供するDockerコンテナのオーケストレーションサービス。
オーケストレーションとは、複数のシステムやサービスを連携させて動かし、複雑なタスクや業務の流れ(ワークフロー)を自動化する仕組みのことです。
Amazon ECSを使うことで、コンテナを効率的に管理・スケーリングし、EC2やFargate上で動かすことができます。

特徴

①Dockerコンテナに対応しており、Dockerイメージを登録・実行可能

②複数のEC2インスタンスやFargateタスクをまとめて管理できる

③柔軟な実行環境を提供する

④Kubernetesほど複雑ではなく、AWSネイティブでシンプル

Amazon ECSがおすすめな人

・コンテナを使ったアプリをAWS上で運用したい
・Kubernetesほど複雑な管理は不要だが、コンテナを複数まとめて管理したい
・自動スケーリングや可用性を簡単に確保したい

Amazon EKS(Elastic Kubernetes Service)

AWSが提供するマネージド型のKubernetesサービス。
Kubernetesとは、コンテナを大規模に管理・運用するためのプラットフォームのことで、簡単に言うと、「大量のコンテナを効率よく配置・スケール・監視するための自動管理システム」です。

Amazon EKSを使うことで、Kubernetesの複雑なクラスタ管理をAWSが代行してくれるので、ユーザーはアプリケーションのデプロイやスケーリングに集中できます。

特徴

①Kubernetesと互換性があり、標準的なKubernetes APIをそのまま利用可能

②ECSよりも運用が複雑

③マスターコンポーネント(APIサーバ、コントローラマネージャなど)はAWSが管理

④マルチAZで制御プレーンを冗長化、ワーカーノードも複数AZに分散可能

⑤IAM、ALB、CloudWatch、VPCなどのAWSネイティブサービスと簡単に連携できる

⑥Cluster AutoscalerやHorizontal Pod Autoscalerで自動スケール可能

Amazon EKSがおすすめな人

・Kubernetesを使いたい
・大規模なコンテナ・マイクロサービスを運用したい
・Kubernetesの複雑な管理をAWSに任せたい
・マルチクラウドやハイブリッド環境を想定している(Kubernetesは他環境への移行が比較的容易)
・AWSで高度な設定を行う

AWS Fargate

AWSが提供するサーバレスコンテナ実行サービス。
ECSやEKSと連携して、サーバやクラスタの管理なしでコンテナを動かすことができます。

特徴

①サーバレス(EC2の管理やプロビジョニング・インフラ管理が不要)

②ECSタスクやEKSのPodをそのままFargateで実行可能
※ECS/EKSのタスク/Podを動かす実行環境の一つであり、単独では使えない

③タスク単位で自動スケール、負荷に応じて自動でコンテナ起動

④AWSのマルチAZ上で自動的に冗長化される

AWS Fargateがおすすめな人

・サーバ管理を避けたい
・短時間・断続的な処理を実行したい
・自動スケーリングを簡単に使いたい
・ECS/EKSをそのまま使いたい

Amazon ECR(Elastic Container Registry)

AWSが提供するDockerコンテナイメージ用のプライベートレジストリ。

コンテナイメージとは、アプリケーションを実行するために必要なものをすべてまとめた「設計図」のようなファイルです。
このイメージをもとにコンテナを作成(起動)することで、どこでも同じ環境でアプリを動かせます。

Amazon ECRを使うことで、コンテナイメージの保存や管理、配布をAWS上で安全に行うことができます。

特徴

①DockerイメージやOCIイメージを保存・管理可能

②ECS、EKS、Fargateと連携して簡単にデプロイ可能

③IAMでアクセス制御、暗号化(KMS)対応

④AWSのマルチAZで冗長化、耐障害性が高い

⑤タグ付けによりイメージのバージョン管理が可能

⑥プライベートだけでなくパブリックレジストリもサポート

Amazon ECRがおすすめな人

・ECS、EKS、Fargateでコンテナイメージを簡単にデプロイしたい
・機密データを含むコンテナを安全に保存したい
・自動スケーリングを簡単に使いたい
・Docker Hubや他のレジストリを使わずAWS内で完結させたい

各コンピューティングサービスの違いまとめ

サービス名 主な特徴 主な用途
Amazon EC2 仮想サーバーを柔軟に構築可能。OSやミドルウェアの選択が自由。従量課金制。 Webサーバー、アプリサーバー、DBサーバーなど、カスタマイズ性が必要なシステム
Amazon Lightsail EC2より簡単なUIでVPS感覚。月額料金プランあり。 小規模Webサイト、ブログ、個人開発アプリ
AWS Lambda サーバーレスでコード実行。イベント駆動。インフラ管理不要。 バックエンドAPI、バッチ処理、サーバレスアプリ、IoT処理
AWS Elastic Beanstalk アプリケーションを自動デプロイ&スケーリング。PaaSに近い。 Webアプリ、APIサーバーを簡単デプロイ
Amazon ECS Dockerコンテナをオーケストレーション。AWS独自の仕組み。 コンテナ化アプリの管理・運用
Amazon EKS Kubernetesマネージドサービス。ECSよりKubernetes標準に準拠。 Kubernetesでの大規模コンテナ運用
AWS Fargate ECSやEKSのコンテナをサーバーレスで実行。EC2管理不要。 サーバレスでのコンテナ運用
Amazon ECR Dockerイメージのプライベートレジストリ。 コンテナイメージの保存・管理

まとめ

「どんな時にどのサービスを使うのか」を意識すると、個人的には覚えやすいように思います。
ご参考になれば幸いです。

1
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?