Skip to content

Instantly share code, notes, and snippets.

@noboru-i
Last active March 30, 2016 16:29
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save noboru-i/08fa6de6c1bc580965ca to your computer and use it in GitHub Desktop.
Save noboru-i/08fa6de6c1bc580965ca to your computer and use it in GitHub Desktop.

GCPからAWSに移行した話(仮)

免責事項

  • まだ移行完了していません。
  • 使い倒した人から見ると、浅いことを言っている可能性があります。
  • どこのクラウドが良い悪いではなく、適材適所だと思っています。

自己紹介

  • 石倉 昇
  • 株式会社モンスター・ラボ所属
    • 受託でアプリとかWEBサービスとか作ってる会社
  • 富山県の自宅でリモートワーク中
  • Twitter: @noboru_i
  • GitHub: noboru-i

個人で作ってるアプリ

  • ざっくり見せる

会社紹介

現在のアプリ

プラットフォームは、Android / iOS / WEB

  • Google App Engine
  • Google Cloud Datastore
  • Python
    • APIサーバ(for iOS / Android)
    • SPAっぽい構成

そもそも、共円とは

  • 図をつかってざっくり説明
  • -> 詰め将棋的なもの

GCPの特徴

  • 脅威の無料枠
  • PaaS
  • Spin-upが遅い

実際のアクセスと料金

  • App Engine
    • せいぜいで、秒間0.15リクエスト(だいたい0.03で収まる)
    • たまに人が来る、というレベル。
  • Cloud Datastore
    • 使用容量:33MByte
    • エンティティ:3万

→ 無料枠で収まる

Spin-up対策

  • ほとんど使われてないので、インスタンスが落ちている。
    • →立ち上がるまでに時間がかかる。
  • Ajaxで読み込むことにしたら、体感は早い

移行しようとした動機

  • 会社でPythonを使うことが無さそう
  • 会社でGoogle Cloud Platformを使うことが無さそう
  • Ruby on Railsのアプリケーションを持っていたい
    • 会社で利用が増えてきたので、Gemとかのテスト用に
  • IaaSの運用経験も積みたい

(でも、あんまりにも面倒なことはやりたくない)

他、優先度の低い細かな動機

  • Dockerとか流行ってるし使ってみたい
  • AWSのいろんなサービス使ってみたい
  • WebSocketとかやってみたい(Channel APIってので出来るらしいけど。。

しかし先月

Google App Engine Rubyの登場!

[速報]Google App EngineがRubyとNode.jsのサポートを発表。GCP Next 2016 - Publickey

移行する意味が半分ぐらい消失orz

他のクラウドの調査

データストア

RDS

  • t2.microで約$20/月。(MySQLの場合。Multi-AZにしたらさらに倍。)
  • 高い信頼性と拡張性。
    • 簡単にスケールアップ
    • 簡単にリードレプリカを複製
  • 簡単にバックアップ・リストア。
  • AWSの各種サービスとのセキュアな連携が可能。

ElastiCache

  • t2.microで約$20/月。
  • エンジンとして、Memcached / Redisから選択できる。
    • Redisであれば、高い表現力。(SortedSetなど)
  • 簡単にスケールアップ・スケールアウト。
  • 簡単にバックアップ・リストア。
  • AWSの各種サービスとのセキュアな連携が可能。

Cloud Datastore

  • 無料で一定量使える。
  • 自動的にスケール。
  • RESTfulインターフェースでアクセス可能。
  • GoogleのApp EngineやCompute Engineとの高い親和性。

DynamoDB

  • 無料で一定量使える。
    • 25 GBの無料ストレージ。
    • 最大25の書き込み容量ユニット。
    • 25の読み込み容量ユニットのスループット容量。
  • 低レイテンシ。
  • NoSQLデータベース。
  • AWSの各種サービスとのセキュアな連携が可能。
  • Lambdaと連携してイベントドリブンにも出来る。

コンピューティング

さくらのVPS

Google Container Engine (GKE)

  • 5ノードまで無料(?)
    • Compute Engineの料金がかかるっぽい。最安で$4/月ぐらい?(でも、sharedだから弱いかも?)
    • スタンダード マシンなら、$25.55/月
  • デファクト(?)なKubernetesを使える
  • プライベートな Container Registry が付いてる
  • 安心と実績のGoogleのDocker実行・管理

Heroku

  • $7/月。
  • NodeやRubyなど、複数の言語をサポート。
  • Dockerもサポート。
  • 様々なAdd-onで、RDBやRedis、Monitoringなどを簡単に追加できる。
  • 日本語での情報が多い(昔は無料だったから?

ElasticBeanstalk

  • ELB + EC2構成が簡単に構築できる。
  • PaaSに近い。デプロイなども手軽に出来る。
  • JavaやPHPなど、Herokuと同程度の言語サポート。
  • Dockerもサポート。
  • IAMを使って、AWSの各種サービスとの連携が容易。

ECS

  • Dockerの運用に特化。
  • EC2インスタンスをクラスタ化。
  • ELBやデプロイは自分でなんとかしないといけない。

AWSに移行した場合の構成

  • ECS
  • DynamoDB
  • S3

Terraformで構築してみた

Terraformとは

https://www.terraform.io/intro/

  • HashiCorpのインフラ構築用のツール
  • CloudFormationのように、コードでAWSリソースを操作できる。

AWSでTerraformに入門 | Developers.IO

CloudFormationとの違い

  • 実行前にplanを確認できる
  • グラフ化出来る

導入方法

macの場合、下記でお手軽に始められる。

brew install terraform

構築イメージ

オチ

t2.micro一台では、無停止デプロイが出来ない。 Amazon ECS に途中で挫折しないために | ORIH

ElasticBeanstalk Dockerで良いのでは?

  • お手軽に始めるのであれば、圧倒的にElasticBeanstalkが楽。
    • Service とか Taskとかの概念を学ばなくてもいい。
    • デプロイとかもいい感じにやってくれるっぽい。
  • 複数のEC2インスタンス x 複数種類のDocker containerとかになると、ECSの柔軟性が必要?

AWSのDockerデプロイサービスを比較する | Developers.IO

ちょっとまだ調査不足。

参考

http://christina04.hatenablog.com/entry/2015/03/29/192227

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment