Lambda Cloud (GPU Cloud) の使い方

格安でGPUインスタンスが使えると評判のLambda Cloudを試してみる。
https://cloud.lambdalabs.com

## 各画面共通

- ダイアログの外をクリックすると中断できる。

## SSH key 作成

- 左メニューの`SSH keys`を選び、右上の`Add SSH key`を押す。

![SSH keys](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/60d67420-a23d-b4d8-9a5c-c8e8d7fbe34f.png)

- 下の`Generate a new SSH key`を押す。
 
![Generate a new SSH key](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/26a8df90-89f5-b928-7e3b-8e41b23507c7.png)

- Nameに`for-lambdalabs`などのpemファイル名を入力し、`Create`を押すと`pemファイル`がダウンロードされる。ダウンロードした`pemファイル`ファイルは以下のように権限を変更しておき、SSHで接続する際に必要なので`~/.ssh`配下へ保存するなどして大切に保管する。

```
chmod 600 for-lambdalabs.pem
```

![Create](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/58bf78d3-bee5-bbc0-9b6d-fe8063e6e01d.png)

## GPU Instance 作成

- 左メニューの`Instances`を選び、右上の`Launch instanceを押す。

![Launch instance](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/d6435ce2-04a4-e176-e43d-75623ee97891.png)
`
- インスタンスタイプを選ぶ。

![Select instance type](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/98587148-6994-833e-f61a-b27cf50628af.png)

- リージョンを選ぶ。

![Select region](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/b2c91581-6b6a-bd22-7d70-f2084dc0f572.png)

- ファイルシステム選択で`Don't attach a filesystem`を選ぶ。

![Don't attach a filesystem](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/f1f1397d-6166-7621-1e99-1205d00584f5.png)


- 使用するSSHキーを選び(自動的に上で作ったものが選ばれる)、`Launch instance`を押す。

![for-lambdalabs](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/06a118f5-a2d1-7c2f-84a4-21bc42d2cb25.png)

- `I agree to the above`を押す。

![I agree to the above](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/1bd43c7b-0bc6-6e6a-cc83-358388c19ea5.png)

- 少し待つと、STATUSが`Booting`となる。

- 少し待つと、IP ADDRESSが表示される。まだ接続できないため、この間に必要に応じて`~/.ssh/config`などを設定しておく。

- 1xなら比較的早く、10xのものは10分くらいかけてSTATUSが`Running`となる。

※ この`Running`待ち時間も料金が発生しているので注意。

- SSH LOGIN に表示されるIP ADDRESSやUSERでログインする。

```bash
ssh ubuntu@[IP Address] -i [pemファイル]
```
あとはAmazon EC2などと同じ感覚で利用できるが、インスタンスの停止は出来そうにないので、使い終わったインスタンスはすぐに削除する。

## GPU Instance 削除

- 左メニューの`Instances`を選び、削除したいインスタンスの左のチェックボックスをつけて、右上の`Terminate`を押す

![Terminate](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/6ab8735d-e23e-aa62-1f54-4c1327dac404.png)

- `erase data on instance`と入力し`OK`を押す。

![erase data on instance](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/2ab2a2f2-d26b-ae89-4acf-c84cdfe8a2ad.png)

## 料金の確認

左メニューの`Usage`を選ぶと、これまでのインスタンス起動履歴とその料金や合計金額が表示される。

![Usage](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/42581/53281e4b-043f-326d-311e-5fc2049d8860.png)

## IP Address 入力が面倒な場合

```:~/.ssh/config
Host [Alias Name]
  HostName [IP Address]
  User ubuntu
  IdentityFile [Path to pem file]/for-lambdalabs.pem
```

などとやっておくと、以下のように接続できるため`IP Address`がコロコロ変わっても同様にに接続出来る。

```bash
ssh [Alias Name]
```

[Transmit](https://panic.com/jp/transmit/)や[Cyberduck](https://cyberduck.io/)の接続先も[Alias Name]のままでOKなので便利。

## 初回SSH時に`yes`を押すのが面倒な場合

```
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? 
```

が表示されるのが面倒であれば、以下のようにすることも出来る。

```bash
ssh -oStrictHostKeyChecking=no [Alias Name]
```