Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

298 views

Published on

Go製フレームワークアプリechoで作った簡単なAPIアプリを、
GKEで動かすハンズオンの資料です。

Published in: Engineering
  • Be the first to comment

  • Be the first to like this

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

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

×