Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
【GAE、CloudSQL】Elixir/Phoenixで開発したDBアプリをGAEにデプロイ
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
KrainNeun
February 14, 2019
Programming
610
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
【GAE、CloudSQL】Elixir/Phoenixで開発したDBアプリをGAEにデプロイ
KrainNeun
February 14, 2019
Other Decks in Programming
See All in Programming
Heart of Swift Concurrency
koher
0
360
RSSとCodexを使ってX投稿自動化してみた
ochtum
0
110
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
300
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
0
150
世界の中心で、AI(App Intents)をさけぶ ー App Intents中心設計の実践ガイド
touyou
0
450
Jetpack Compose メカニズム
skydoves
0
140
【DroidKaigi 2026】「アクセシビリティを利用するとき、 アクセシビリティもまたこちらを利用している」 〜マルウェアによる攻撃と防衛について〜
halunoyo
0
450
[DroidKaigi 2026] Bring your own phones to Gradle Managed Devices
f2lk
0
120
AI × TiDD / 2026.09.05 Redmine 大阪
tokudiro
1
140
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
170
Vibes Containers 〜AIで変わるコンテナ設計と運用〜
tkikuc
3
530
マイコン向けの軽量Ruby「PicoRuby」で各種デバイスを制御するネイティブアプリの実現手法
bash0c7
0
370
Featured
See All Featured
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
2.8k
Paper Plane (Part 1)
katiecoart
PRO
1
11k
Optimising Largest Contentful Paint
csswizardry
37
4k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
Bash Introduction
62gerente
615
220k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
270
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
570
YesSQL, Process and Tooling at Scale
rocio
174
15k
Transcript
【GAE 、CloudSQL 】 Elixir /Phoenix で開発したDB アプリをGAE にデプロイ Hiroshi Kodama
[email protected]
自己紹介 名前: 児玉 寛 所属: カラビナテクノロジー株式会社 呼称: マイク GCP 歴:
名前だけ知ってた Twitter など: @NeunKrain
ここに来るまでの私 GCP ってなんか難しいと思ってた。 というか、クラウドという段階で躊躇していた。 弊社の開発合宿で、初めて顔見知りになった。 Elixir/Phoenix を最近利用してます。
そうだ! GAE にデプロイしてみよう! と、いうことで実践しました。
はじめに 詳細はQiita 記事あります。今回は抜粋してお話。 ※ Qiita 記事: GAE(+CloudSQL) 環境に Elixir+Phoenix をデプロイして動かしてみるまで。
環境構築等がとっても簡単で、身近になれるんだ! が伝わればと思います。
やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy
Elixir プロジェクト作成 デプロイ・確認
やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy
Elixir プロジェクト作成 デプロイ・確認
GCP の新規プロジェクトを作成 ダッシュボードから「新しいプロジェクト」を押 します。 プロジェクト名を決めて、作成ボタンを押します。 これだけです。簡単ですね!!
やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy
Elixir プロジェクト作成 デプロイ・確認
CloudSQL のインスタンス作成 メニューからSQL を選びます インスタンス作成を押します。
CloudSQL のインスタンス作成 データベースを選びます。 インスタンスID を決めて、作成ボタンを押します。 これだけです。簡単ですね!!
やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy
Elixir プロジェクト作成 デプロイ・確認
GoogleCloudSDK のインストール・初期化 公式サイト を参考に導入します ローカルからCloudSQL に接続 ※CloudSQLProxy 公式サイト を参考にCloudSQLProxy を導入します
これだけです。権限設定が少し大変です!! # UNIX ソケットの場合のプロキシ開始 sudo mkdir /cloudsql; sudo chmod 777 /cloudsql ./cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION # プロキシへの接続 psql "sslmode=disable host=/cloudsql/<INSTANCE_CONNECTION_NAME>
やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy
Elixir プロジェクト作成 デプロイ・確認
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/<INSTANCE_CONNECTION_NAME>", # ここ pool_size: 10
Elixir プロジェクト作成 簡単なAPI を作成し、Migrate 実行します。 mix phx.gen.json Api Test tests
subject:text ~ 略~ mix ecto.migrate Migrate を実行後、CloudSQL を確認します。 DataBase が作成されていますね!
やっていくこと GCP の新規プロジェクトを作成 CloudSQL のインスタンス作成 GoogleCloudSDK のインストール・初期化 ローカルからCloudSQL に接続 ※CloudSQLProxy
Elixir プロジェクト作成 デプロイ・確認
デプロイ・確認 コミュニティチュートリアル を参考にします。 ※ デプロイ準備のファイル修正箇所は割愛します。 デプロイコマンド実行 gcloud app deploy ※
デプロイ対象プロジェクトを選ぶ場合は以下のようです。 gcloud app deploy --project=<PROJECT>
デプロイ・確認 URL に接続します。 適当にポストしてみます。 無事、GAE での確認ができました!!
まとめ
まとめ 環境周りって難しいって思ってたんですが・・・ → GAE+CloudSQL の環境構築が簡単! → CloudSQLProxy での接続が簡単!! → デプロイもコマンド実行で簡単!!!
GCP を利用することで・・・ → 環境周りがとても身近になった気がしました!!
おわり