LoginSignup
3
5

More than 5 years have passed since last update.

AWS Cloud9とGCP App Engineを使った使用感をまとめてみた

Posted at

まえおき

  • Goアドカレに投稿する予定でしたが、遅れてしまいましたすみません・・・
  • 技術ネタじゃないです:bow:
  • 異なる端末、NW環境でも、同じ開発環境を使いたかったので、いい方法を探ってみました
  • テストコードはGo言語のGinフレームワークのものを使用させていただきました

AWS(Amazon Web Service)の場合

Cloud9

AWS Cloud9が出来ていたので、そちらを使ってみました!
Cloud9自体は1日くらいしか使ったことは無いので詳しくないですが、
機能的には殆ど変わらない気がします!

1. プロジェクト名や開発環境の設定を行う

Cloud9のページから各設定を行います。
「Environment type」は初回は「EC2」でいいと思いますが、説明通り
EC2インスタンスがプロジェクトごとに建てられる(ハズな)ので
毎回選択することは避けて、専用インスタンスを立てて「SSH」を選択するほうが良いと思います。

2. プロジェクトを作成する

ここから先はIDE上での操作です。

1が終わるとCloud9のIDEが開かれていると思います。
(Cloud9 > Your environments > 対象プロジェクトの[Open IDE]でもOK)

2-1. 新規ファイルを作成

File > New Fileでmain.goという名前のファイルを作成します。

main.go
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}
2-3. 新規ファイルを保存

File > Save で保存します。
※ Ctrl+n, Ctrl+sといったショートカットも使えます

2-4. 必要なパッケージの取得

IDEの下部にbashがあるので、go getを実行します

bash
$ go get github.com/gin-gonic/gin

3 動作確認

3-1. プログラムの実行

右上のツールバーにRunボタンがあるのでクリックするとプログラムが実行されます。

3-2. Webアプリケーションのプレビュー

右上のツールバーの[Preview > Preview Running Application]をクリックすると
プレビュー画面が表示されます。別タブで表示させることも可能です。

GCP(Google Cloud Platform)の場合

クイックスタートを始める

1. コンソール画面からApp Engineを開く

コンソール画面の左ツールバーからApp Engine > ダッシュボードをクリック

2. GAE(Google App Engine)からgoのサンプルを動かしてみる

GAEのダッシュボード上に「初めてのアプリへようこそ」というカードが表示されていると思います。
カード上の「言語を選択」からgoを選び、クイックスタートを触ってみましょう。

GAE上でgoプロジェクトを新規作成する

1. GAEのダッシュボードからCloud Shellを開く

2. プロジェクトを作成する

cloud-shell
$ cd ~/src
$ mkdir testProject; cd $_
cloud-shell
$ go get github.com/gin-gonic/gin
$ vim main.go
main.go
package main

import "github.com/gin-gonic/gin"

func main() {
    r := gin.Default()
    r.GET("/", func(c *gin.Context) {
        c.JSON(200, gin.H{
            "message": "pong",
        })
    })
    r.Run() // listen and serve on 0.0.0.0:8080
}
cloud-shell
$ go run main.go

「ポート上でプレビュー」でブラウザからアクセスすると、生成したコードの動作が確認できます。
※ ただし、このままだとデプロイ出来ないので、他に必要な操作があるみたいです。(app.yaml置くだけではダメでした・・・)追記するか、別記事で書きます:bow:

今のところのメリット・デメリット

AWS Cloud9

対応言語

C++/C#/CoffeeScript/CSS/Dart/Go/Haskell/HTML/Java/JavaScript
Node.js/PHP/Python/Ruby/Shell Script

メリット

  • 即時公開もできる(おそらく)
  • プロジェクト作成が簡単
  • IDE付き
  • 対応言語が多い

デメリット

  • 東京リージョンは無い
  • 管理に気をつけたほうが良い 簡単にEC2が立ち上がってしまうので、 管理はきっちりしないと(請求が)怖いなというところです。

GCP App Engine

対応言語

Go/PHP/Java/Python/Node.js/.NET/Ruby

メリット

  • .NETが対応している
  • クイックスタート付き
  • Cloud9+EC2よりは課金額は下がる (確か、自動で実行を停止させる機能があったハズ)

デメリット

  • あくまで開発用。本番公開は出来ない(おそらく)
  • デプロイするにはコマンド覚える必要がある
  • 本番環境への適応にはDockerの知識が必要(?)

まとめ

個人的には、必要な知識は少ないのでAWS Cloud9を推したいです。
(AWS歴が長いからかもしれませんが・・・。)
ですが、GCPの親切さはAWSを上回ってると思いました。

3
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
5