株式会社コンシェルジュで使っている技術その3ということで、インフラレイヤーの説明に移ります。
インフラは全てAmazon Web Services(AWS)を使っています。やはりクラウドの圧倒的なリーダーだけあり、なかなかここ以外の選択肢を取ることはできないですね。実は、IBMのBluemix、Herokuも一時期運用してたのですが、簡単に構築でき、かつスケールも簡単で、かつカスタマイズの幅が大きいという点でAWSにかなうものはないかなというのが個人的な意見です。
さて、Ruby on Railsを動かすインフラ環境ということで構築は幾つか選択肢があります。あまりEC2, RDSなどを個別に一から立てていくつもりはなくて、できれば環境構築をある程度自動でやって運用が楽なものを使いたいということで、OpsworksかElastic Beanstalkで迷いました。
最終的にElastic Beanstalkを選びこれをベースに環境構築しています。Elastic Beanstalkは、ウェブコンソール上でボチボチボタン押していくだけで基本的に環境を構築できます。いいですね。
環境にインストールが必要なライブラリーや実行コマンドなどはすべて.ebextensionsというディレクトリ内にファイルとして保存しておくと、自動で環境構築するというのもお手軽です。ここにすべての設定を書いとくことで、すべてのサーバーはImmutable Infrastructureというやつを実現してます。つまり、設定変える時は基本サーバーを捨てて新しいサーバーを構築する手法を取っています。
他にAWS上で使ってるサービスを列挙すると、EC2, S3, CloudFront, RDS, ElastiCache, Route53, SES....もうAWSとべったりですね。
そんな開発環境のもと、ともに開発を行ってくれるエンジニアを絶賛募集中です。興味を持っていただいた方は是非連絡ください!