Slide 1

Slide 1 text

【GAE 、CloudSQL 】 Elixir /Phoenix で開発したDB アプリをGAE にデプロイ Hiroshi Kodama [email protected]

Slide 2

Slide 2 text

自己紹介 名前: 児玉 寛 所属: カラビナテクノロジー株式会社 呼称: マイク GCP 歴: 名前だけ知ってた Twitter など: @NeunKrain

Slide 3

Slide 3 text

ここに来るまでの私 GCP ってなんか難しいと思ってた。 というか、クラウドという段階で躊躇していた。 弊社の開発合宿で、初めて顔見知りになった。 Elixir/Phoenix を最近利用してます。

Slide 4

Slide 4 text

そうだ! GAE にデプロイしてみよう! と、いうことで実践しました。

Slide 5

Slide 5 text

はじめに 詳細はQiita 記事あります。今回は抜粋してお話。 ※ Qiita 記事: GAE(+CloudSQL) 環境に Elixir+Phoenix をデプロイして動かしてみるまで。 環境構築等がとっても簡単で、身近になれるんだ! が伝わればと思います。

Slide 6

Slide 6 text

やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy Elixir プロジェクト作成 デプロイ・確認

Slide 7

Slide 7 text

やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy Elixir プロジェクト作成 デプロイ・確認

Slide 8

Slide 8 text

GCP の新規プロジェクトを作成 ダッシュボードから「新しいプロジェクト」を押 します。 プロジェクト名を決めて、作成ボタンを押します。 これだけです。簡単ですね!!

Slide 9

Slide 9 text

やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy Elixir プロジェクト作成 デプロイ・確認

Slide 10

Slide 10 text

CloudSQL のインスタンス作成 メニューからSQL を選びます インスタンス作成を押します。

Slide 11

Slide 11 text

CloudSQL のインスタンス作成 データベースを選びます。 インスタンスID を決めて、作成ボタンを押します。 これだけです。簡単ですね!!

Slide 12

Slide 12 text

やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy Elixir プロジェクト作成 デプロイ・確認

Slide 13

Slide 13 text

GoogleCloudSDK のインストール・初期化 公式サイト を参考に導入します ローカルからCloudSQL に接続 ※CloudSQLProxy 公式サイト を参考にCloudSQLProxy を導入します これだけです。権限設定が少し大変です!! # UNIX ソケットの場合のプロキシ開始 sudo mkdir /cloudsql; sudo chmod 777 /cloudsql ./cloud_sql_proxy -dir=/cloudsql -instances=

Slide 14

Slide 14 text

やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy Elixir プロジェクト作成 デプロイ・確認

Slide 15

Slide 15 text

Elixir プロジェクト作成 Elixir プロジェクトを作成します。 mix phx.new gae_cloudsql_ex_phx --no-brunch DB 接続情報を修正します。※password とsocket_dir config :gae_cloudsql_ex_phx, GaeCloudsqlExPhx.Repo, adapter: Ecto.Adapters.Postgres, username: "postgres", password: ※CloudSQL のユーザパスワード, # ここ database: "gae_cloudsql_ex_phx_dev", socket_dir: "/cloudsql/", # ここ pool_size: 10

Slide 16

Slide 16 text

Elixir プロジェクト作成 簡単なAPI を作成し、Migrate 実行します。 mix phx.gen.json Api Test tests subject:text ~ 略~ mix ecto.migrate Migrate を実行後、CloudSQL を確認します。 DataBase が作成されていますね!

Slide 17

Slide 17 text

やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy Elixir プロジェクト作成 デプロイ・確認

Slide 18

Slide 18 text

デプロイ・確認 コミュニティチュートリアル を参考にします。 ※ デプロイ準備のファイル修正箇所は割愛します。 デプロイコマンド実行 gcloud app deploy ※ デプロイ対象プロジェクトを選ぶ場合は以下のようです。 gcloud app deploy --project=

Slide 19

Slide 19 text

デプロイ・確認 URL に接続します。 適当にポストしてみます。 無事、GAE での確認ができました!!

Slide 20

Slide 20 text

まとめ

Slide 21

Slide 21 text

まとめ 環境周りって難しいって思ってたんですが・・・ → GAE+CloudSQL の環境構築が簡単! → CloudSQLProxy での接続が簡単!! → デプロイもコマンド実行で簡単!!! GCP を利用することで・・・ → 環境周りがとても身近になった気がしました!!

Slide 22

Slide 22 text

おわり