背景
私はインフラ周りが苦手で、lazyな私は環境構築は最小限で済ませてきました。
最近勉強する中でGPUを使いたい場面が多くなってきており、騙し騙しやってましたが
過去にブログ記事を見ながらクラウド開発環境を構築した内容をまとめることにしました。
対象者
- クラウド開発環境構築が初めての方
- ずっとじゃないけど時々PCスペックが必要な処理が出てくる方
概要
今回はDockerを扱わず、クラウド上に開発マシンを作って簡単にアクセスするところまでをやってきます。
インスタンス設定も必要最低限のところの説明とします。
OS: MacOS
クラウドサービス: GoogleCloud
エディタ:VSCode
前提
- GoogleCloudへの登録(初回登録だと$300利用無料クーポンがついてきます)
- VSCodeのインストール
作業
プロジェクト構築
GoogleCloudのトップ画面がから新しいプロジェクトを作成します。
私は”dev env”というプロジェクトを作成しました。
VMインスタンスの作成
ハンバーガーマーク>Compute Engine>VMインスタンスを選択します
名前、リージョンとゾーン、マシン構成を決めます。
今回は名前を”dev-env”, リージョンは”大阪”, ゾーンは”asia-northeast2-a”にします。
SeriesはE2とします。
ここのプリセットでPCスペックを決めることができます。
基本はプリセットの中から選択しますが、カスタムで設定することも可能です。
今回はスペックが少し欲しいというモチベーションなので16vCPU 64GBメモリを選択します。
インスタンス利用が溢れた場合強制的に切られてしまいますが開発用途なので可用性ポリシーは”スポット”を選択します。
あとは一番下の”作成”を押下すればインスタンスが作成されます。
ここから課金が開始されますのでご認識ください。
認証鍵の作成
VSCodeから接続するためのSSHの設定を行います。
ローカルでSSHの認証鍵を作成します。
- ターミナルで
ssh-keygen -t ed25519 -C “{username}”
を実行します。{username}にはsshでログインするusernameを入れます。 - 保存場所が聞かれますが今回はデフォルトに保存しますのでそのままEnter
- 次にパスコードですがこちらを設定すると鍵認証+パスコード認証となります。今回はスキップしたいのでそのままEnter
上記完了すると指定した保存先に2つのファイルが生成されます。
公開鍵の登録
再びGoogleCloudコンソール上で左上ハンバーガーマーク>Compute Engine>メタデータ>SSH認証鍵を選択し”SSH認証鍵を追加”を押下します
以下枠に先ほど作成した”id_ed25519.pub”のファイル内容をコピーして貼り付け、”保存”を押下して登録完了です。
SSH configを作成
sshの設定ファイルを作成します。保存先は~/.ssh
何かしらのテキストエディタでもVSCodeでも良いので以下のように記載します。
Host gcp
user {username}
hostname xx.xxx.xxx.xxx
identityfile ~/.ssh/id_ed25519
Hostは適宜変更可能です。 userは認証鍵を作成した際に指定した{username}を入れます。
hostnameはインスタンスを立ち上げた際に割り振られた外部IPになります。
VSCodeでSSH接続設定
VSCode側でのSSH接続準備をします。
拡張機能メニューにて”Remote Development”と入力して検索を行い、インストールします。
インストール完了するとディスプレイアイコンのリモートエクスプローラが表示されるため選択します。
リモートエクスプローラを”リモート(トンネル/SSH)”で選択するとSSHは以下にgcpが表示されています。
こちらは先ほど作成したconfigから参照されています。 なのでこちらを選択すればSSH接続ができます。
左下の緑網掛け部分が”SSH: gcp”となれば完了。これでクラウド開発環境接続できました。
おまけ
現在のインスタンスでは外部IPが動的で停止するごとに変わってしまうのでsshのconfigを書き直す必要があります。
lazyな私は固定IPがいいと考えましたので設定加えました。
ハンバーガー>VPCネットワーク>IPアドレス>外部静的IPアドレスを予約するを選択して作成、この際に紐付け先のインスタンスも指定すればOKです。
こちらは別料金かかるのでお気をつけ下さい。(IP予約したけどインスタンスに紐づけてなかったらより一層料金とられるそうです。)
まとめ
クラウド開発環境構築とSSH接続までの紹介でした。
ここから仮想環境作ったり、git cloneで持ってきたりすればインスタンスのスペック活用して実装が可能です。
今回GPUの説明は省略しましたが、マシンタイプ選択するときにGPUを選択すれば利用できます。ただ、GoogleCloudの場合、GPU使うのに枠拡大の申請が必要で今回は説明省略しました。
ただ、申請もすぐできて、approve mailも1hくらいで来たので大変ではなかったです。