読者です 読者をやめる 読者になる 読者になる

Rock Me!開発者ブログ

DEVELOPERS BLOG

Rock Me!でのAWSの使いどころ

AWS

今回は弊社内のインフラについて話をしようと思います。

エンジニア一人ですと、インフラ構築から開発、運用までを全てをやらなくてはいけません。
全てを熟知してこだわり抜いて・・・とかやっていると、さすがに仕事が終わらないです。
ポイントを抑えつつ色々なサービスを使用して、本当に自分にしかできない事にリソースをフォーカスできるように注意しています。

いまいちなサービスを使ってしまうと、やりたい事ができなかったり、余計にコストが掛かったりしてしまいますが、インフラ周りに限っていえば、AWS(Amazon Web Service)を選んでおけば間違いはないと思います。
弊社のインフラは全てAWSでまかなっているので、弊社での使いどころを紹介したいと思います。
こちらはある課金サービスのサーバ構成図になるのですが、こちらを参考に説明していきます。

サーバ構成図

EC2(Elastic Compute Cloud)

わずか数分で起動可能な仮想サーバで、後から性能変更できるのでとても使い勝手が良いです。
サーバ構成図のグレーの四角は全てEC2のサーバインスタンスになります。

CPUやメモリが足りなくなったら、インスタンスのタイプを変更する事によりスケールアップする事ができます。
ディスク容量に関してもあとから増減する事ができます。
(どちらも一回インスタンスを停める必要はありますが)

このシステムではMONGOサーバと、本番(PROD)のWEB、APIサーバは常に負荷が掛かるので、しっかりとしたインスタンスタイプ複数台で構成しています。
それ以外のサーバについては、t2.microという一番ミニマムで安いサーバを使用しています。
1台のサーバで複数用途のシステムを共存する事はできるのですが、どうしても設定が複雑になり取り回しがめんどくさくなってきます。
そこでt2.microを使用することで、コストを抑えつつもシンプルな構成で管理できるようにしています。

また、このシステムでは常時稼働のサーバが多いので、リザーブドインスタンスを適用する事でコストを大幅にカットしています。
t2.microを1年間のリザーブドインスタンスを適用すると、初期費用$85 + 従量課金$43.8 = $128.8掛かります。
一月サーバ1台千円強で使用する事ができます。

それ以外のサーバはけっこう良いものを使用していますが、これくらいのサーバ構成で月数万円程度になります。

ELB(Elastic Load Balancing)

ちゃんとしたハードウェアを買うとけっこう高いロードバランサですが、ELBを使用すれば安定したロードバランサが安価で使用する事ができます。
バランシングだけだったら自前で構築できたりもしますが、手間や運用など考えるとELBを使用した方が圧倒的にコスト削減になります。
また、自前で立てたものが落ちてしまったら終わりなので、安定性でもこちらの方が有利です。

このシステムは課金要素を含むため、可用性を重視しています。
ですので、外部向けのWEBサーバ、APIサーバにはELBを使用しています。

RDS(Relational Database Service)

同じようにデータベースも可用性向上の部分でAWSに頼っています。
RDSではMySQLなどリレーショナルデータベースをサービスとして使用する事ができます。
こちらもEC2同様に後からスケールアップをする事が可能です。
そしてRDSの重要な機能にMulti-AZというものがあります。
通常可用性を高めるためにはレプリケーションなど設定しなくてはいけませんが、それらを自動的に行ってくれます。
何か障害が起こった場合、スタンバイに自動的にフェイルオーバーするので、すぐにデータベースの動作を再開できます。
こちらも真面目に作るとそれなりに手間と運用が発生しますが、それらの部分を任せる事ができます。

Route53

DNSのサービスになります。
SLA100%としていてだけあって安心はできます。(絶対落ちないといっているわけではないですが)
設定ツールも比較的使いやすく、何と言ってもELB,EC2,S3などの他のサービスと連携させて使用すると、かゆいところに手が届く、AWSならではの一体感によりスムーズなシステム構築ができます。

今はまだこれくらいしか使っていませんが、まだまだ使えていないサービスも多いので、用途に合うものがあればこれからも取り入れていく予定です。


弊社ではエンジニアを募集しています。 是非リクルートページをご覧になってください。

リクルートページ