0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Cloud Workstations で構築する SQL 100本ノック環境 🏏

Last updated at Posted at 2023-03-13

こんにちは。Enabling team の山本です。

みなさんは花粉症対策されていますか🌲?

「フラクトオリゴ糖」が花粉症に効果があると業務委託メンバーに聞き、自分の体を利用した実験を始めました。
次回の記事で、「フラクトオリゴ糖」の経過を書きたいと思います。
現時点では、キマってるような気がします 🤩✨

まえおきはこのくらいにして、今回は Cloud Workstations(Workstations)について書きます。

ご存じのとおり、Workstations は、Cloud 上に開発環境を構築できるサービスです。(記事作成時点では Preview です)
4月から始まる「新入社員研修の開発環境(SQL 100本ノック環境)」を構築するため、Workstations の設定を見ていきます。

新入社員研修の開発環境(SQL 100本ノック環境)

  • 小売の現場を変革するためには、データを利用した意思決定が不可欠です。データの利活用の第1歩として、SQL の使い手になってもらう必要があります。
  • 弊社の Engineer の端末は、Mac と Windows が混在しています。
    Windows は、ソフトウェアのインストールが統制されており、自由にソフトウェアをインストールすることができません。

こういった理由から、Engineer の端末環境に依存しない開発環境を必要としていました。

要件は、以下のとおりです。

  • 再現性。データが壊れても何度でも作り直せる。
  • 期間限定。研修後は必要なくなる。
  • セキュリティ。リモートワークで研修を進める期間があるためリーモートでログインできる。

Cloud Workstations

Workstations は、Cluster 上の Node に IDE が preinstall されたサービスです。

  • 使わない時は、停止できる。
  • 一定時間未使用の場合は自動で停止される。
  • 状態は Disk に保持される。
    例えるなら Kubernetes の Deployment に remote でログインし操作するような環境です。
    そこが Google の Security で保護されている。

今回、Workstations を新入社員研修の開発環境として運用してみることにしました。

課題1:Devcontainer(Remote Container)はどうする?

環境を構築し始めて、問題点に気づきました。
それは、Devcontainer が使えないことです。
SQL の研修として、Devcontainer の Docker(PostgreSQL)を使用するつもりでした。
しかし、Workstations で Devcontainer を使用できないようです。
そこで改めて Docs を読むと、こう書いてあります。

VPC 内の実際の環境でコードを実行する
Cloud Workstations は VPC 内で実行可能なため、コードをプライベート ネットワークとステージング環境で開発して実行でき、サービスをエミュレートする必要はありません。

要するに、VPC に接続されているものであれば、Workstations から接続できる。
これを利用できれば、Devcontainer のようなことができます。
実際に、Code-OSS の Terminal から Compute Engine Instance に Ping してみると、以下のとおり通信できることがわかります。

user@workstation-danny:~/sitemap-submit$ ping 10.128.0.4
PING 10.128.0.4 (10.128.0.4): 56 data bytes
64 bytes from 10.128.0.4: icmp_seq=0 ttl=63 time=3.905 ms
64 bytes from 10.128.0.4: icmp_seq=1 ttl=63 time=0.430 ms
64 bytes from 10.128.0.4: icmp_seq=2 ttl=63 time=0.444 ms
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max/stddev = 0.430/1.593/3.905/1.635 ms
user@workstation-danny:~/sitemap-submit$ 

検証1

Workstations の PostgerSQL Tool で接続できるかを検証します。
今回は、Compute Engine に PostgreSQL をインストールします。

  1. Compute Engine で Instance を起動する。
     yamamoto_daisuke@instance-1:~$ sudo apt update
    
  2. PostgreSQL を Install する。
     yamamoto_daisuke@instance-1:~$ sudo apt install postgresql
     yamamoto_daisuke@instance-1:~$ psql --version
     psql (PostgreSQL) 13.9 (Debian 13.9-0+deb11u1)
    
  3. PostgreSQL の User/Password を設定する。
     yamamoto_daisuke@instance-1:~$ sudo passwd postgres
     yamamoto_daisuke@instance-1:~$ su - postgres
     postgres@instance-1:~$ createuser --pwprompt --interactive sample1
     postgres@instance-1:~$ vi /etc/postgresql/13/main/postgresql.conf
     postgres@instance-1:~$ vim /etc/postgresql/13/main/pg_hba.conf
     postgres@instance-1:~$ exit
     yamamoto_daisuke@instance-1:~$ sudo systemctl restart postgresql
     yamamoto_daisuke@instance-1:~$ systemctl status postgresql
    
  4. Code-OSS に PostgreSQL Tool の extension を追加する。
  5. Code-OSS から PostgreSQL に接続する。
  6. 接続成功❗️❗️❗️
    スクリーンショット 2023-03-14 6.38.34.jpg

まとめ

Cloud Workstations について書きました。

途中、Devcontainer 問題で行き詰まりかけて焦りました 💦

ちなみに、僕が新入社員研修に関わるのは、今年が初めてです。

新入社員研修は、彼ら・会社・僕たちの未来に関わることですので、本気で向き合う必要があると思っています。

やれることは、100%取り組んで、また、来年の新入社員研修に活かせればと思います。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?