1. AWSとは
一言でいうと、AWSはAmazonが運営する「コンピュータ貸し出しサービス」です。
そして、そのAmazonのデータセンターにあるコンピュータを、自分の手元に移動させずに、インターネット経由で利用できるのが特徴です。
ふつう、自分が作ったアプリやサイトを世界中の人に使ってもらうためには、自分で何台もの高性能なコンピュータを用意しなければなりません。でもAWSを使えば「使いたいときだけ、使いたい分だけコンピュータを借りる」ことができます。だからAWSを使う人にとってお金の面でも置き場所の面でも助かるのです。
2. 誰のためのもの?
AWSは、全員が知るべきものではありません。
もしあなたが、アプリやサイトを使う側のままなら、AWSのことは知らなくて大丈夫です。でも、利用者の時間を奪う側 — つまり自分のサービスを公開する側に回るなら、知っておく必要があります。
3. 裏側で何をしてる?
私たちがスマホアプリやWebサイトを使うとき、画面に見えているのは「表側」だけです。でもその裏側では、必ずどこかのコンピュータが動いています。
たとえばあなたが何かボタンを押すと、その指示はインターネットを通じてどこかのコンピュータに届きます。そのコンピュータが「データを保存する」「必要な情報を探して返す」「他の人に届ける」といった処理をして、結果をあなたの画面に送り返しているのです。
この「裏側で動いているコンピュータ」のことをサーバーと呼びます。
アプリやサイトが動くためには、必ずこのサーバーが必要で、しかも利用者が増えれば増えるほど、たくさんの・高性能なサーバーが必要になります。
AWSは、まさにこの「裏側のサーバー」を貸し出しているのです。私たちが普段使っているサービスの多くは、実はこのAWSのコンピュータの上で動いています。
4. 裏側の例(LINE)
身近なLINEを例に考えてみましょう。
あなたが友だちに「おはよう」とメッセージを送るとき、その文字はいったんLINEのサーバーに届きます。サーバーはそのメッセージを保存し、相手のスマホへ届けます。相手がまだスマホを見ていなくても、サーバーがメッセージをあずかっておいてくれるので、あとから開いても読めるわけです。
スタンプや画像、既読の表示、グループトークなども、すべてこの裏側のサーバーが処理しています。
ここで想像してみてください。
LINEを使っている人は世界中に何億人もいます。その全員が同時にメッセージを送り合っても止まらないようにするには、ものすごい数の高性能なサーバーが必要です。これを自分たちだけで用意し、24時間管理し続けるのは大変です。
だからこそ、AWSのような「必要な分だけサーバーを借りられるサービス」が役に立つのです。利用者が少ない時間帯は少なく、多い時間帯は多く借りる、といった調整もできます。
5. LINEのようなメッセージアプリをAWSで作るとしたら
5-1. API Gateway
入口の API Gateway は、スマホアプリからの「メッセージを送りたい」という指示を最初に受け取る受付係です。前回の図でいう「サーバーに送る」の、サーバー側の玄関にあたります。
5-2. Lambda
頭脳の Lambda は、受け取った指示を見て「これは保存だな」「これは通知が必要だな」と判断して処理を振り分ける部分です。常時動かしっぱなしのコンピュータを借りるのではなく、リクエストが来たときだけ動くので、簡単・低コストで始めやすいのが特徴です。
5-3. DynamoDB
保存場所は二つに分かれます。DynamoDB は「おはよう」のような文字メッセージや、誰が誰に送ったかといった情報をしまっておく場所。
5-4. S3
S3 は画像やスタンプのような大きなデータを置く場所です。前回話した「サーバーがメッセージをあずかっておく」が、ここにあたります。
5-5. SNS
そして SNS / Push が、相手がアプリを開いていなくても「新しいメッセージが来たよ」と知らせるプッシュ通知を送る役割です。前回の「サーバーから知らせるパターン」がこれです。
流れを一言でまとめると、スマホ → API Gateway(受付) → Lambda(判断) → DynamoDB / S3(保存) → SNS(通知) という順に処理が進み、最後に相手のスマホへ通知が届きます。
なお、これはあくまで仕組みを理解するための最小構成です。
実際のLINE規模になると、ユーザー認証、莫大な同時接続をさばく仕組み、複数地域への分散、セキュリティなど、はるかに多くの要素が必要になります。まずは「クラウド上で役割の違うサービスを組み合わせてアプリを作る」というイメージをつかむのに役立つはずです。
