• 会員限定
  • 2021/05/25 掲載

スタートアップ立ち上げ時に使えるAWSサービスまとめ【AWS直伝】

連載:スタートアップのためのAWS活用入門

記事をお気に入りリストに登録することができます。
人材や資金面でリソースの限られたスタートアップ。立ち上げ間もなくともシステム面でやるべきことは山積みで、IT人材の確保もままならないためクラウドサービスの役割は大きい。こうした中で、パブリッククラウドの1つ、AWS(Amazon Web Services)ではどのような機能を提供しているのか。スタートアップの草創期、シードステージからアーリーステージで活用したいAWSサービスを厳選して、AWSの塚田 朗弘氏にまとめてもらった。なお、他のクラウドサービスベンダーでも同様の機能を提供しているケースもあるので、そちらも踏まえつつ参考にしてもらいたい。

アマゾン ウェブ サービス ジャパン スタートアップ事業本部 技術統括部 部長 塚田 朗弘

アマゾン ウェブ サービス ジャパン スタートアップ事業本部 技術統括部 部長 塚田 朗弘

2011年から生放送系ウェブサービスの開発を経験した後、2013年よりスタートアップ企業にJoin。CTOとしてモバイルアプリ、サーバサイド、AWS上のインフラ管理を担当しつつ、採用やチームマネジメントを行う。2015年8月よりアマゾンウェブサービスジャパン株式会社のソリューションアーキテクトとして、主にスタートアップ領域のお客さまに対する技術支援を担当。技術的な得意/興味領域としては、設計原則に則ったプログラミング、ブロックチェーン、サーバレス・モバイル系テクノロジーなど。

photo
AWSをどう活用すればいいのか、スタートアップの課題とともに整理していく
(Photo/Getty Images)

スタートアップにおけるシステム課題の数々

 スタートアップ企業は、一般的にビジネスの急成長と成功を目指す。その過程には、さまざまな課題がつきものだ。

 一番大切なものの1つはスピードだ。資金が潤沢にない中で、キャッシュがショートする前になんとか成果を出して次につなげなければいけない。昨日まで100人だったユーザー数が、2日後には1万人を突破しているかもしれない。そんなスピードに対応できるシステムを構築するにはどうすれば良いだろうか?

 スピード以外にも大事なものがある。急成長を支えるには、システムが十分にスケーラブル(拡張、拡大可能)でなければならない。不意にSNSなどでバズって、想定していなかった大量のアクセスが来るのはBtoCサービスではよくあることだ。それに耐えられるようにするには、何を考慮しておくべきだろうか?

 無事乗り切っても、大量のユーザーを抱えるにつれて、情報を預かる責任の重さが増してくる。あるいはBtoBのビジネスでは、システム上に保存する情報が企業のものとなり、より大きな影響を持つこともしばしばあるだろう。それ以前に、大きな企業とシステム連携するにはスタートアップ企業であっても相応のセキュリティが求められることも多い。スタートアップに求められるスピードを損なわないまま、十分なセキュリティを得るにはどうすれば良いだろうか?

 そういった日々めまぐるしく起こる課題になんとか対応している内になんとかサービスも順調に伸びてきたとして、システムの状況はどうだろうか?最初から長く保守運用していくことが分かっているシステムであれば品質に投資もしやすいが、スタートアップには失敗がつきものだ。もしかしたら畳むことになる可能性も低くないシステムの品質確保に、どんなタイミングで投資する判断ができるだろうか?

 筆者はアマゾン ウェブ サービス ジャパンでスタートアップソリューションアーキテクトとして、過去5年ほどで多くのスタートアップの皆さんから延べ1,000回以上の相談を受け、課題解決の支援をしてきた。ここからはそれらの経験を踏まえ、スタートアップで起きがちな、システムアーキテクチャーを中心とした課題を解決する方法を述べていきたい。

 今回は特に、会社としての比較的早いフェーズであるシード、アーリー時期のスタートアップにフォーカスを当てる。

 なお、スタートアップ企業における課題と解決をテーマに書きはするが、より一般的な企業での新規事業立ち上げなどにも読み替えていただけるところがあるはずだ。ぜひ、立場に応じて自分のケースに当てはめてイメージしながら読み進めていただきたい。

MVP構築~検証時に使いこなしたいAWSのサービス

 スタートアップが新しい事業をゼロから立ち上げようとする段階では、とにかく金がない。金がないということは時間もない。その中でいち早くMVP(Minimum Viable Product - 実用可能な最小限の製品。核となるようなアイデアだけを実装し、フィードバックを得て検証するためのもの)を開発して検証しなければならない。

 MVPを開発して検証するということは、
  1. アイデアを練ったらすぐにでもサービスを立ち上げて公開し、
  2. プロダクトに対するフィードバックを得て、
  3. 改善、あるいは、構築したものを早く捨てて次のアイデアに取り組む必要がある

ということだ。このフィードバックサイクルをぐるぐると回していかなければならない。これらの課題に効率よく対応できる、すなわちアイデアを練ったらすぐにでもサービスを立ち上げて公開するために役立つサービスを見ていこう。

 なおこの段階ではまだ、通常スケーラビリティなどは最優先とはならないことが多いだろう。しかし、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マネジメントコンソールもほかのサービスとは違う独自のものとなっており、よりシンプルなユーザーインタフェースを提供している。

画像
Amazon Lightsailのユーザーインタフェース

 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 EC2AWS Elastic BeanstalkAWS Lambdaから選択できる、というものがある。たとえば、2021年4月15日時点、Javaに対応したプロジェクトテンプレートは次の通りだ。

photo
Javaに対応した、CodeStarのテンプレート

 JavaのSpring Frameworkを立ち上げることができるテンプレートが3つ表示されており、「AWSのサービス」のところがそれぞれ異なることが分かるだろうか。プロジェクト、アプリケーションの特性にあったものを選べば良いわけだが、早く安くMVPを開発したいという点から考えれば、まずはサーバレスのタイプを選択してみるのも良いだろう。

 CodeStarも、Lightsailのようにシンプルなユーザー体験となっている。気になった人は、CodeStarのマネジメントコンソールから「プロジェクトの作成」ボタンをクリックし、どんなプロジェクトテンプレートがあるかなど見てみてほしい。

【次ページ】スケーラビリティを確保するためのAWSサービス&テクニカルサポート・プログラム

関連タグ

あなたの投稿

関連コンテンツ

Amazon DynamoDBとは何かをわかりやすく図解、どう使う?テーブル設計の方法とは

非常にわかりやすくまとまった良い記事ですが、技術的な誤りがあるので指摘させていただきます。

こちらについては恐らくDynamo論文(Dynamo: Amazon's Highly Available Key-value Store)を参考に記述されていると思われますが、Dynamo論文で説明されているDynamoと、今AWSで提供されているDynamoDBは名前を引き継いでいるだけで全く別のDBMSです。
DynamoDBはDynamoやSimpleDBS3、S3の知見をもとに開発されています。
https://www.allthingsdistributed.com/2012/01/amazon-dynamodb.html

今年公開されたDynamoDBの論文に記述がある通り、Multi-Paxosでリーダーの選出、合意形成を行う仕組みであり、leader replicaのみが書き込みを受け付けます。
(つまりパーティション単位に単一障害点が存在します)
https://assets.amazon.science/33/9d/b77f13fe49a798ece85cf3f9be6d/amazon-dynamodb-a-scalable-predictably-performant-and-fully-managed-nosql-database-service.pdf
> The replication group uses Multi-Paxos [14] for leader election and consensus. Any replica can trigger a round of the election. Once elected leader, a replica can maintain leadership as long as it periodically renews its leadership lease.
>Only the leader replica can serve write and strongly consistent read requests. Upon receiving a write request, the leader of the replication group for the key being written generates a write-ahead log record and sends it to its peer (replicas).

PR

処理に失敗しました

トレンドタグ

おすすめユーザー

会員登録で動画、資料に使えるホワイトペーパー、オンラインセミナー年間500本など、会員限定記事が​閲覧できる!​

投稿したコメントを
削除しますか?

あなたの投稿コメント編集

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

通報

このコメントについて、
問題の詳細をお知らせください。

ビジネス+ITルール違反についてはこちらをご覧ください。

通報

報告が完了しました

コメントを投稿することにより自身の基本情報
本メディアサイトに公開されます

必要な会員情報が不足しています。

必要な会員情報をすべてご登録いただくまでは、以下のサービスがご利用いただけません。

  • 記事閲覧数の制限なし

  • [お気に入り]ボタンでの記事取り置き

  • タグフォロー

  • おすすめコンテンツの表示

詳細情報を入力して
会員限定機能を使いこなしましょう!

詳細はこちら 詳細情報の入力へ進む
報告が完了しました

」さんのブロックを解除しますか?

ブロックを解除するとお互いにフォローすることができるようになります。

ブロック

さんはあなたをフォローしたりあなたのコメントにいいねできなくなります。また、さんからの通知は表示されなくなります。

さんをブロックしますか?

ブロック

ブロックが完了しました

ブロック解除

ブロック解除が完了しました

機能制限のお知らせ

現在、コメントの違反報告があったため一部機能が利用できなくなっています。

そのため、この機能はご利用いただけません。
詳しくはこちらにお問い合わせください。

ユーザーをフォローすることにより自身の基本情報
お相手に公開されます