Как подключить общедоступный статический IP-адрес к службе приложений Azure

Есть 100 внешних доменов, указывающих на мое существующее приложение. Мы планируем перейти на службу приложений Azure. В этом случае мы должны попросить всех пользователей домена указать на наш новый сервис приложений. Это требовало много координации и времени.

В будущем (возможно, через 2 года) у нас есть план развертывания решения в другой службе приложений или на Azure VM, а затем мы должны повторить тот же процесс запроса внешнего владельца домена, чтобы указать новую среду развертывания.

В настоящее время мы думаем о двух решениях. Подскажите пожалуйста по тем.

  • Сначала создайте общедоступный статический IP-адрес и попросите все внешние домены указать этот IP-адрес.

Решение 1:

  • Присоедините этот IP-адрес к виртуальной машине Azure с очень низкой емкостью и используйте этот сервер в качестве URL-адреса перенаправления, когда бы вы ни внедрили решение, это может быть служба приложения Azure.

Решение 2:

  • Можно ли подключить общедоступный статический IP-адрес к службе приложений Azure? Я знаю, что служба приложений не является службой IaaS для управления инфраструктурой. Я просмотрел некоторые статьи, чтобы установить статический IP-адрес для службы приложений. Но это отличается от того, что я требовал.

Пожалуйста, также предложите, если у вас есть какое-либо другое лучшее решение.

С уважением, Венкат

4 ответа

Решение

Для решения1 легко установить статический общедоступный IP-адрес для виртуальной машины Azure. Но может не хватить избыточности. Все службы используют только одну виртуальную машину Azure.

Я предложу решение 2: службы приложений Azure работают в том же плане обслуживания приложений, в котором используются общие вычислительные ресурсы, а экземпляры виртуальных машин доступны для масштабирования. Вы можете гибко настроить план обслуживания приложения в соответствии с вашими потребностями. Как правило, IP-адреса службы веб-приложений Azure изменяются при выполнении одного из следующих действий:

Удалите приложение и заново создайте его в другой группе ресурсов. Удалите последнее приложение в комбинации группы ресурсов и региона и создайте ее заново. Удалите существующую привязку SSL, например, при обновлении сертификата (см. Обновление сертификатов).

IP-адрес службы веб-приложений Azure не изменяется, он выглядит как "статический", если вы не выполните вышеуказанные действия и не перейдете на бесплатный уровень. Иногда, если вам нужен выделенный статический IP-адрес для вашего приложения. Вам необходимо настроить привязку SSL на основе IP.

Ссылка: Как получить статический IP-адрес для вашего веб-приложения службы приложений Windows

Нэнси, спасибо за ваше предложение. Это помогает мне доработать решение.

Три решения мы определили для этого сценария. Мы выбрали 3-е решение.

  1. Используйте статический IP-адрес для службы приложений Azure и хотите выполнить миграцию через год или два. Вам нужно будет сообщить каждому внешнему владельцу домена, чтобы он изменил свою конечную точку на другую среду. https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-custom-domain-name-portal

  2. CNAME может быть лучшей альтернативой, так как он сопоставляется с конкретным доменом и автоматически сопоставляется с IP-адресом вашего приложения, поэтому, если ваши облачные службы изменятся, вам не придется предпринимать никаких действий.

  3. Создайте публичный статический IP-адрес, попросите всех внешних владельцев доменов указать этот IP-адрес. Затем создайте виртуальную машину Azure с низкой емкостью (B1ms) и подключите к ней виртуальный статический IP-адрес. Затем используйте эту виртуальную машину в качестве обратного прокси-сервера, в настоящее время она может указывать на существующую службу приложений Azure, и в будущем, где бы ни была новая среда, я буду перенаправлять в эту среду. В будущем общедоступный статический IP-адрес также можно подключить к балансировщику нагрузки или любой другой виртуальной машине Azure.

Есть ОЧЕНЬ ПРОСТОЙ способ сделать это. Просто добавьте собственный домен с привязкой на основе IP . После этого входящий IP-адрес изменится с исходного общего IP-адреса на новый IP-адрес, специфичный для вашего веб-приложения. Домен веб-сайта по умолчанию также изменится. Но после этого у вас статический IP.

Я сделал это так:

  1. Создайте виртуальную сеть
  2. Создать NAT-шлюз
  3. Создать общедоступный IP Создать
  4. Подсети для каждого приложения
  5. Подключить подсети к виртуальной сети
  6. Использовать NAT в подсетях
  7. Включить vnetRouteAllEnabled для каждого приложения

Бицепс для сетевой части:

      param location string = resourceGroup().location
var appOne = 'app-one'
var appTwo = 'app-two'

resource publicIp 'Microsoft.Network/publicIPAddresses@2021-05-01' = {
  name: 'public-ip-name'
  location: location
  sku: {
    name: 'Standard'
  }
  properties: {
    publicIPAddressVersion: 'IPv4'
    publicIPAllocationMethod: 'Static'
    idleTimeoutInMinutes: 4
  }
}

resource natgateway 'Microsoft.Network/natGateways@2021-05-01' = {
  name: 'natgateway-name'
  location: location
  sku: {
    name: 'Standard'
  }
  properties: {
    idleTimeoutInMinutes: 4
    publicIpAddresses: [
      {
        id: publicIp.id
      }
    ]
  }
}

resource virtualNetwork 'Microsoft.Network/virtualNetworks@2021-05-01' = {
  name: 'virtualNetwork'
  location: location
  properties: {
    addressSpace: {
      addressPrefixes: [
        '192.168.0.0/16'
      ]
    }
    subnets: [
      {
        name: 'subnet-for-${appOne}'
        properties: {
          addressPrefix: '192.168.0.0/24'
          natGateway: {
            id: natgateway.id
          }
          delegations: [
            {
              name: 'delegation'
              properties: {
                serviceName: 'Microsoft.Web/serverfarms'
              }
            }
          ]
        }
      }
      {
        name: 'subnet-for-${appTwo}'
        properties: {
          addressPrefix: '192.168.1.0/24'
          natGateway: {
            id: natgateway.id
          }
          delegations: [
            {
              name: 'delegation'
              properties: {
                serviceName: 'Microsoft.Web/serverfarms'
              }
            }
          ]
        }
      }
    ]
  }
}

resource prodcutsToSubnet 'Microsoft.Web/sites/networkConfig@2022-03-01' = {
  name: '${appOne}/virtualNetwork'
  properties: {
    subnetResourceId: virtualNetwork.properties.subnets[0].id
    swiftSupported: true
  }
}
resource webhooksToSubnet 'Microsoft.Web/sites/networkConfig@2022-03-01' = {
  name: '${appTwo}/virtualNetwork'
  properties: {
    subnetResourceId: virtualNetwork.properties.subnets[1].id
    swiftSupported: true
  }
}
Другие вопросы по тегам