selfree を支える技術 ~ 外部サービス編 ~
いよいよ、このシリーズも最終回となりました。
今までの章の内容を学べば、プログラミング言語で作られたフレームワークを使ってWebアプリケーションを作れるようになります。ただ動くのはあなたのPC内でのみの話です。
次は、、そうです。あなたの作ったイノベーティブなサービスを外部に公開しましょう!
そのためには、サーバーを用意する必要があったり、ドメインを用意したりしてあげる必要があります。今回はそれらをとりまく用語について解説します。
クラウドの仕組み
もう自分でサーバーを買って1から組み立てる人はほとんどいなくなりました。
最近よく”クラウド”という言葉を聞きます。これはなんでしょう? クラウドといえば雲。もくもくとしててよく見えません。まさにその感覚です。”サーバーは具体的にどこにあるのかはわからないけど、とにかく情報を渡せば結果が返ってくる。” この感覚がクラウドです。
つまりサーバーでいえば、具体的にどこにサーバーが置いてあるのかはわからないけど、ネット上で設定するだけでサーバーのように振舞ってくれるのです。こうすることにより、自分でサーバーを立てる必要がなくなりますし、その管理などはすべてクラウド提供者に任せることができるのです。
サービスでも同様です。何かしらのソフトウェアが使えるけど、それが実際にはどこにあるのかは使ってる側は気にしなくて良い。最近のWebサービスのほとんどはクラウドです。もちろん、CallConnectも。
なぜレンタルサーバーではなく、クラウドの流れなのでしょうか? それはまずは低価格であること。そしてユーザーが増えてきた時でも柔軟に対応できる(スケーラブルである)ということ。そして安全性が高いということ。などが挙げられます。
クラウドサービスは今では本当にたくさんあります。今回はその最も有名なクラウドであり、サービスを支える上で必須のサービスである Amazon Web Service と Heroku について紹介します。
Amazon Web Service (AWS)
もう業界の人で知らない人はいない、というくらい有名なクラウドサービスです。
正直なところ、 AWS さえ使えれば作りたいサービスはすべて実現できます。AWSはあらゆるサービスを実現する上で必要なクラウドサービスの集団です。サーバーを建てられるし、ドメインの管理ができるし、画像やHTMLを置く用の場所だったり、データを保存する場所だったり。ありとあらゆることがAWSで実現できます。
そのため、AWSだけでサービスを構成しているところも多いようです。
弊社では数あるAWSサービスのうち、 画像や音声などを配置するS3, アップロードしたデータを管理・同期するCoginito, 任意のタイミングでコードを実行する Lambda, ドメインを管理する Route53, ログを管理する CloudWatch, コンテンツ配信の CloudFront を利用しています。一個一個それらが何であるかを説明すると長くなってしまうので、興味があればどういうものか調べてみてください。
Heroku
AWS さえあれば何でも作れるのに、なぜHerokuも紹介するのでしょうか? それは私が最も好きなサービスの一つだからです。(笑)
Heroku を使えば、開発者はコードに集中できます。どんなサーバー構成にしてどのようにサーバーにファイルを配置するのか、など何も考える必要がなくなります。すべてHerokuがやってくれるのです! AWS にも AWS Elastic Beanstalk というHerokuと同等のものを提供しているのですが、初期段階としてHerokuの方が圧倒的に低コストで始められます。さらに、Herokuにはアドオンという外部サービスと連携するための機能を提供しており、AWSで開発するよりも高速に開発が可能です。
ということで AWS でも同じことはできますが、あえて Heroku を利用してメインのサーバーを立てております。私たちのようなインフラエンジニアのいない環境ではとても理想的なサービスです。 また、あらゆるアドオンを駆使してWebサービスをパワーアップさせています。具体的には、メールを送信する Sendgrid, ログを出力、管理するPapertrail, サーバ状態を監視する NewRelic, そして Heroku オフィシャルな データベース Heroku Postgres と Heroku Redis。
それらを利用してselfreeの技術は支えられています。
これらすべての使い方を調べて使いこなせるようになれれば、晴れて自分のサービスを運用できるようになります。
次回からのロードマップ
次回から、いよいよWebアプリを作っていきたい方向けのコンテンツを更新してまいります! Webの基礎を身につけましょう。フロントエンドと呼ばれる以下のような技術をじっくり提供します。
HTML -> CSS -> JavaScript -> jQuery -> 各種ツール
..ここまで行くかどうかは読者の皆様の反応次第です。今後とも selfree ブログを宜しくお願いします。