- 会員限定
- 2021/05/25 掲載
スタートアップ立ち上げ時に使えるAWSサービスまとめ【AWS直伝】
連載:スタートアップのためのAWS活用入門
2011年から生放送系ウェブサービスの開発を経験した後、2013年よりスタートアップ企業にJoin。CTOとしてモバイルアプリ、サーバサイド、AWS上のインフラ管理を担当しつつ、採用やチームマネジメントを行う。2015年8月よりアマゾンウェブサービスジャパン株式会社のソリューションアーキテクトとして、主にスタートアップ領域のお客さまに対する技術支援を担当。技術的な得意/興味領域としては、設計原則に則ったプログラミング、ブロックチェーン、サーバレス・モバイル系テクノロジーなど。
スタートアップにおけるシステム課題の数々
スタートアップ企業は、一般的にビジネスの急成長と成功を目指す。その過程には、さまざまな課題がつきものだ。一番大切なものの1つはスピードだ。資金が潤沢にない中で、キャッシュがショートする前になんとか成果を出して次につなげなければいけない。昨日まで100人だったユーザー数が、2日後には1万人を突破しているかもしれない。そんなスピードに対応できるシステムを構築するにはどうすれば良いだろうか?
スピード以外にも大事なものがある。急成長を支えるには、システムが十分にスケーラブル(拡張、拡大可能)でなければならない。不意にSNSなどでバズって、想定していなかった大量のアクセスが来るのはBtoCサービスではよくあることだ。それに耐えられるようにするには、何を考慮しておくべきだろうか?
無事乗り切っても、大量のユーザーを抱えるにつれて、情報を預かる責任の重さが増してくる。あるいはBtoBのビジネスでは、システム上に保存する情報が企業のものとなり、より大きな影響を持つこともしばしばあるだろう。それ以前に、大きな企業とシステム連携するにはスタートアップ企業であっても相応のセキュリティが求められることも多い。スタートアップに求められるスピードを損なわないまま、十分なセキュリティを得るにはどうすれば良いだろうか?
そういった日々めまぐるしく起こる課題になんとか対応している内になんとかサービスも順調に伸びてきたとして、システムの状況はどうだろうか?最初から長く保守運用していくことが分かっているシステムであれば品質に投資もしやすいが、スタートアップには失敗がつきものだ。もしかしたら畳むことになる可能性も低くないシステムの品質確保に、どんなタイミングで投資する判断ができるだろうか?
筆者はアマゾン ウェブ サービス ジャパンでスタートアップソリューションアーキテクトとして、過去5年ほどで多くのスタートアップの皆さんから延べ1,000回以上の相談を受け、課題解決の支援をしてきた。ここからはそれらの経験を踏まえ、スタートアップで起きがちな、システムアーキテクチャーを中心とした課題を解決する方法を述べていきたい。
今回は特に、会社としての比較的早いフェーズであるシード、アーリー時期のスタートアップにフォーカスを当てる。
なお、スタートアップ企業における課題と解決をテーマに書きはするが、より一般的な企業での新規事業立ち上げなどにも読み替えていただけるところがあるはずだ。ぜひ、立場に応じて自分のケースに当てはめてイメージしながら読み進めていただきたい。
MVP構築~検証時に使いこなしたいAWSのサービス
スタートアップが新しい事業をゼロから立ち上げようとする段階では、とにかく金がない。金がないということは時間もない。その中でいち早くMVP(Minimum Viable Product - 実用可能な最小限の製品。核となるようなアイデアだけを実装し、フィードバックを得て検証するためのもの)を開発して検証しなければならない。MVPを開発して検証するということは、
- アイデアを練ったらすぐにでもサービスを立ち上げて公開し、
- プロダクトに対するフィードバックを得て、
- 改善、あるいは、構築したものを早く捨てて次のアイデアに取り組む必要がある
ということだ。このフィードバックサイクルをぐるぐると回していかなければならない。これらの課題に効率よく対応できる、すなわちアイデアを練ったらすぐにでもサービスを立ち上げて公開するために役立つサービスを見ていこう。
なおこの段階ではまだ、通常スケーラビリティなどは最優先とはならないことが多いだろう。しかし、MVPとして構築したものはあくまでもアイデアの検証用であることを認識し、後述のグロースフェーズに入るときにはMVPを捨てるか必要な手直しを施し、システムのスケーラビリティやセキュリティ等々を確保する必要性があることを念頭に置いておくことは重要だ。
●Amazon Lightsail
Amazon Lightsailは、AWSが提供するVPS(Virtual Private Server- 仮想プライベートサーバ)のサービスだ。LinuxやWindows OS、WordPress、LAMPスタック、Node.js、CentOSなど、多くの事前設定済みのOSや開発スタック、アプリケーションをワンクリックで起動することができる。次のアイデアに取り掛かりたいときは、シンプルにLightsailサーバを終了してしまえば良い。
AWSの仮想サーバならAmazon EC2があるじゃないか、と思う方もいるかもしれない。たしかにそうかもしれないが、このフェーズでEC2でなくLightsailを挙げるポイントは以下の通りである。
- よりシンプルに、少ない設定項目で簡単にデプロイできる。
- 起動が早く、すぐにアイデアを試し始めることができる。たとえばWordPressを選んで起動すれば、1分前後でWordPressサイトが手に入るだろう。そのままブラウザ上からSSH(Secure Shell)を使ってログインすることも可能だ。
- 料金が低額、定額であり、分かりやすい。たとえばLinuxの場合、1カ月3.5USドルから利用可能だ。また、月の途中で利用をやめた場合はちゃんと利用した時間分だけの請求となり、コスト効率も良い。
- もしDockerコンテナを使って開発することに慣れている場合は、Dockerコンテナをデプロイすることもできる。
Lightsailは、AWSを管理するツールであるAWSマネジメントコンソールもほかのサービスとは違う独自のものとなっており、よりシンプルなユーザーインタフェースを提供している。
Lightsailを試してみたい人は、AWSのチュートリアル集でLightsailを検索した中から好きなものを選んで試してみてほしい。ただし、Lightsailのユーザー体験はハンズオン資料がいらないくらいシンプルだと筆者は思うので、そのままLightsailのマネジメントコンソールを開いて、ポチポチと触ってみてもいいと思う。
●AWS Amplify
早いフェーズのスタートアップには、専任のインフラエンジニアやSRE(Site Reliability Engineer)がいないことが多く、バックエンドやインフラにかけられるエンジニアリソースがない。一方で、MVPをMVPたらしめるには、アイデアをUIに落とし込んでフロントエンドやモバイルアプリのエンジニアが必要になる。そんなときにおすすめしたいのが AWS Amplifyだ。
Amplifyは、以下のような特長を持っており、スピーディにアプリケーションを開発したいスタートアップには打ってつけのサービスだ。
- フロントエンドアプリ開発者またはモバイルアプリ開発者が、バックエンドを強く意識せずともアプリケーションを開発し、Webホスティングしたりすることができる。
- 一般的なウェブフレームワーク (JavaScript、React、Angular、Vue、Next.js) やモバイルプラットフォーム (Android、iOS、React Native、Ionic、Flutter) をサポートしており、モダンなSPAやモバイルアプリの開発が可能になっている。
- ユーザー認証、ユーザーイベントの分析、リアルタイムメッセージング(チャット機能などの実装に使える)など、よくある要件を作るための機能がそろっている。
- Amplifyを通じて構築されるバックエンドのインフラは基本的にサーバレスなサービスで構築されるため、コスト効率が高く、スケーラブルで、運用負荷が低い。
- 構築したアプリケーションが不要になったら、 amplify delete コマンドで削除してしまえば良い。
また、Amplifyにはいくつかのコンポーネントが含まれていて、開発からバックエンドの構築、Webアプリケーションのホスティングからデプロイパイプライン、コンテンツの管理ツールなど、包括的に対応することができる。
これらは必ずしもすべてを使わなければいけないわけではなく、用途に合ったものを選択して使うこともできる。
- Amplify CLI
Webフロントエンドアプリ・モバイルアプリのバックエンドをAWS上に構築・管理するためのインタラクティブなコマンドラインツール。- Amplify Library
Webフロントエンドアプリ・モバイルアプリとAWS上のバックエンドを統合するためのOSSライブラリ。- Amplify Console
SPA(Single Page Application)などの静的Webサイトをビルド、テスト、デプロイ、ホスティングするためのAWSサービス。- Amplify Admin UI
Webフロントエンドアプリ・モバイルアプリのバックエンドとコンテンツを管理するためのGUIツール。
●AWS CodeStar
サーバサイドのWebアプリケーションを素早く立ち上げたい場合は、 AWS CodeStarを使うのも手だ。あらかじめ用意されているJava、JavaScript、PHP、Ruby、C#、Python などのプロジェクトテンプレートを使ってプロジェクトを立ち上げれば、GitリポジトリからCI/CD(継続的インティグレーション/継続的デリバリー)の設定まで済んだ状態の環境が手に入る。
また、各プログラミング言語のピュアな環境だけでなくWebアプリケーションフレームワーク (Ruby であれば Ruby on Rails や Sinatra、Node.jsであればExpress.jsなど) のセットアップを含むテンプレートもあるので、CodeStarがサポートしていれば使い慣れたフレームワークに合わせた開発が可能だ。
もう1つCodeStarの大きな特長として、デプロイする先のAWSサービスを Amazon EC2、AWS Elastic Beanstalk、AWS Lambdaから選択できる、というものがある。たとえば、2021年4月15日時点、Javaに対応したプロジェクトテンプレートは次の通りだ。
JavaのSpring Frameworkを立ち上げることができるテンプレートが3つ表示されており、「AWSのサービス」のところがそれぞれ異なることが分かるだろうか。プロジェクト、アプリケーションの特性にあったものを選べば良いわけだが、早く安くMVPを開発したいという点から考えれば、まずはサーバレスのタイプを選択してみるのも良いだろう。
CodeStarも、Lightsailのようにシンプルなユーザー体験となっている。気になった人は、CodeStarのマネジメントコンソールから「プロジェクトの作成」ボタンをクリックし、どんなプロジェクトテンプレートがあるかなど見てみてほしい。
【次ページ】スケーラビリティを確保するためのAWSサービス&テクニカルサポート・プログラム
関連コンテンツ
関連コンテンツ
PR
PR
PR