SlideShare ist ein Scribd-Unternehmen logo
1 von 35
Downloaden Sie, um offline zu lesen
8/29開催 Go言語初心者向け
ハンズオン#2
株式会社リンクバル
技術部 技術グループ 船寄良登
APIアプリをGKEで動かしてみよう
1. 自己紹介
2. はじめに
3. GKEとkubernetesについて
4. ハンズオン
5. 最後に
アジェンダ
2
自己紹介
3
船寄 良登 (ふなよせ よしと)
経歴: 受託開発会社、広告代理店などでサーバサイドエンジニアとして、
webサービスの開発をおこなってきました。
これまでPHPerでしたが、最近、Railsを本格的に触り始めました。
リンクバルでは「街コンジャパン」の開発を担当しています。
趣味: 美味しい物を食べること、子供と遊ぶこと。
その他: Go言語に興味があります。Hatchobori.goというGo言語のもくもく会を立ち上げ
ました。https://hatchobori-go.connpass.com/
今回のハンズオンは、Go言語で作成した、簡単なapiアプリを
Google Container Engine(GKE)上へデプロイして、実行する内容となっております。
はじめに
4
Google Container Engine(GKE)とは
5
Google Cloud Platform内で、Dockerコンテナを実行できる
フルマネージドサービス。
kubernetesで管理されている。
kubernetesとは
kubernetes
「オーケストレーション・ツール」と呼ばれる分野の管理ツールで、
Googleが主体的に開発に参画しているオープンソース・ソフトウェアです。
● 関連するコンテナのグルーピング
● コンテナに割り振られるIPアドレスの管理
● コンテナの監視
● コンテナ間のネットワークルーティング管理
● コンテナに割り当てるストレージの管理
などをやってくれるソフト
6
Google Cloud Platformアカウントの作成
7
サイトへアクセスし、無料トライアルをクリック。
https://cloud.google.com
Google Cloud Platformアカウントの作成
8
入力をすすめる
Google Cloud Platformアカウントの作成
9
住所、氏名、クレカ情報を入力後、「無料トライアルを開始」ボタンを押下
Google Cloud Platformアカウントの作成
10
登録完了
Google Cloud Platform プロジェクトの作成
11
Google Cloud Platform プロジェクトの作成
12
今回「techlink」というプロジェクトを作成する。
Google Cloud Platform プロジェクトの作成
13
ハンズオンの中でIDを使用しますので、
どこかにメモしておいてください
Google Cloud SDKのインストール
14
ツールを任意の場所へダウンロードし、展開してください。
展開したツールの中に移動し、パス追加などを行います。
install.shの質問1(sdkの改善に協力してくれますか?)
install.shの質問2(パスを通してタブ補完を有効にしますか?)
google-cloud-sdk-158.0.0-darwin-x86_64.tar.gz
cd google-cloud-sdk
./install.sh
.bash_profileの再読込
初期化用のコマンドを実行
yを選択し、ブラウザが開かれる(開かれない場合はURLをアドレスバーへ入力)
Google Cloud SDKの初期化
15
gcloud init
source ~/.bash_profile
使用するアカウントを選択する
Google Cloud SDKの初期化
16
スコープの許可を行う
Google Cloud SDKの初期化
17
ユーザ認証完了
Google Cloud SDKの初期化
18
プロジェクトの選択
Google Cloud SDKの初期化
19
Google Compute Engineは使わない
Google Cloud SDKの初期化
20
コンテナクラスタの作成
21
下記のコマンドを実行する
gcloud container clusters create api-1 
--scopes cloud-platform 
--zone asia-northeast1-a 
--machine-type f1-micro 
--num-nodes 3
コンテナクラスタの作成
22
管理画面でクラスタが作成されたことを確認する。
dockerを起動させます。
apiサーバの作成
23
apiサーバの作成
24
下記のリポジトリを任意の場所へcloneし、
ディレクトリへ移動します。
ディレクトリへ移動し、dockerのビルドを行います。
「プロジェクトID」の部分だけ変更してください。
git clone https://github.com/funayoseyoshito/techlink-go2.git
cd techlink-go2
docker build -t gcr.io/techlink-hogehoge/api-1:v1 .
docker build -t {registroy host}/{プロジェクトID}/api-1:v1 .
apiサーバの作成とdocker imageのpush
25
実際に動かして見ましょう
ブラウザのアドレスバーへ「http://localhost:4000 」を入力し、
Hello Worldが表示されるはずです。
docker run -p 4000:4000 -it gcr.io/techlink-hogehoge/api-1:v1
apiサーバの作成とdocker imageのpush
26
Container Registryへプッシュします。
gcloud docker -- push gcr.io/techlink-hogehoge/api-1:v1
kubectlをインストールする。
(API経由でKubenetesを操作するためのクライアントツール)
kubectlのインストール
27
gcloud components install kubectl
deploymentの作成
28
docker runに相当するコマンドです
deploymentの確認をしてみましょう
クラスタ上にpodsが作成されていて、既に動いている状態です
kubectl run api-1 --image=gcr.io/techlink-hogehoge/api-1:v1 --port=4000
kubectl get deployments
kubectl get pods
Public IPの紐付け
29
deploymentへPublic IPを紐付ける
紐付けを確認する
kubectl expose deployment api-1 --type="LoadBalancer"
kubectl get services
アプリの動作を確認して見る
30
http://{IP}:4000
http://{IP}:4000/users
クラスタの削除
31
下記のコマンドでクラスタを削除します
gcloud container clusters delete api-1 --zone asia-northeast1-a
最後に
32
本日は、弊社の勉強会にご参加いただきまして、ありがとうございました。
これからも、有意義な勉強会を開催できるように努めますので、どうぞよろしくお願いします。
最後に、弊社ではエンジニア職を絶賛募集中です。
弊社に興味がある方、は是非、スタッフまでお声かけくださいませ。
また、お知り合いでご転職をお考えの方がいらっしゃいましたら、
弊社の事をお伝えいただけましたら幸いです。
[採用ページ]
http://linkbal.co.jp/recruit/
[エンジニアブログ]
http://tech.linkbal.co.jp/
どうもありがとうございました。
33
街コンジャパン
https://machicon.jp
・日本初のイベント特化型ECサイト
・4万件以上の街コン・パーティー情報を掲載
・会員数約100万 (2017年7月現在)
34
カップリンク
https://couplink.jp/
恋活・婚活 マッチングアプリ
Hatchobori.go
https://hatchobori-go.connpass.com/event/63145/
・Go言語のコミュニティを立ち上げました。
・主にもくもく会がメインです。
・参加者絶賛募集中ですので、
 こちらもよろしくお願いします。
35

Weitere ähnliche Inhalte

Ähnlich wie テックリンクGoハンズオン#2 APIアプリをGKEで動かしてみよう

Rubyでアプリ開発(2013 0430)
Rubyでアプリ開発(2013 0430)Rubyでアプリ開発(2013 0430)
Rubyでアプリ開発(2013 0430)
Shinichirou Nakamura
 
アジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたことアジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたこと
Arata Fujimura
 

Ähnlich wie テックリンクGoハンズオン#2 APIアプリをGKEで動かしてみよう (20)

Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!Rubyの仕事で食べていくために僕らは!
Rubyの仕事で食べていくために僕らは!
 
My Portfolio_Taichi Hidaka
My Portfolio_Taichi HidakaMy Portfolio_Taichi Hidaka
My Portfolio_Taichi Hidaka
 
Pythonを始めよう
Pythonを始めようPythonを始めよう
Pythonを始めよう
 
Goだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろうGoだけでモバイルアプリを作ろう
Goだけでモバイルアプリを作ろう
 
Rubyでアプリ開発(2013 0430)
Rubyでアプリ開発(2013 0430)Rubyでアプリ開発(2013 0430)
Rubyでアプリ開発(2013 0430)
 
My Portfolio Taichi Hidaka
My Portfolio Taichi HidakaMy Portfolio Taichi Hidaka
My Portfolio Taichi Hidaka
 
アプリ開発の境界問題を支えるツール
アプリ開発の境界問題を支えるツールアプリ開発の境界問題を支えるツール
アプリ開発の境界問題を支えるツール
 
私なりのGo言語のご紹介
私なりのGo言語のご紹介私なりのGo言語のご紹介
私なりのGo言語のご紹介
 
2017823 pythonを始めよう
2017823 pythonを始めよう2017823 pythonを始めよう
2017823 pythonを始めよう
 
Goでwebアプリを開発してみよう
Goでwebアプリを開発してみようGoでwebアプリを開発してみよう
Goでwebアプリを開発してみよう
 
GAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使うGAE/GoでLINE Messaging API を使う
GAE/GoでLINE Messaging API を使う
 
第1回プログラミング大学in福岡
第1回プログラミング大学in福岡第1回プログラミング大学in福岡
第1回プログラミング大学in福岡
 
勉強会用Swift授業2018-0126
勉強会用Swift授業2018-0126勉強会用Swift授業2018-0126
勉強会用Swift授業2018-0126
 
Easy easy2
Easy easy2Easy easy2
Easy easy2
 
DroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for AndroidDroidKaigi 2018 - Dialogflow for Android
DroidKaigi 2018 - Dialogflow for Android
 
20120827勉強会 webアプリ作ってみた2
20120827勉強会 webアプリ作ってみた220120827勉強会 webアプリ作ってみた2
20120827勉強会 webアプリ作ってみた2
 
多人数iOSアプリ開発を考える
多人数iOSアプリ開発を考える多人数iOSアプリ開発を考える
多人数iOSアプリ開発を考える
 
アジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたことアジャイル開発導入のためにやってきたこと
アジャイル開発導入のためにやってきたこと
 
インターネットで 可能性をつなげる、ひろげる 〜ペパボ福岡デザインチーム〜
インターネットで 可能性をつなげる、ひろげる 〜ペパボ福岡デザインチーム〜インターネットで 可能性をつなげる、ひろげる 〜ペパボ福岡デザインチーム〜
インターネットで 可能性をつなげる、ひろげる 〜ペパボ福岡デザインチーム〜
 
【初心者向け】Go言語勉強会資料
 【初心者向け】Go言語勉強会資料 【初心者向け】Go言語勉強会資料
【初心者向け】Go言語勉強会資料
 

テックリンクGoハンズオン#2 APIアプリをGKEで動かしてみよう