Available in VPC
1. Ncloud TensorFlow Server Overview
Ncloud TensorFlow Server is a deployment-based service that provides TensorFlow, which is the most popular tool among data analysts, along with other leading Deep Learning and Machine Learning packages.
Because packages for data preprocessing, visualization, natural language processing, machine learning, and deep learning are included, you can perform most data analysis tasks. If needed, you can easily install additional packages or upgrade existing ones using the GUI or console commands in Jupyter Notebook.
Web-based Jupyter Notebooks allow you to work in a consistent analysis environment from anywhere, enabling you to check results instantly and share them easily with others.
Management scripts are also provided to simplify Jupyter process management within a terminal environment.
Furthermore, to support beginners, the service offers comprehensive examples ranging from data exploration and visualization to Machine Learning techniques such as regression, classification, and clustering with Scikit-Learn, as well as Deep Learning regression and classification using Keras and TensorFlow.
2. Frequently Asked Questions Before Use
Q. What is Ncloud TensorFlow Server?
- Ncloud TensorFlow Server is a service that enables the rapid implementation of Deep Learning and Machine Learning by providing major Deep Learning and Machine Learning packages, including TensorFlow, along with a web-based Jupyter Notebook for writing code.
- Ncloud TensorFlow Server utilizes TensorFlow, an open-source machine learning software library developed by the Google Brain team.
Q. What types of products are available?
- Two products are available based on the operating system: 'Ubuntu-16' and 'CentOS-7'. (OS versions may vary.)
- While the provided packages are identical regardless of the OS, we recommend selecting the more widely used Ubuntu product unless you have a specific reason otherwise.
Q. Which packages are provided, and can I only use the ones included?
- The primary packages included are TensorFlow, Keras, and PyTorch.
- Since the service uses the Anaconda package management tool, you can install additional packages using the conda binary.
- For package installation and management, see the Package Management section in Jupyter Notebook user guide.
Q. Can I use Java or other languages besides Python?
- TensorFlow provides APIs for Java and Go, but they do not guarantee stability. You should use Python.
Q. What server types are available?
-
Ncloud TensorFlow Server types provided by NAVER Cloud Platform include Standard, High Memory, and GPU. Each server type has the following characteristics.
-
Standard: The standard server of NAVER Cloud Platform services, suitable for a wide range of IT business use cases. It provides well-balanced server specifications with high availability and stability.
-
High Memory: A high-memory server with 64 GB or more of memory, suitable for running applications that are highly dependent on memory performance. Up to 10 High Memory servers can be created. If needed, the instance limit can be adjusted upon request to customer support.
-
CPU Intensive: Equipped with TensorFlow optimized for AVX512 vector operations on Intel Xeon processors, making it suitable for high-performance deep learning workloads. This CPU type currently supports Ubuntu 16.04 only.
-
GPU: A server equipped with V100 or T4 GPUs, suitable for environments that require fast data processing. You can create up to five GPU servers. If you need more, ask customer support to adjust your instance limit.
Q. I have created an Ncloud TensorFlow Server. Where do I write the code?
- You can write TensorFlow code in Jupyter Notebook. After adding port 18888 to the ACG, access it via a web browser at [Public IP address:18888].
- The samples folder includes data processing, visualization, and TensorFlow examples. Beginners in data analysis are encouraged to refer to these files.
Q. How do I use TensorBoard?
- After adding port 18889 to the ACG, access it via a web browser at [Public IP address:18889]. (see 4.Configuring Jupyter Access Environment After Creating Ncloud TensorFlow Server)
- Since a tensorboard directory is created under the default Jupyter path (/home/ncp/workspace), specify the tensorboard directory as the log directory in your TensorFlow code.
Q. I cannot access Jupyter Notebook.
- To use Jupyter Notebook, you must request and assign a public IP address to the server, and port 18888 must be added to the ACG (see 4.Configuring Jupyter Access Environment After Creating Ncloud TensorFlow Server)
- If access is still not available after verifying the public IP address and ACG, the Jupyter process may be stopped. In this case, run
jup restartcommand in the terminal to restart the process.(see Jupyter Process management)
Q. (GPU only) The TensorFlow code fails with an 'out of memory' message.
- Method 1. If multiple codes are executed simultaneously, an OOM (Out of Memory) issue may occur when the code that starts first occupies all available GPU memory. Terminate (shut down) the previously running code and then try again.
- Method 2. Following the guidance provided in the official TensorFlow documentation, add code to limit GPU memory usage, as shown below.
- By default, TensorFlow maps almost all memory of all GPUs so that it is visible to the process (assuming the GPUs are included in CUDA_VISIBLE_DEVICES). This behavior helps reduce memory fragmentation and allows relatively scarce GPU memory resources to be used more efficiently at the device level. You can control which GPUs TensorFlow can access by using the tf.config.experimental.set_visible_devices method.
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
# Limit TensorFlow to use only the first GPU.
try:
tf.config.experimental.set_visible_devices(gpus[0], 'GPU')
except RuntimeError as e:
# Accessible devices must be configured at program startup.
print(e)
- In some cases, the system may allocate only a portion of the available memory to a process, or the process may use only the amount it requires. TensorFlow provides two methods to support this behavior.
The first method is to enable memory growth by calling tf.config.experimental.set_memory_growth. This allows TensorFlow to allocate only the amount of GPU memory required at runtime. Initially, TensorFlow allocates a small amount of memory. As the program runs and additional GPU memory is required, the GPU memory region allocated to the TensorFlow process is expanded dynamically. Memory is not released, because releasing memory can worsen memory fragmentation. To enable memory growth for a specific GPU, add the following code before defining any tensors or operations.
gpus = tf.config.experimental.list_physical_devices('GPU')
if gpus:
try:
tf.config.experimental.set_memory_growth(gpus[0], True)
except RuntimeError as e:
# Memory increase must be configured at program startup.
print(e)
3. Create Ncloud TensorFlow Server VM
When using the Create My Server Image feature, check the specifications of the image currently in use.
When you create an Ncloud TensorFlow Server using an existing image, use the same infrastructure specifications (CPU/GPU) as the original image.s of the image currently in use. If you create the server with different specifications, you cannot use the service properly.
| Image specification | Creation specification | Availability |
|---|---|---|
| CPU | CPU | Available |
| GPU | GPU | Available |
| CPU | GPU | Not available |
| GPU | CPU | Not available |
Prerequisite 1. Create a VPC
Navigate to
> Services > Networking > VPC to create VPC in the NAVER Cloud Platform console VPC. You need at least one VPC. Within a single VPC, you can create multiple Ncloud TensorFlow Servers.

Prerequisite 2. Create a Subnet (Public)
Instead of restricting access to within a specific VPC only, you can configure the environment to allow access to the Ncloud TensorFlow Server from outside the VPC as well. After creating a public subnet in the VPC, assign a public IP address to the Ncloud TensorFlow Server.
Create a subnet by setting the Internet Gateway dedicated attribute to Y (Public).

Step 1. Access console
In the VPC environment of the NAVER Cloud Platform console, navigate to
> Services > Compute > Server.

- To create server, click [Create server].

Step 2. Ncloud Tensorflow Server VM setting
Select the VPC, Subnet, storage type, server type, and pricing plan, then enter the server name.

-
VPC: Select the VPC you created earlier. (Example: vpc-tensorflow)
-
Subnet: Select a Public Subnet. (Example: vpc-sub-pub-tensorflow)
-
Storage type: Select the storage type to use as the boot storage.
- Select SSD for services that require high I/O performance. Select HDD for general-purpose services. Note that the system can use additional SSD storage only when the boot storage is an SSD.
-
Server type: Select the desired server type.
- Some server specifications may not be supported depending on the boot disk type.
- Select one of the following server types based on your intended use: Standard, High Memory, or GPU Server.
-
Choose Pricing plan: Select either a monthly pricing plan or an hourly pricing plan.
-
Server name: Enter the server name.
- This name is used to identify the server and must be unique.
-
Network Interface: Configure the Network Interface. You can create up to three network interfaces per server.
-
Public IP: To automatically assign a public IP when creating the VM, select the [Assign new public IP].
- To create a public IP together with the server, you must select a Public Subnet and set the number of servers to one.
-
Next: After completing the server settings, click [Next].
Step 3. Authentication key settings
If you already have an authentication key, select Use existing authentication key. If you do not have one, create a new authentication key by following the steps below.

-
Select Create a new authentication key.
-
Enter the name of authentication key.
-
Click [Create and save authentication key] to save the authentication key file to your local PC.
- A new authentication key is issued.
- After saving, store the authentication key in a secure location on your PC.
- The authentication key is used to retrieve the initial administrator password.
- Click [Next].
Step 4. Firewall settings
You can configure firewall settings using an existing ACG.

-
You must select at least one ACG. ‘A default ACG is automatically provided when you create a VPC’. Choose one from the list of available options, which includes the default ACG.
- You can select up to five ACGs.
- You must select at least one ACG for [Next] to become enabled and proceed with the configuration.
-
Select the ACG you want to configure and click the [Next].
Step 5. Final review
Review the configured settings.

-
Final review: Check that the server image, server, authentication key, and ACG are configured correctly.
-
[Create server]: After completing the final review, click the button to create the server.
- Server creation may take several minutes to several tens of minutes to complete.
Step 6. Check in the server list
Verify the created server in the server list.

- Wait until the server is created, the packages are fully installed, and the server status changes to Running.
4. Jupyter access environment setup after creating an Ncloud TensorFlow Server
Apply for a public IP address
After creating an Ncloud TensorFlow Server, to access Jupyter Notebook through a web browser, you must create the VM by selecting a Public Subnet and connect to Jupyter using a public IP address. (Additional charges apply for using a public IP address.)
In the VPC environment of the NAVER Cloud Platform console, navigate to
> Services > Compute > Server > Public IP.

-
To assign a public IP address, click [Apply for Public IP].
-
In Select target server, select the Ncloud TensorFlow Server to which the public IP address will be assigned.
ACG settings
Add rules to the ACG for terminal access via SSH (TCP/22) and Jupyter Notebook (TCP/18888). If required, also add a rule for TensorBoard (TCP/18889).
If these rules were already added when the server was created, you do not need to perform the ACG configuration in this step.

-
From the left menu, select ACG.
-
Select the ACG chosen during server creation, then select [ACG settings]at the top.
-
In ACG rule settings, enter the protocol, access source, and allowed ports, then create the rule.
- Protocol: Select from TCP, UDP, or ICMP
- Access Source: Enter an IP address or an ACG name
- Allowed port: Specify a single port or a port range
- To access the terminal, add an SSH (TCP/22) rule to the target server's ACG. If you plan to use Jupyter Notebook and TensorBoard, ensure you also add rules for TCP/18888 and TCP/18889, respectively.
- To add a rule, enter the protocol, source, and allowed port, then click [Add].
-
After completing the configuration, click [Apply].
-
You can check detailed information in the [Details] tab, and review the configured rules in the [View rules] tab.
Verify Jupyter Notebook operation
After configuring Public IP and ACG, you can access Jupyter Notebook.

-
The initial password for Jupyter Notebook is the VM server name. For security, it is recommended to change the password before use.
- To change the Jupyter Notebook password, see Change Jupyter password.
-
The address to access Jupyter Notebook is: http://{assigned-public-ip}:18888
- For example, if the assigned public IP is 101.101.220.51, the access URL is: http://101.101.220.51:18888
5. Jupyter Notebook management
Connect to the Ncloud TensorFlow Server VM using a terminal program (such as PuTTY) and change the Jupyter password.
You can easily change the password and manage the Jupyter process using the provided management scripts.
Check administrator password
To connect to the Ncloud TensorFlow Server VM using a terminal program (such as PuTTY), you need to know the administrator password.

-
From the left menu, select Server.
-
Select the target server, then from the Server management and settings, select Check administrator password.
-
[Drag the file here or click here] and attach the authentication key file (.pem) that was saved on your local PC when the server was created.
-
After attaching the file, click [Check password] to obtain the password used for the initial server login via the terminal program.
- After logging in to the server, it is recommended to change the password to one that the administrator can easily remember.
How to connect to a VM using a terminal program
You can connect to the Ncloud TensorFlow Server VM using the administrator password.

-
Enter the public IP address assigned to the Ncloud TensorFlow Server.
-
Enter the administrator password of the Ncloud TensorFlow Server VM.

-
Run the terminal program.
-
Use the ssh command to request a connection to the VM, then enter the user information and password to log in.
- Command for VM access: ssh root@{public-IP} (For example, if the public IP is 101.101.220.51, enter ssh root@101.101.220.51.)
- login as: root
- password: Enter the administrator password confirmed above.
- After logging in, it is recommended to change the root account password to one that you can easily remember.
- Enter the passwd root command and then enter a new password.
Change the Jupyter password
The initial password used for Jupyter Notebook is set to the server name. For security reasons, change the password using the provided script.

- In the terminal, enter jup passwd to change the password.
- Check initial password: Same as the server name shown in Console > Server > Server list.
- The password must include letters, numbers, and special characters, and must be at least 8 characters long.
- When you run the password change script, the Jupyter process restarts automatically.
Manage the Jupyter process
Use the provided scripts to stop or restart the Jupyter process when you need to apply changes to environment configuration files.

-
Stop the Jupyter process: $ jup stop
-
Start the Jupyter process: $ jup start
-
Stop and restart the Jupyter process: $ jup restart
Manage the TensorBoard process
If you need to start the TensorBoard process for the first time after creating the server, or if you need to restart it, you can use the provided scripts to start or stop the process.

-
Stop the TensorBoard process: $ jup tb-stop
-
Start the TensorBoard process: $ jup tb-start