Coral Capital主催「AWS×スタートアップ オンラインLT大会(Coral Developers Night #3)」 一般LT枠
M&Aクラウドにおける AWS ElasticBeanstalkの活用 つざきTwitter : @ytzk_Qiita : zackey2
View Slide
株式会社M&Aクラウドつざき @ytzk_SIer -> Web受託開発会社 -> ITスタートアップ(1年目)WEBフロントエンド・バックエンド・ちょっとインフラ銭湯・サウナ・キャンプが好き自己紹介
話すこと・M&AクラウドのElasticBeanstalkを活用した環境構成・ElasticBeanstalk選定理由・ElasticBeanstalkのメリット・デメリット・ElasticBeanstalk ワーカー環境の活用話さないこと 他のアーキテクチャやクラウドサービスとの比較対象 新規サービスをこれから作ろうとしてる方
M&Aクラウド?
M&Aクラウドは、M&AクラウドというM&Aのマッチングプラットフォームを運営するスタートアップ企業です
設立 5期目サービスローンチから 2年目従業員数 21名エンジニア 5名
サーバーサイドPHP7.2, Laravel6.4, MySQL5.7フロントエンドJavaScript, sass, Vue.js, 一部Nuxt.js(Typescript)開発ツールGitHub CircleCI
ローンチ当初の環境構成
ElasticBeanstalkとは
(釈迦に説法だと思うので割愛)
ElasticBeanstalk選定の理由
- エンジニア一人だけ- インフラはそれほど詳しくない- 早くサービスをローンチしたい- サービスが当たるかどうかわからない- サービスの機能追加が優先- 本番環境でDockerを使うことがそれほど一般的ではなかった- どうやらElasticBeanstalkが良さそう(口コミ)
ElasticBeanstalkのいい点
- 簡単に冗長構成のWebサイトを公開できる- LBやセキュリティグループやサブネットなどの細々した設定をしなくていい- ミドルウェアのインストールなども自動でやってくれる- PHPプラットフォームを選択すればPHPの動作に必要なミドルウェアが自動でインストールされる- リリースが楽- eb コマンドで簡単にコードをデプロイできる- Webコンソールから環境変数の追加変更- 複数環境作るときに楽- Webコンソールからオートスケールの設定
ElasticBeanstalkのいまいちな点
- リリースに時間がかかる- インスタンス1台5分程度かかる2台構成で10分程度- 環境変数を変更するだけでも同じくかかる- PHPのバージョンアップが遅い- PHP7.3リリースからおよそ8ヶ月後に追加
現在の環境構成
全文検索機能追加ワーカーサーバーの導入Nuxt.jsによる一部ページの置き換え
1年半経ってもElasticBeanstalkを使ったWebサーバで問題なく機能拡張できている
ワーカー環境の活用
- ElasticBeanstalkの2種類の環境枠- ウェブサーバー環境- ワーカー環境- ワーカー環境はバックグラウンド処理専用のサーバ- インターネットに公開されないサーバ- SQSのキューを監視してジョブをlocalhostのアプリケーションにPOSTしてくれる- ジョブの並列実行可能- Cronのように指定時刻にアプリケーションにPOSTしてくれる機能もある
- M&Aクラウドでは非同期メール送信、定時メール送信をワーカー環境で実行するようにした- ワーカー環境導入の結果- メール送信 100通 / 分 → 800通 / 分- 並列数を増やせばもっと早くできそうだがSESの上限を超えないくらいに設定
まとめElasitic Beanstalkは- 素早くサービスを始められる- サービスが成長しても使い続けられるインフラに割くリソースがなくスモールスタートでサービスをローンチしたい場合に適切なソリューション