Amazon Web Servicesの仮想サーバEC2でLinuxサーバを構築してみよう

CodeZine / 2014年6月4日 14時0分

インスタンスの確認

 本連載は、IT業界に入ったばかりの新米アプリケーション開発者や、IT業界を目指す学生さんを対象とした、クラウドによるシステム構築講座です。Amazon Web Servicesを使ってクラウドシステム上に簡単なWebシステムを構築していきます。前回は、クラウドとはどのようなものかについてご紹介しました。本記事では、米Amazon社が提供するクラウドサービスであるAmazon Web Servicesの紹介と、仮想サーバサービスを使ってLinuxサーバを構築する手順をご紹介します。

■対象読者

 本記事は、次の方を対象にしています。

クラウドシステムがはじめての人 簡単なWebシステムのプログラミングを行ったことがある人 システム基盤について勉強したいと思っている人 ■Amazon Web Servicesとは?

 Amazon Web Services社が提供するクラウドサービスである「Amazon Web Services」(以降AWS)の主な特徴と、提供サービスについて説明します。

 

●AWSの主要なサービス

 AWSの最大の特徴は、提供されるクラウドサービスの豊富さとスピードにあります。特に、IaaSサービスに関しては他のクラウドベンダーを圧倒しているといっても過言ではありません。また、2011年に日本国内にデータセンター(東京リージョン)が稼働しました。企業システムでの実績も多く、コミュニティ活動も活発で、日本語によるノウハウが蓄積されています。

 ただし、提供サービスが豊富であるがゆえ、初心者には何をどのように使えば良いかが分かりづらくなっています。

 企業システムでよく使われている代表的なサービスは次のとおりです。

AWSの代表的なサービス(コンピューティング) 分類/サービス名 説明 Amazon Elastic Compute Cloud
(EC2) 従量課金制の仮想サーバ機能。
企業システムでのWindowsサーバやUnixサーバのこと。
サーバ1台のことを「インスタンス」と呼ぶ Auto Scaling サーバ(EC2)を負荷に応じて増強または縮小するサービス Elastic Load Balancing トラフィックを複数のサーバ(EC2)に負荷分散するサービス AWSの代表的なサービス(ネットワーク) 分類/サービス名 説明 Amazon Route 53 ドメインネームシステム(DNS)を提供するサービス Amazon Virtual Private
Cloud(VPC) AWSの中でプライベートなネットワークを構築するサービス。
社内LANセグメント/非武装地帯(DMZ)(※1)セグメントのような分割ができる AWSの代表的なサービス(データベース/ストレージ) 分類/サービス名 説明 Amazon Relational Database
Service(RDS) リレーショナルデータベース(RDBMS)を構築/運用/拡張するサービス Amazon DynamoDB NoSQLデータベースサービスを構築/運用/拡張するサービス Amazon Simple Storage Service(S3) 冗長化されたデータストレージサービス。
企業システムでのファイルサーバのようなもの Amazon Glacier 低コストストレージサービス。
データのバックアップやアーカイブなどに利用 Amazon Elastic Block Store(EBS) サーバ(EC2)のデータを保持するストレージサービス。
EC2のハードディスクのような役割 AWSの代表的なサービス(デプロイ&マネジメント) 分類/サービス名 説明 AWS Identity and Access
Management(IAM) 認証を行うサービス。アクセスコントロールができる Amazon CloudWatch サーバ(EC2)などのAWSリソースを監視するためのサービス AWS Elastic Beanstalk アプリケーションの自動デプロイサービス。
サイジング/負荷分散/Auto Scaling/アプリケーション監視を自動で行う※1
 一般的な企業システムでは、社内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サーバの負荷に合わせて自動でサーバを増強してくれます。

Eclipseを使ったJavaによるWebシステム開発の例(Elastic Beanstalk)


 このほかにも、AWSにはSNSやメールとの連携やストリーミング配信などのサービスもあり、かなりのスピートでさまざまな新サービスが提供されています。



CodeZine

トピックスRSS

ランキング