diff --git a/modules/cloud_service_providers/aws_cloud/aws_cloud.module b/modules/cloud_service_providers/aws_cloud/aws_cloud.module
index fa9d04c..803c5ae 100644
--- a/modules/cloud_service_providers/aws_cloud/aws_cloud.module
+++ b/modules/cloud_service_providers/aws_cloud/aws_cloud.module
@@ -441,8 +441,17 @@ function aws_cloud_query_aws_cloud_instance_views_access_alter(AlterableInterfac
  * Add termination options to the server template launch form.
  */
 function aws_cloud_form_cloud_server_template_aws_cloud_launch_form_alter(&$form, FormStateInterface $form_state, $form_id) {
+  $form['automation'] = [
+    '#type' => 'details',
+    '#title' => t('Automation'),
+    '#open' => TRUE,
+  ];
+
+  $form['automation']['description'] = $form['description'];
+  unset($form['description']);
+
   $config = \Drupal::config('aws_cloud.settings');
-  $form['terminate'] = [
+  $form['automation']['terminate'] = [
     '#type' => 'checkbox',
     '#title' => t('Automatically terminate instance'),
     '#description' => t('Terminate instance automatically.  Specify termination date in the date picker below.'),
@@ -450,7 +459,7 @@ function aws_cloud_form_cloud_server_template_aws_cloud_launch_form_alter(&$form
   ];
 
   // @TODO: make 30 days configurable
-  $form['termination_date'] = [
+  $form['automation']['termination_date'] = [
     '#type' => 'datetime',
     '#title' => t('Termination Date'),
     '#description' => t('The default termination date is 30 days into the future'),
@@ -460,7 +469,7 @@ function aws_cloud_form_cloud_server_template_aws_cloud_launch_form_alter(&$form
   /* @var \Drupal\cloud_server_template\Entity\CloudServerTemplate $cloud_server_template */
   $cloud_server_template = \Drupal::routeMatch()->getParameter('cloud_server_template');
 
-  $form['schedule'] = [
+  $form['automation']['schedule'] = [
     '#title' => t('Schedule'),
     '#type' => 'select',
     '#default_value' => $cloud_server_template->get('field_schedule')->value,
@@ -470,11 +479,32 @@ function aws_cloud_form_cloud_server_template_aws_cloud_launch_form_alter(&$form
   if ($cloud_server_template->get('field_instance_shutdown_behavior')->value == 'terminate') {
     // Add a warning message setting a schedule will terminate the instance,
     // since the shutdown behavior is terminate
-    $form['terminate_message'] = [
+    $form['automation']['terminate_message'] = [
       '#markup' => t('Setting a schedule will potentially terminate the instance since the <strong>%text</strong> is set to Terminate',
         ['%text' => 'Instance Shutdown Behavior']),
     ];
   }
+
+  $view_builder = \Drupal::entityTypeManager()->getViewBuilder('cloud_server_template');
+  $build = $view_builder->view($cloud_server_template, 'view');
+  unset($build['#weight']);
+  $build['#pre_render'][] = 'aws_cloud_server_template_reorder';
+  $form['detail'] = $build;
+}
+
+/**
+ * Reorder fields of aws cloud server template.
+ *
+ * @param array $build
+ *   Build array.
+ *
+ * @return array
+ *   Build array reordered.
+ */
+function aws_cloud_server_template_reorder(array $build) {
+  $build['name']['#label_display'] = 'inline';
+  aws_cloud_form_reorder($build, aws_cloud_server_template_field_orders());
+  return $build;
 }
 
 /**
@@ -512,7 +542,49 @@ function aws_cloud_preprocess_field_multiple_value_form(&$variables) {
  * Common alter function for cloud_server_template_aws_cloud_edit_form and cloud_server_template_aws_cloud_add_form.
  */
 function aws_cloud_form_cloud_server_template_aws_cloud_form_common_alter(&$form, FormStateInterface $form_state, $form_id) {
-  aws_cloud_form_reorder($form, [
+  aws_cloud_form_reorder($form, aws_cloud_server_template_field_orders());
+
+  $form['network']['field_vpc']['widget']['#ajax'] = [
+    'callback' => 'aws_cloud_ajax_callback_get_fields',
+  ];
+
+  $vpc_id = '_none';
+  if (!empty($form['network']['field_vpc']['widget']['#default_value'])) {
+    $vpc_id = $form['network']['field_vpc']['widget']['#default_value'][0];
+  }
+
+  // If validation happened, we should get vpc_id from user input.
+  $user_input = $form_state->getUserInput();
+  if (isset($user_input['field_vpc'])) {
+    $vpc_id = $user_input['field_vpc'];
+  }
+
+  $subnet_options = aws_cloud_get_subnet_options_by_vpc_id($vpc_id, $form_state->getFormObject()->getEntity());
+  $form['#attached']['library'][] = 'aws_cloud/aws_cloud_form';
+  $form['#attached']['drupalSettings']['aws_cloud']['field_subnet_default_values']
+    = array_keys($subnet_options);
+
+  $security_group_options = aws_cloud_get_security_group_options_by_vpc_id($vpc_id);
+  $security_group_default_values = [];
+  foreach ($security_group_options as $id => $security_group_option) {
+    $security_group_default_values[] = strval($id);
+  }
+
+  $form['#attached']['drupalSettings']['aws_cloud']['field_security_group_default_values']
+    = $security_group_default_values;
+}
+
+/**
+ * Return orders of aws cloud server template fields.
+ *
+ * @param string $include_name
+ *   Whether to include name field or not.
+ *
+ * @return array
+ *   Fieldsets array.
+ */
+function aws_cloud_server_template_field_orders($include_name = TRUE) {
+  $fieldsets_def = [
     [
       'name' => 'instance',
       'title' => t('Instance'),
@@ -570,36 +642,13 @@ function aws_cloud_form_cloud_server_template_aws_cloud_form_common_alter(&$form
         'revision_log_message',
       ],
     ],
-  ]);
-
-  $form['network']['field_vpc']['widget']['#ajax'] = [
-    'callback' => 'aws_cloud_ajax_callback_get_fields',
   ];
 
-  $vpc_id = '_none';
-  if (!empty($form['network']['field_vpc']['widget']['#default_value'])) {
-    $vpc_id = $form['network']['field_vpc']['widget']['#default_value'][0];
-  }
-
-  // If validation happened, we should get vpc_id from user input.
-  $user_input = $form_state->getUserInput();
-  if (isset($user_input['field_vpc'])) {
-    $vpc_id = $user_input['field_vpc'];
-  }
-
-  $subnet_options = aws_cloud_get_subnet_options_by_vpc_id($vpc_id, $form_state->getFormObject()->getEntity());
-  $form['#attached']['library'][] = 'aws_cloud/aws_cloud_form';
-  $form['#attached']['drupalSettings']['aws_cloud']['field_subnet_default_values']
-    = array_keys($subnet_options);
-
-  $security_group_options = aws_cloud_get_security_group_options_by_vpc_id($vpc_id);
-  $security_group_default_values = [];
-  foreach ($security_group_options as $id => $security_group_option) {
-    $security_group_default_values[] = strval($id);
+  if (!$include_name) {
+    unset($fieldsets_def[0]['fields'][0]);
   }
 
-  $form['#attached']['drupalSettings']['aws_cloud']['field_security_group_default_values']
-    = $security_group_default_values;
+  return $fieldsets_def;
 }
 
 /**
@@ -688,7 +737,6 @@ function aws_cloud_form_cloud_config_aws_ec2_form_common_alter(&$form, FormState
 
 function aws_cloud_form_reorder(&$form, $fieldset_defs) {
   $weight = 0;
-
   foreach ($fieldset_defs as $fieldset_def) {
     $fieldset_name = $fieldset_def['name'];
     $form[$fieldset_name] = [
@@ -699,6 +747,10 @@ function aws_cloud_form_reorder(&$form, $fieldset_defs) {
     ];
 
     foreach ($fieldset_def['fields'] as $field_name) {
+      if (!isset($form[$field_name])) {
+        continue;
+      }
+
       $form[$fieldset_name][$field_name] = $form[$field_name];
       $form[$fieldset_name][$field_name]['#weight'] = $weight++;
       unset($form[$field_name]);
@@ -1177,4 +1229,13 @@ function _aws_cloud_get_instance_type_cache_key($cloud_config) {
  */
 function _aws_cloud_get_instance_type_state_key($cloud_config) {
   return 'aws_cloud_next_instance_import_' . $cloud_config->get('field_region')->value;
-}
\ No newline at end of file
+}
+
+/*
+ * Implements hook_entity_view_alter.
+ */
+function aws_cloud_entity_view_alter(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display) {
+  if ($entity->getEntityTypeId() == 'cloud_server_template' && $entity->bundle() == 'aws_cloud') {
+    aws_cloud_form_reorder($build, aws_cloud_server_template_field_orders(FALSE));
+  }
+}
