---
# System prepended metadata

title: AWS Sagemaker 使用注意事項

---

# AWS Sagemaker 使用注意事項

## 懶人包

大部分起的服務大致上可以依照以下3個方向去設定：

- tag記得加。
- instance沒用記得關。
- 有設定VPC的話，security group記得設定好。

以下舉兩個Sagemaker常用的服務「Notebook Instance」&「Studio」作為例子，其他服務可參照相同概念設定。

---

## 1. Notebook Instance 

- 適用於：個人輕量級實驗。

參考：https://docs.aws.amazon.com/sagemaker/latest/dg/howitworks-create-ws.html

### Tag

在建立Notebook Instance時，增加以下Tag：
  - `Name` = `lab_<username>_<purpose>` e.g. `Name=lab_luka_experiment`
  - `owner` = `lab_<username>`e.g. `owner=lab_luka`
  - `weekend` = `on`/`off` e.g. `weekend=off`

### Network 

Network -> VPC (選擇共同的VPC) -> subnet (選擇共同的subnet) -> Security group (設定自己的security group)

例如：
![](https://i.imgur.com/T27nuFu.png)


:::danger
注意：
1. 設定weekend=off的Instance，假日若持續開機，可能會被刪掉。
2. VPC or subnet可以自己建立，例如分析組「實驗」都起在一個共同固定的subnet。
3. 官方推薦 Studio > Notebook Instance，請參考[這裡](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-comparison.html)。
:::

---

## 2. Studio 

- 適用於：適用於多人共同作業，建立自動化機器學習流程等。
- 建議：相同作業性質可以在**同一個Domain**底下開各自User。
    - 例如Domain=分析組「實驗」，User有Luka, Victor...


### 2.1 Domain（若已有Sagemaker Domain可跳至2.2 User）

Create (Setup Sagemaker Domain) 時請選右邊的「Standard setup (10min)」：
![](https://i.imgur.com/SXnL4tI.png)


1. VPC, subnet, Security Group同Notebook Instance的設定。
    如：![](https://i.imgur.com/2BtfXxe.png)
2. 搜尋EFS，根據tag找到對應Domain的EFS：
    ![](https://i.imgur.com/2mKyFIc.png)

    增加3個Tag以管理此EFS：

      - `Name` = `lab_<username>_<purpose>` e.g. `Name=lab_luka_sagemaker_efs`
      - `owner` = `lab_<username>` e.g. `owner=lab_luka`
      - `Domain_Name` = 對應的Domain Name e.g. `Domain_Name=lab-luka-sagemaker-test`

    如下：
    ![](https://i.imgur.com/XfqfcIL.png)
3. Network Interface: 在EFS的Network中，可以看到ENI的ID：
    如：
    ![](https://i.imgur.com/ETfTShU.png)

    根據此ID找到對應的ENI，增加Tag：

      - `Name` = `lab_<username>_<purpose>` e.g. `Name=lab_luka_sagemaker_efs`
      - `owner` = `lab_<username>` e.g. `owner=lab_luka`
      - `efs` = 對應的efs Name e.g. `efs=lab_luka_sagemaker_efs`

    ![](https://i.imgur.com/Dybk2vR.png)
4. Security Group of Network Interface

    在ENI找到對應的security group，近一步設定tag：
    ![](https://i.imgur.com/TSP5tbm.png)

    sagemaker會創建inbound/outbound**兩個**security group來管理NFS的檔案傳輸。

    分別對這兩個security group做標籤設定：

    ![](https://i.imgur.com/GsEJpb4.png)


:::danger
注意：
1. 同一個Domain底下的User會共用相同EFS。
2. 若要刪除Domain，請將對應到且不需要的EFS以及Security Group也一併手動刪除，[Domain無法mount其他EFS](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-tasks-manage-storage.html)，詳細刪除說明可以參考[這邊](https://catalog.us-east-1.prod.workshops.aws/workshops/013df096-dacc-4da7-8a38-a16a6c709f75/en-US/900-cleanup/in_your_own_account)。
3. EFS的掛載目標設定，可以參考[這邊](https://docs.aws.amazon.com/efs/latest/ug/API_CreateMountTarget.html)。
4. Domain中的EFS使用NFS管理Instance之間的檔案傳輸，若要掛載對EFS的存取目標，請參考[這邊](https://docs.aws.amazon.com/efs/latest/ug/manage-fs-access.html)，因此Security Group也可以掛載自己的，主要還是根據自身需求去做掛載。
:::


### 2.2 User

點選創建完的Domain，可以進一步建立User，概念類似JupyterLab，一個User可以起多個Notebook Instance。不同User可以共享模型及實驗。

每個User請設定以下：

1. Tag，同Notebook Instance。
    如：
    ![](https://i.imgur.com/rL5rJBA.png)


:::danger
注意：
1. Studio內的Notebook Instance存取規範，都已在Domain設定完成。
2. 若Instance使用完畢，請記得關閉資源，參考[這邊](https://docs.aws.amazon.com/sagemaker/latest/dg/notebooks-run-and-manage-shut-down.html)。
:::







