AWS TRAINING COURSE
---LESSON 03---

個別のサービスを理解するために
サービスカテゴリーから理解する

クラウドを利用する人はインフラエンジニアが多く、アプリケーションエンジニアの利用は増え始めているという状況だ。AWSには200以上のサービスがあり、それらを活用することでアプリケーションエンジニアも効果的にシステムを構築できる。今回はAWSの個別のサービスを理解するにあたり、サービスのカテゴリーについて解説する。

AWSには豊富なカテゴリーがあり
さまざまなユースケースで利用できる

講師:
アマゾン ウェブ サービス ジャパン
パートナーソリューションアーキテクト
宇賀神みずき氏

 講師を担当するAWSジャパンの宇賀神です。前職ではアプリケーションエンジニアとして、Javaを使ったシステム開発をしていました。今後のレッスンではAWSが提供する個別のサービスを理解するために、AWSサービスのカテゴリーについて解説します。

 AWSのサービスは「コンピューティング、ストレージ、データベース、ネットワーキングとコンテンツ配信、機械学習、IoT、コンテナ、サーバーレス、セキュリティ、デベロッパーツールなど、26種類のカテゴリーに分けられており幅広い用途で利用できます。全てのカテゴリーはこちらのサイト(https://aws.amazon.com/jp/products/)を参照してください。

 ここでは代表的なサービスカテゴリーをピックアップし、各カテゴリーの主要なサービスを紹介します。たくさんのサービス名が出てきますが、代表的なサービスは今後のレッスンで改めて紹介するので、今回はざっくりと概要を理解してください。

クラウド内の仮想サーバーに
独自のアプリケーションを構築

 まず中核となるカテゴリーがコンピューティングです。コンピューティングにはクラウド内の仮想サーバーである「Amazon Elastic Compute Cloud」(Amazon EC2)や、バッチジョブを実行できる「AWS Batch」、Webアプリの実行と管理ができる「AWS Elastic Beanstalk」などが含まれます。

 特にAmazon EC2はAWSの代表的なサービスであり、CPUやメモリー、ネットワークキャパシティなどが異なる数多くのインスタンスがあるので、さまざまなユースケースで利用できます。さらに2020年11月よりAmazon EC2でmacOSも利用できるようになりました。サーバーに電源やネットワークを引いたり、OSを導入したりといったオンプレミスでのユーザーの負担が、Amazon EC2を利用することで解消できます。

 ネットワークとコンテンツ配信では仮想ネットワークである「Amazon Virtual Private Cloud」(Amazon VPC)、スケーラブルなDNSである「Amazon Route 53」、ロードバランサーの「Elastic Load Balancing」などがあります。

 Amazon VPCによって論理的に分離された仮想ネットワークを作ることができ、Amazon VPC内で構築したシステムをインターネットに公開するか否かを設定したり、専用線でオンプレミスの環境と接続したりするなど、柔軟にカスタマイズできます。

 ストレージには「Amazon Simple Storage Service」(Amazon S3)、「Amazon Elastic Block Store」(Amazon EBS)などが含まれます。Amazon S3もAmazon EC2と同様、AWSの代表的なサービスです。ファイルをオブジェクトという概念で管理し、APIを使ってファイルの保存や取得を行います。99.999999999%のデータ耐久性を実現するように設計されており、世界中の企業のデータを保存しています。

 Amazon EBSはAmazon EC2と共に利用するために設計されたブロックストレージサービスです。例えばデータベースを動かすためにAmazon EC2を作成してデータはAmazon EBSのストレージに保存するといった構成で利用できます。内部で冗長化されているため高い可用性と耐久性を持ち、ミッションクリティカルなシステムにも適しています。

マネージドサービスにより
管理・運用の作業負担を軽減

 データベースの分類では用途に合わせてさまざまなサービスを提供しています。AWSでは「Purpose Built」という考え方があり、適材適所で目的に応じてサービスを選択できます。具体的にはリレーショナルデータベースが使える「Amazon RDS」や「Amazon Aurora」、キーバリューストアの「Amazon DynamoDB」、インメモリーDBの「Amazon ElastiCache」などがあります。

 先ほどAmazon EC2とAmazon EBSを利用して仮想サーバーにデータベースを構築できるとお伝えしましたが、例えばAmazon RDSではデータベースのインストールやバックアップなどの作業をAWSが運用・管理するので、構築作業や運用の手間を軽減できます。このようなサービスを「マネージドサービス」と呼びます。

サーバーレスなサービスで
開発をさらに高速化する

 サーバーレスなサービスにはアプリケーションコードを実行できる「AWS Lambda」、APIの構築・デプロイ・管理のための「Amazon API Gateway」、Eメールの送信やモバイルプッシュ通知・SMSを送信できる「Amazon Simple Notification Service」(Amazon SNS)などが含まれます。

 サーバーレスとはサーバーを意識することなくサービスをご利用できるという考え方であり、開発者はアプリケーションの作成に注力できます。サーバーレスサービスを利用することで、構築・運用の作業をさらに軽減できます。管理・運用の作業負担の比較を別掲の図で示しました。

 そのほかにも例えば機械学習のカテゴリーがあり、画像解析やテキスト抽出、音声認識などのサービスを提供しています。AWSのサービスを活用することで開発スピードが上がり、開発や運用にかかる手間も軽減できます。今後のレッスンではそれぞれのカテゴリーの個別のサービスについて深堀りして学んでいきましょう。