Hejdaの見る夢

一人前のエンジニアを目指して頑張ったこととかをつらつら書くブログ

LINE DC 主催のハンズオン勉強会のサポート役(講師側)をやってきました

概要

LINE Developers Community ( 以下、LINE DC ) が主催する勉強会にて、講師側で参加したので簡単にまとめておきます。

connpass

[1/27(水)] 【初心者向け】LINEではじめるWebアプリ開発入門ハンズオン [ミニアプリNight]

linedevelopercommunity.connpass.com

当日まで何をやっていたか

過去に何回か勉強会のお手伝いをしている縁があり、LINE DC の鍋島さんに誘われて、今回の勉強会のお手伝いをすることになりました。

今回のイベントは今までのハンズオンよりももっと基礎的なところから話したいとのことで、クラウドホスティングする形ではなく Web 周りの基礎講義をした後に、 Katacoda を用いて簡単なハンズオンをしようという流れになりました。

わたしの場合は主業務の関係上 よく GCP まわりの資料作りやアイデア出し、コード作成などをするのですが、今回はサポート役としてジョインする形です。

なので、当日までにお手伝い出来るとこはあまりなかったのですが、途中で簡単なデバックのお手伝いなどをしてしていました。

当日

当日は参加者から来た質問などへの返信と勝手にガヤ担当(コメントスクリーンに積極的にコメントするなど)をしていました :)

Twiiter にもいつくかコメントを残してます。

また、事前準備では出なかったエラー(というか不具合)が当日に出て焦りましたが、その場で原因を特定して修正することで講師・参加者ともにハンズオンを最後までやりきることが出来ました。

ここらへん、デバックのところを少しだけお手伝いたのでサポートとして役に立てたかと思います :)

今回のイベントは事前準備含め、ほぼお手伝い出来ていない罪悪感があったので、2重の意味でホッとしていました ;)

まとめ

過去にハンズオンのお手伝いを数回させて頂きましたが、今回も良いイベントだったと思います(準備はほとんど手伝っていませんが…)

ハンズオンのソースコードも一般公開しているので復習が出来るし、それを元に新しく自分でコードを書くことが出来ると思います。

次は自分でなにかイベントを主催したいな〜となんとく思いました。

まずはネタ探しから始めてみよかと思います :)

Have fun !! :)

2020年の振り返りと2021年のこれから

2020 年の振り返りと 2021 年の抱負です :)

新年あけましておめでとうございます🎍

この記事を書いている時点で既に正月三が日はとうに過ぎていますが、区切りとして 2020 年の振り返りと 2021 年の抱負を残しておこうと思います。

去年の振り返り記事 -> 2019年の振り返りと2020年のこれから

2020 年の振り返り

世間的な情勢

兎にも角にも コロナ が猛威を振るいましたね :(

幸いなことに自分はコロナに罹らず、近親者にも罹った人はいませんでした。

近親の方・親しい方に感染があった方につきましては、ご心中お察し申し上げます。

感染拡大を抑えるために世界規模でステイホームを呼びかけられる中、もともと引きこもりなので家の中でコードを書いたり、お酒を飲みながらゲームしたり、 Netflix で映画を見てたりしてました。

正常運転です :)

健康面

2019 年に発覚した持病はそのまま良くも悪くもなっていません。こればっかりは長く付き合っていかないといけないのでゆっくり付き合っていきます。

前にも増して家から出る機会が減ったので、体重が去年のこの時期より 3kg 増えました... 年末に Fit Boxing 2 を急遽購入して隔日でトレーニング && 炭水化物を減らし始めました :(

生活面

コロナの影響を受け、家で仕事を長時間することがメインになったので、家に仕事が出来るちゃんとした机と椅子を設置しました。

あとは冬場は暖房をつけると頭痛がするので、今冬からデロンギを導入しました。今の所、頭痛も無く快適です :)

技術面

仕事面でいうと 7 月頃に、配属しているチームが変わりました。それまでは自分のスキルを生かして働けずなかなか結果を残せずにいましたが、移動後はスキルを活かしつつ前向きな結果を残せつつあります :)

プライベートでもコミュニティの運営やカンファレンスのスタッフ、ハンズオン回の講師など幅広く経験をさせて頂きました。どれも自分にとっては新鮮かつ先進的な経験でしたので、誘って頂いた皆様に感謝しています :D

2021 年の抱負

2021 年は比較的に新しいことに多くチャレンジ出来た反面、一個一個の経験に対しての学びや定着が追いついていないように思っています。

少なくともハンズオン回の講師をやった後はブログにまとめようと考えていたにも関わらず出来ていないので、貴重な経験をしっかり自分のものにするためにもチャレンジは引き続き継続しつつ、アウトプットをしっかりやっていきたいと思っています :(

サンプルのソースコードGitHub にまとめ、ブログの記事をこまめに書きつつ、主に Twitter で情報を収集と発信を出来たらいいなと思っています :)

では、今年もよろしくお願いします。

Have fun!! :)

Serverless NEG を試す ~リソースの削除~

注意

この記事は 別記事の リソースの削除 をコピーしています

構成

この記事の内容は長いため複数の記事に跨って作成しています。

適宜、興味のある記事を参照して下さい。

事前準備

  • GCP との認証をします。
gcloud auth login -q
### New Setting
export _pj_id='Your GCP Project ID'
export _common='check-serverless-neg'
  • GCP Project の設定をしておきます。
gcloud config set project ${_pj_id}
  • サンプルコードをダウンロードし、本記事のサンプルコードが格納しているディレクトリに移動します。
cd [Your WorkSpace]
git clone https://github.com/iganari/package-gcp.git
cd package-gcp/compute/networkendpointgroups/serverless

やること

  • ここまでに作成してきたリソースを削除します。

リソースの削除

  • LB リソースの削除
gcloud compute forwarding-rules delete ${_common}-https-content-rule --global

gcloud compute target-https-proxies delete ${_common}-https-proxy

gcloud compute ssl-certificates delete ${_common}-www-ssl-cert 

gcloud compute url-maps remove-path-matcher ${_common}-url-map --path-matcher-name=${_common}-path-matcher

gcloud compute url-maps delete ${_common}-url-map 

gcloud compute backend-services delete ${_common}-backend-service-run --global

gcloud compute backend-services delete ${_common}-backend-service-app --global

gcloud compute backend-services delete ${_common}-backend-service-func --global
  • Serverless NEG リソースの削除
gcloud beta compute network-endpoint-groups delete ${_common}-serverless-neg-run --region=asia-northeast1

gcloud beta compute network-endpoint-groups delete ${_common}-serverless-neg-app --region=asia-northeast1 

gcloud beta compute network-endpoint-groups delete ${_common}-serverless-neg-func --region=asia-northeast1 
  • 静的 IP アドレスの開放
gcloud compute addresses delete ${_common}-example-ip --global

まとめ

これでリソースの削除も完了です!!

お疲れさまでした :)

Serverless NEG を試す ~External HTTP(S) Load Balancer の作成~

注意

この記事は 別記事の External HTTP(S) Load Balancer の作成 をコピーしています

構成

この記事の内容は長いため複数の記事に跨って作成しています。

適宜、興味のある記事を参照して下さい。

事前準備

  • GCP との認証をします。
gcloud auth login -q
### New Setting
export _pj_id='Your GCP Project ID'
export _common='check-serverless-neg'
  • GCP Project の設定をしておきます。
gcloud config set project ${_pj_id}
  • サンプルコードをダウンロードし、本記事のサンプルコードが格納しているディレクトリに移動します。
cd [Your WorkSpace]
git clone https://github.com/iganari/package-gcp.git
cd package-gcp/compute/networkendpointgroups/serverless

やること

  • External HTTP(S) Load Balancer の作成します。

External HTTP(S) Load Balancer の作成

各種の Serverless NEG を作成する

  • Cloud Run の Serverless NEG を作成する
gcloud beta compute network-endpoint-groups create ${_common}-serverless-neg-run \
    --region=asia-northeast1 \
    --network-endpoint-type=SERVERLESS  \
    --cloud-run-service=${_common}-run
  • App Engine の Serverless NEG を作成する
gcloud beta compute network-endpoint-groups create ${_common}-serverless-neg-app \
    --region=asia-northeast1 \
    --network-endpoint-type=SERVERLESS  \
    --app-engine-service=${_common}-app
  • Cloud Functions の Serverless NEG を作成する
gcloud beta compute network-endpoint-groups create ${_common}-serverless-neg-func \
    --region=asia-northeast1 \
    --network-endpoint-type=SERVERLESS  \
    --cloud-function-name=func
  • 作成した NEG を確認します。
    • :warning: 2020年7月現在は、GCP コンソール上では確認することが出来ません(※ β版)
gcloud beta compute network-endpoint-groups list
### 例

# gcloud beta compute network-endpoint-groups list
NAME                                     LOCATION         ENDPOINT_TYPE  SIZE
check-serverless-neg-serverless-neg-app   asia-northeast1  SERVERLESS     0
check-serverless-neg-serverless-neg-func  asia-northeast1  SERVERLESS     0
check-serverless-neg-serverless-neg-run   asia-northeast1  SERVERLESS     0

各種の Backend Service を作成する

  • Cloud Run 用の Backend Service を作成します。
gcloud compute backend-services create ${_common}-backend-service-run \
    --global
  • App Engine 用の Backend Service を作成します。
gcloud compute backend-services create ${_common}-backend-service-app \
    --global
  • Cloud Functions 用の Backend Service を作成します。
gcloud compute backend-services create ${_common}-backend-service-func \
    --global
  • Backend Service を確認します。
gcloud compute backend-services list
### 例

# gcloud compute backend-services list
NAME                                      BACKENDS  PROTOCOL
check-serverless-neg-backend-service-app            HTTP
check-serverless-neg-backend-service-func           HTTP
check-serverless-neg-backend-service-run            HTTP

Backend Service に Cloud Run 用の Serverless NEG を設定する

  • Cloud Run 用の Backend Service に Cloud Run 用の Serverless NEG を設定します。
gcloud beta compute backend-services add-backend ${_common}-backend-service-run \
    --global \
    --network-endpoint-group=${_common}-serverless-neg-run \
    --network-endpoint-group-region=asia-northeast1
  • App Engine 用の Backend Service に App Engine 用の Serverless NEG を設定します。
gcloud beta compute backend-services add-backend ${_common}-backend-service-app \
    --global \
    --network-endpoint-group=${_common}-serverless-neg-app \
    --network-endpoint-group-region=asia-northeast1
  • Cloud Functions 用の Backend Service に Cloud Functions 用の Serverless NEG を設定します。
gcloud beta compute backend-services add-backend ${_common}-backend-service-func \
    --global \
    --network-endpoint-group=${_common}-serverless-neg-func \
    --network-endpoint-group-region=asia-northeast1
  • Backend Service を確認します。
gcloud compute backend-services list
### Ex.

# gcloud compute backend-services list
NAME                                       BACKENDS                                                                        PROTOCOL
check-serverless-neg-backend-service-app   asia-northeast1/networkEndpointGroups/check-serverless-neg-serverless-neg-app   HTTP
check-serverless-neg-backend-service-func  asia-northeast1/networkEndpointGroups/check-serverless-neg-serverless-neg-func  HTTP
check-serverless-neg-backend-service-run   asia-northeast1/networkEndpointGroups/check-serverless-neg-serverless-neg-run   HTTP

URL map の作成

  • Load Balancer で使用する URL map を作成します。
    • デフォルトは Cloud Run にマッピングするようにします。
gcloud compute url-maps create ${_common}-url-map \
    --default-service ${_common}-backend-service-run
  • URL map のデフォルト以外の設定をします。
gcloud compute url-maps add-path-matcher ${_common}-url-map \
    --path-matcher-name=${_common}-path-matcher \
    --path-rules "/app=check-serverless-neg-backend-service-app,/func=check-serverless-neg-backend-service-func" \
    --default-service=check-serverless-neg-backend-service-run
  • URL map を確認します。
gcloud compute url-maps list
### Ex.

# gcloud compute url-maps list
NAME                          DEFAULT_SERVICE
check-serverless-neg-url-map  backendServices/check-serverless-neg-backend-service-run

マネージド SSL を設定する

  • www-ssl-cert という名前で Google マネージド SSL certificate リソースの作成をします。
export _my_domain=$(echo ${_common}.hejda.org)
gcloud compute ssl-certificates create ${_common}-www-ssl-cert \
    --domains ${_my_domain}
  • Certificate リソースの確認をします。
gcloud compute ssl-certificates list
### Ex.

# gcloud compute ssl-certificates list
NAME                               TYPE     CREATION_TIMESTAMP             EXPIRE_TIME  MANAGED_STATUS
check-serverless-neg-www-ssl-cert  MANAGED  2020-07-26T00:35:54.246-07:00               PROVISIONING
    check-serverless-neg.hejda.org: PROVISIONING

Load Balancer で使用する Forwarding Rule の作成

  • リクエストをプロクシにルーティングする forwarding rule を作成します。
gcloud compute forwarding-rules create ${_common}-https-content-rule \
    --address=${_common}-example-ip \
    --target-https-proxy=${_common}-https-proxy \
    --global \
    --ports=443
  • Forwarding Rule の確認をします。
gcloud compute forwarding-rules list
### 例

# gcloud compute forwarding-rules list
NAME                                     REGION  IP_ADDRESS      IP_PROTOCOL  TARGET
check-serverless-neg-https-content-rule          34.107.216.140  TCP          check-serverless-neg-https-proxy

---> これで、目的の Serverless NEG を使った External HTTP(S) Load Balancer の作成が完了しました!!

Web ブラウザで確認

ここまで作ってきたリソースを Web ブラウザで確認していきます。

Check the resources with a Web browser.

  • URL map on GCP console.

  • 上記のルールに該当しない場合は Cloud Run にマッピングされています。

まとめ

これで Serverless NEG を使った External HTTP(S) Load Balancer の作成が出来ました!!

最後に リソースの削除 をします。

Have fun! :)