PERSON LINK BLOG

Web技術

AWSでクラウドなWeb開発入門 – AWSの各サービスの概要

LINEで送る
Pocket

こんにちは。プログラマーの石井です。
今日はAWS(AmazonWebServices)についてご紹介します。

AWSはAmazonが提供するクラウドサービスです。
Webサービスの開発・運用によく使われてますので、Web業界で仕事をするとAWSを利用する機会が多いです。

AWS SDK というシステム開発キットが多くのプログラミング言語向けに提供されており、AWSの多様なサービスと連携したWebサービスを容易に開発できます。

Web開発・運用には、以下のようなAWSサービスがよく使われています。

仮想サーバー EC2 ( Elastic Compute Cloud )

EC2は、クラウド上にサーバーを立てることができるサービスです。

OSの種類を選ぶことができ、AmazonLinux , Red Hat Enterprise Linux , Windows Server 2016 , SUSE Linux , Ubuntu などから選択できます。
デフォルトではAmazonLinuxが選択されます。

仮想サーバーなので、サーバースペックを自由に変更することができます。
サーバーを立ち上げると自動でドメインとパブリックIPが割り振られ、SSHでログインが可能となります。

database_amazonrds
データベース RDS ( Relational Database Service )

Webサービス開発ではデータベースの利用場面が多いです。
Amazon RDSは、クラウド上にデータベース・サーバを立てることができます。こちらもDBサーバのスペックを簡単にスケールアップ・スケールダウンできます。

データベースの種類は、Amazon Aurora、MySQL、MariaDB、Oracle、Microsoft SQL Server、PostgreSQL の6つの中から選択できます。

自分でデータベースをサーバーにインストールする手間がなく、管理画面からわずか数分で起動できます。

また、自動バックアップやMulti-AZという冗長構成の機能がそろっています。

クラウドストレージ S3 ( Simple Storage Service )

Webサービス開発では、画像データや動画データなど、容量の大きなデータを蓄積する場所があると便利です。
EC2のサーバー内に保存してもよいのですが、それよりもS3を利用したほうが、より高速かつ柔軟にデータを管理できます。

S3に置いたファイルは、Web上で簡単にアクセスすることができます。
AWSのCloudFrontというサービスと連携することで、キャッシュを利用して高速にアクセスすることも可能です。

goofysというツールを使うことで、EC2サーバーにS3をマウントして、サーバー内にS3が存在するかのように扱うこともできます。

その他のサービス

そのほかにも、以下のようなAWSのサービスがWeb開発では利用されています。
    CloudFront : コンテンツ配信ネットワークサービスです。キャッシュサーバーとして利用でき、ウェブサイトの画像や動画ファイルの読み込み時間を短縮できます。S3と連携して、S3上の画像や動画ファイルに高速アクセスすることが可能になります。
    Cognito : Webサイトやアプリで使われるユーザ管理・認証機能を提供します。 FacebookやTwitterなどのSNSアカウントによる認証機能も実現できます。
    DynamoDB : NoSQLデータベースを提供するサービスです。スキーマレスなので自由なカラム定義が行えます。
    CloudSearch : Webサイトやアプリに使われる全文検索機能を提供するサービスです。DynamoDBと連携して、DynamoDB内のデータを検索することもできます。
    ELB ( Elastic Load Balancing ) : トラフィックを複数のEC2インスタンスに分散します。サイトのアクセスが重くなりすぎないように負荷分散できます。
    EMR ( Elastic MapReduce ) : Hadoop、Sparkなどを使った大規模データの分散処理をするためのサービスです。一時的に複数のクラスターインスタンスを立ち上げて、高速処理を行うことができます。
    Redshift : データウェアハウスといって、大規模なデータを蓄積するためのサービスです。
    IAM : AWSの各サービスをシステムから利用する際のアクセスキーやアクセス権限の管理に使われます。AWSを利用してプログラムを開発する際は必ず利用することになるでしょう。
    Lambda : コードの実行を代行してくれるサービスです。EC2などのサーバーを用意しなくても、Lambdaにコードをアップロードするだけで、特定のイベント発生時にそのコードを実行してくれます。S3バケットやDynamoDBのデータ変更などのイベントに対応してコードを実行できます。Node.js、Java、Pythonのコードを動かすことができます。

まとめ

Web業界にいるとAWSに触れる機会は多いと思います。

AWSのサービスは数が豊富で、すべてのサービスがどのような役割を果たすのかを把握するのは大変です。

今回、全67個あるサービスの中から、僕がWeb業界で働く中でよく触れたAWSサービスをピックアップしました。

これを機会に、サービス名と役割を覚えて興味を持っていただければ幸いです。

ハカセ

ハカセ

出○を超えたMr.Why?千葉県出身の25歳コンビのハカセっぽい方。 趣味はもちろんプログラミング! 常に物事に対して論理思考で考えちゃう、Why? JavaScriptで音楽アプリを作ることが好き。