【ITコラム】今更聞けない、AWSとは?よく使うサービス5つを紹介

新年明けましておめでとうございます。IT事業本部の244でございます。2020年になりましたが、皆さん元気にコーディングしてますかー?今年も楽しくコーディングができる1年にしていきましょうね!

今回はIT業界で働く人なら1度は必ず聞いたことがあるであろう、AWSについてすごーく今更ながら紹介したいと思います。

AWSとは

クラウド

AWSとはAmazon Web Serviceの略で、その名のとおりAmazon.com社が運営するクラウドコンピューティングサービスのことです。一般的にAmazonと言えばECサイトや電子書籍などの最大手の印象が強いですが、クラウドサービスにおいてもなんと世界1位のシェアを誇る大規模サービスとなっています。Amazon.comって、もう何屋さんなのかわからないくらいすごいですよね。

AWSって何ができるの?

日本国内でも多くの企業がAWSを採用しており、周りの企業や開発者の間でも「うち、AWS使ってます」なんて話が聞こえてくることも多いのではないでしょうか。
皆さんはAWSでどんなことができるかご存知ですか?実際のところ、AWSに触れる機会がないとAWSを使っていると聞いても「へぇ〜、なんかクラウドサービス使っててすごいなぁ」となりがちですよね。(まさに数年前の私のことなのですが)

AWSは、AWSそのものが1つのサービスなのではなく、様々な用途に応じたサービスがクラウドサービス化されているものの総称になります。
2020年現在、AWSでは165以上のサービスがあり一口に語ることはできません。基本的なシステムのインフラ環境としての用途となるサーバーやデータベースの提供だけでなく、機械学習用のクラウド環境であったり、IoT用の開発環境、CI/CD用の環境など対応しているジャンルは多岐に渡ります。

AWSでよく使うサービス

165以上のサービスが存在するAWSですが、ここでよく使われるサービスを紹介します。

Amazon EC2

Amazon EC2(Amazon Elastic Compute Cloud)は、AWS環境上にて稼働するクラウドサーバーです。AWSのサービスの中では最も多く利用されているサービスなのではないでしょうか。
ブラウザ上の管理画面からハードの性能からOS、ネットワークの設定ができるため、初期構築だけでなくオンプレミスからの乗り換えもスムーズに対応できます。また、OSの選択やネットワークの初期設定だけでなく、必要に応じてLAMP環境やSAPのインストールにも対応しており、サーバーの準備だけでなくソフトウェアの環境準備のサポートもできるのが特徴です。

Amazon S3

Amazon S3(Amazon Simple Storage Service)は、AWS上のオンラインストレージサービスです。2006年、AWSのサービスとして一番最初に公開されたのがこのAmazon S3です。
オンラインファイルストレージとしてファイルのアップロード、ダウンロードを用途に利用するだけでなく、格納されているファイルを様々な方法で操作することが可能です。他のAWSサービスと連携することで、データベースのような取り扱い方も可能となります。

また、このAmazon S3にはWebホスティング機能がついており、HTML、CSS、Javascriptのみで構成されている静的Webサイトであれば、Amazon S3からWebサイトを公開することができてしまいます。もはや、オンラインストレージの領域を超えているサービスですね。(笑)

Amazon RDS

Amazon RDS(Relational Database Service)は、その名の通りクラウド上にリレーショナルデータベースを構築できるサービスです。一般的には、データベースを使うにはデータベースを構築するためのサーバーを準備することが多いですが、このAmazon RDSを使えばサーバーの準備いらずでデータベースを準備することができます。
また、EC2同様、データベースのスペックも管理画面から簡単に操作することが可能です。

対応しているデータベースエンジンは以下の通りです。

  • Amazon Aurora
  • PostgreSQL
  • MySQL
  • MariaDB
  • Oracle データベース
  • SQL Server

上記のように主要のデータベースにはほとんど対応しているため、インフラ周りの要件や制約がなければ非常に使いやすいサービスなのではないかと思います。

AWS Lambda

AWS Lambda(ラムダ)は、AWS上に呼び出し可能なプログラム(関数)を直接作成することができるサービスです。
通常、サーバーサイドの処理はプログラムを動作させるためのサーバーを準備・起動させておく必要があるかと思いますが、このAWS Lambdaでは呼び出されたタイミングでそのプログラムだけがAWS上で都度起動されます。つまり、サーバー側の処理をサーバーいらずで動かすことができます。いわゆる、サーバーレスアーキテクチャと呼ばれるものの1つです。

AWS Lambdaで現在対応している言語は以下の通りです。

  • Node.js
  • Python
  • C#
  • Java
  • Ruby
  • Go
  • PowerShell

注意点として、AWS Lambda単品では動かすことができません。AWS Lambdaは、作った関数を別のAWSサービスと連携させることで初めて起動させることができます。例としては、以下のような使い方があります。

  • Amazon S3でファイルをアップロードしたタイミングでAWS Lambdaの関数を実行する。
  • Amazon APIGatewayを利用し、Lambda関数をAPIとして公開し、利用する。
  • AWS Batchで、バッチ処理の1処理としてAWS Lambdaの関数を実行する。
  • EC2で、Webサイトの特定のURLにアクセスされた時に、アプリケーションロードバランサーからLambdaの処理を実行する。

などなど、これだけに限らずAWSサービスと連携して様々な処理を実行することができるのです。
特にイメージしやすいとこだと、Alexaに音声で特定の指示があった時にLambdaを実行、なんてこともできます。

Amazon CloudWatch

Amazon CloudWatchは、AWSリソースの運用監視サービスです。EC2やRDSの負荷状況の監視から、Lambdaなどで実行された関数のログを記録する役割を担っています。
一般的なシステム構築では自分たちでログの仕組みを実装したり、Zabbixなどの監視ツールを組み合わせて開発することが多いですが、AWSサービスを利用していればこのCloudWatch1つでAWSリソースの利用状況をすべて取りまとめてくれます。

これもLambda同様、他のAWSサービスと組み合わせて利用するような機能ですが、AWSを利用するなら是非CloudWatchを活用してみてください!

結論:AWS、すごい

AWS、超いいよ

長々といろいろ書いてみましたが、AWSはインフラ構築が簡単にできるだけでなく、様々な用途に応じたサービスが提供されていて本当に便利です。

ただ、もちろん万能ではなくデメリットもあります。サービス側の障害に引きずられてしまったり、使い方によっては料金が膨大にかかってしまったり…しかし、そのようなデメリットや用途をしっかりと理解して使えば非常に強い味方になるのではないかと思います。

また、クラウドサービスはAWSだけでなく、Googleが提供するGoogle Cloud PlatformやMicrosoftが提供するMicrosoftMicrosoft Azureなどのサービスもあります。
用途によってはAWSにはない強みを発揮できるものもありますので、比べてみるのも良いかもしれません。

機会があればまたAWSのサービス紹介をしたいと思います。それでは、今回はこの辺で。

244
プロダクトオーナー職の傍、デザイナーとかプログラマとか色々やってる人。
好きなものはファッションと音楽と早寝早起き。