対象読者
本記事は、次の方を対象にしています。
- クラウドシステムがはじめての人
- 簡単なWebシステムのプログラミングを行ったことがある人
- システム基盤について勉強したいと思っている人
Amazon Web Servicesとは?
Amazon Web Services社が提供するクラウドサービスである「Amazon Web Services」(以降AWS)の主な特徴と、提供サービスについて説明します。
AWSの主要なサービス
AWSの最大の特徴は、提供されるクラウドサービスの豊富さとスピードにあります。特に、IaaSサービスに関しては他のクラウドベンダーを圧倒しているといっても過言ではありません。また、2011年に日本国内にデータセンター(東京リージョン)が稼働しました。企業システムでの実績も多く、コミュニティ活動も活発で、日本語によるノウハウが蓄積されています。
ただし、提供サービスが豊富であるがゆえ、初心者には何をどのように使えば良いかが分かりづらくなっています。
企業システムでよく使われている代表的なサービスは次のとおりです。
分類/サービス名 | 説明 |
---|---|
Amazon Elastic Compute Cloud (EC2) |
従量課金制の仮想サーバ機能。 企業システムでのWindowsサーバやUnixサーバのこと。 サーバ1台のことを「インスタンス」と呼ぶ |
Auto Scaling | サーバ(EC2)を負荷に応じて増強または縮小するサービス |
Elastic Load Balancing | トラフィックを複数のサーバ(EC2)に負荷分散するサービス |
分類/サービス名 | 説明 |
---|---|
Amazon Route 53 | ドメインネームシステム(DNS)を提供するサービス |
Amazon Virtual Private Cloud(VPC) |
AWSの中でプライベートなネットワークを構築するサービス。 社内LANセグメント/非武装地帯(DMZ)(※1)セグメントのような分割ができる |
分類/サービス名 | 説明 |
---|---|
Amazon Relational Database Service(RDS) |
リレーショナルデータベース(RDBMS)を構築/運用/拡張するサービス |
Amazon DynamoDB | NoSQLデータベースサービスを構築/運用/拡張するサービス |
Amazon Simple Storage Service(S3) |
冗長化されたデータストレージサービス。 企業システムでのファイルサーバのようなもの |
Amazon Glacier |
低コストストレージサービス。 データのバックアップやアーカイブなどに利用 |
Amazon Elastic Block Store(EBS) |
サーバ(EC2)のデータを保持するストレージサービス。 EC2のハードディスクのような役割 |
分類/サービス名 | 説明 |
---|---|
AWS Identity and Access Management(IAM) |
認証を行うサービス。アクセスコントロールができる |
Amazon CloudWatch | サーバ(EC2)などのAWSリソースを監視するためのサービス |
AWS Elastic Beanstalk |
アプリケーションの自動デプロイサービス。 サイジング/負荷分散/Auto Scaling/アプリケーション監視を自動で行う |
一般的な企業システムでは、社内LANセグメントに顧客情報などの重要なデータを保持するデータベースサーバなどを配置し、非武装地帯(DMZ)セグメントには、メールサーバやHTTPサーバ/Webプロキシサーバなど外部ネットワークと接続するサーバ群を配置します。両者のセグメントを分割し、ファイアウォールを配置することで、セキュリティ要件に応じた制御をしています。
コンピューティング
クラウド上のサーバ機能を提供します。サーバの仮想化技術を使っているEC2を中心にして、トラフィックに応じてロードバランサで負荷分散させたり、リソースを自動で増強または縮小したりできます。Webシステムにおける急激な負荷増大にも柔軟に対応できます。また、システムをまるごと複製することができるので、同一構成のサーバを物理的に離れた別の場所(リージョンと呼びます)に作成が可能です。
ネットワーク
ネットワークを構築するためのサービスを提供します。Route 53は、ドメイン名とIPアドレスを対応付けるDNSシステムを構築するためのサービスです。負荷分散技術であるDNSラウンドロビンにも対応しています。VPCは、AWS内にプライベートネットワークを構築するためのサービスです。
データベース
クラウド上の仮想データベースの機能を提供します。My SQL/Oracle/SQL Server/PostgreSQLなどのRDBMSだけでなく、ビッグデータなどで利用されるNoSQLも利用できます。
ストレージ
データを保存しておくためのサービスを提供します。S3はバケットと呼ばれる単位でファイルを格納します。静的なコンテンツWebサーバ(HTTPサーバ)として公開することもできますし、企業システムでのファイルサーバのような使い方も可能です。Glacierは低価格で利用できるストレージサービスで、バックアップやアーカイブなどの用途に適しています。オンプレミスで利用していた磁気テープのような使い方が適しています。
デプロイとマネジメント
IAMはAWSでの認証機能を提供します。ユーザ認証だけでなく、グループによるアクセスコントロールを行ったり、既存のMicrosoft Active Directoryなどのアカウント管理システムと連携したりできます。また、AWSの提供するPaaSサービスであるElastic Beanstalkは、.NET/PHP/Python/Ruby/Node.jsで開発したアプリケーションを自動でAWSにデプロイできます。例えば、Javaの場合、EclipseにAWS Toolkit for Eclipseを導入し、開発したWebアプリをデプロイするとApache Tomcatが起動したEC2サーバに配置され、数分以内でサービスを提供することができます。また、名前のとおり(Beanstalk=豆の茎)のように、Webサーバの負荷に合わせて自動でサーバを増強してくれます。
このほかにも、AWSにはSNSやメールとの連携やストリーミング配信などのサービスもあり、かなりのスピートでさまざまな新サービスが提供されています。