Usar o serviço EC2Config para realizar tarefas durante a execução da instância herdada do sistema operacional Windows do EC2 - Amazon Elastic Compute Cloud

Usar o serviço EC2Config para realizar tarefas durante a execução da instância herdada do sistema operacional Windows do EC2

nota

A documentação do EC2Config é fornecida somente para referência histórica. As versões do sistema operacional em que ele é executado não têm mais suporte pela Microsoft. É altamente recomendável atualizar para o agente de execução mais recente.

O agente de execução mais recente para o Windows Server 2022 é o EC2Launch v2, que substitui o EC2Config e o EC2Launch e vem pré-instalado nas AMIs do Windows Server 2022 da AWS. Você também pode Migrar para o EC2Launch v2 com a ferramenta de migração ou pode instalar e configurar manualmente o agente no Windows Server 2016 e 2019.

As AMIs do Windows para versões do Windows Server anteriores ao Windows Server 2016 incluem um serviço opcional: EC2Config (EC2Config.exe). O EC2Config é iniciado quando a instância inicia e executa tarefas durante o startup e sempre você iniciar ou para iniciar a instância. O EC2Config também executa tarefas sob demanda. Algumas dessas tarefas são automaticamente habilitadas, enquanto outras precisam ser habilitadas manualmente. Embora opcional, esse serviço dá acesso a recursos avançados que não estariam disponíveis de outra forma. Esse serviço é executado na conta LocalSystem.

O serviço EC2Config executa o Sysprep, uma ferramenta da Microsoft que permite a criação de uma AMI personalizada do Windows que pode ser reutilizada. Quando o EC2Config acessa o Sysprep, ela usa os arquivos em %ProgramFiles%\Amazon\EC2ConfigService\Settings para determinar quais operações devem ser executadas. Você pode editar esses arquivos indiretamente usando a caixa de diálogo EC2 Service Properties do sistema, ou usando diretamente um editor de XML ou texto. Contudo, há algumas configurações avançadas que não estão disponíveis na caixa de diálogo Propriedades do serviço do EC2 do serviço, portanto, é necessário editar as entradas diretamente.

Se você criar AMIs com base em uma instância depois de atualizar suas configurações, as configurações novas serão aplicadas a qualquer instância executada pela nova AMI. Para obter informações sobre como criar uma AMI, consulte Criação de uma AMI baseada no Amazon EBS.

O EC2Config usa arquivos de configurações para controlar sua operação. É possível atualizar esses arquivos de configurações usando uma ferramenta gráfica ou editando diretamente arquivos XML. Os arquivos binários de serviço e adicionais estão contidos no diretório %ProgramFiles%\Amazon\EC2ConfigService.

EC2Config e AWS Systems Manager

O serviço EC2Config processa solicitações de Systems Manager nas instâncias criadas com base em AMIs para versões do Windows Server anteriores ao Windows Server 2016 que foram publicadas antes de novembro de 2016.

Instâncias criadas com base em AMIs para versões do Windows Server anteriores ao Windows Server 2016, publicadas depois de novembro de 2016 incluem o serviço EC2Config e SSM Agent. O EC2Config executa todas as tarefas descritas anteriormente e o SSM Agent processa recursos do Systems Manager, como Run Command e o State Manager.

É possível usar Run Command para atualizar suas instâncias existentes e usar a versão mais recente do serviço EC2Config e do SSM Agent. Para obter mais informações, consulte Atualizar o SSM Agent usando o Run Command no Manual do usuário do AWS Systems Manager.

Tarefas do EC2Config

O EC2Config executa tarefas de startup iniciais quando a instância é iniciada pela primeira vez; depois, as desabilita. Para executar novamente essas tarefas, é necessário explicitamente habilitá-las antes de fechar a instância ou executar manualmente o Sysprep. Essas tarefas são as seguintes:

  • Defina uma senha aleatória e criptografada para a conta do administrador.

  • Gerencie e instale o certificado do host usado para abrir a Conexão de Desktop Remoto.

  • Estenda dinamicamente a partição do sistema operacional para incluir qualquer espaço não particionado.

  • Execute os dados de usuário especificado (e Cloud-Init, se instalado). Para obter mais informações sobre como especificar os dados do usuário, consulte Executar comandos ao iniciar uma instância do EC2 com entrada de dados do usuário.

O EC2Config executa as tarefas a seguir sempre que a instância for iniciada:

  • Altere o nome do host para corresponder ao endereço IP privado na notação Hex (essa tarefa está desabilitada por padrão e deverá ser ativada para execução no início da instância).

  • Configure o servidor de gerenciamento de chaves (AWS KMS), verifique o status de ativação do Windows e ative o Windows, conforme necessário.

  • Monte todos os volumes do Amazon EBS e volumes de armazenamento de instâncias e mapeie os nomes dos volumes para as letras de unidade.

  • Grave entradas do log de eventos no console para ajudar a solucionar problemas (essa tarefa fica desabilitada por padrão e deve ser ativada para execução no início da instância).

  • Escreva para o console que o Windows está pronto.

  • Adicione uma rota personalizada para o adaptador de rede primária para habilitar os endereços IP a seguir quando uma única NIC ou várias NICs estiverem conectadas: 169.254.169.250, 169.254.169.251 e 169.254.169.254. Esses endereços são usados pelo Windows Activation e ao acessar metadados de instância.

    nota

    Se o sistema operacional Windows estiver configurado para usar IPv4, esses endereços locais de link IPv4 poderão ser usados. Se o sistema operacional Windows tiver a pilha de protocolos de rede IPv4 desabilitada e usar IPv6 em seu lugar, adicione [fd00:ec2::240] em vez de 169.254.169.250 e 169.254.169.251. Depois, adicione [fd00:ec2::254] em vez de 169.254.169.254.

O EC2Config executa a tarefa a seguir sempre que um usuário faz login:

  • Exibe informações do papel de parede do segundo plano do desktop.

Enquanto a instância estiver sendo executada, é possível solicitar que o EC2Config execute a seguinte tarefa sob demanda:

Arquivos de configurações do EC2Config

Os arquivos de configurações controlam a operação do serviço EC2Config. Esses arquivos estão localizados no diretório C:\Program Files\Amazon\Ec2ConfigService\Settings:

  • ActivationSettings.xml—Controla a ativação do produto usando um servidor de gerenciamento de chaves (AWS KMS).

  • AWS.EC2.Windows.CloudWatch.json: controla quais contadores de performance enviar ao CloudWatch e quais logs enviar ao CloudWatch Logs.

  • BundleConfig.xml—Controla como o EC2Config prepara uma instância com armazenamento de instâncias para criação da AMI.

  • Config.xml—Controla as configurações primárias.

  • DriveLetterConfig.xml—Controla os mapeamentos da letra de unidade.

  • EventLogConfig.xml—Controla as informações do log de eventos exibidas no console enquanto a instância está inicializando.

  • WallpaperSettings.xml—Controla as informações exibidas na tela de fundo do desktop.

ActivationSettings.xml

Esse arquivo contém as configurações que controlam a ativação do produto. Quando o Windows inicializa, o serviço EC2Config verifica se o Windows já está ativado. Se o Windows ainda não estiver ativado, ele tentará ativar o Windows procurando pelo servidor AWS KMS específico.

  • SetAutodiscover indica se é necessário detectar um AWS KMS automaticamente.

  • TargetKMSServer armazena o endereço IP privado de um AWS KMS. O AWS KMS deve estar na mesma região que a instância.

  • DiscoverFromZone descobre o servidor AWS KMS da zona de DNS especificada.

  • ReadFromUserData obtém o servidor AWS KMS de UserData.

  • LegacySearchZones descobre o servidor AWS KMS da zona de DNS especificada.

  • DoActivate—Tenta a ativação usando as configurações especificadas na seção. Esse valor pode ser true ou false.

  • LogResultToConsole—Exibe o resultado para o console.

BundleConfig.xml

Este arquivo contém configurações que controlam como o EC2Config prepara uma instância para criação da AMI.

  • AutoSysprep—Indica se o Sysprep deve ser usado automaticamente. Altere o valor para Yes para usar o Sysprep.

  • SetRDPCertificate: define um certificado autoassinado para o servidor de Desktop Remoto. Isso permite que você use RDP com segurança nas instâncias. Altere o valor para Yes se as novas instâncias precisarem ter o certificado.

    Essa configuração não é usada para instâncias com versões do sistema operacional anteriores ao Windows Server 2016, pois estas podem gerar seus próprios certificados.

  • SetPasswordAfterSysprep—Define uma senha aleatória em uma instância recém-executada, criptografa-a com a chave de execução do usuário e gera a senha criptografada no console. Altere o valor dessa configuração para No se as novas instâncias não forem definidas como uma senha criptografada aleatória.

Config.xml

Plugins

  • Ec2SetPassword—Gera uma senha criptografada aleatória sempre que você executar uma instância. Esse recurso é desabilitado por padrão após a primeira execução, de forma que as reinicializações dessa instância não alterem uma senha definida pelo usuário. Altere essa configuração para Enabled para continuar a gerar senhas sempre que você executar uma instância.

    Essa configuração é importante se você estiver planejando criar um AMI a partir da sua instância.

  • Ec2SetComputerName—Define o nome do host da instância para um nome exclusivo baseado no endereço IP da instância e reinicializa a instância. Ao configurar seu próprio nome de host ou impedir a modificação de um nome de host existente, é preciso desabilitar essa configuração.

  • Ec2InitializeDrives—Inicializa e formata todos os volumes durante o startup. Esse recurso está habilitado por padrão.

  • Ec2EventLog—Exibe entradas no log de eventos do console. Por padrão, são exibidas as três entradas de erro mais recentes do log de eventos do sistema. Para especificar as entradas no log de evento a serem exibidas, edite o arquivo EventLogConfig.xml localizado no diretório EC2ConfigService\Settings. Para obter informações sobre as configurações nesse arquivo, consulte Eventlog Key na biblioteca do MSDN.

  • Ec2ConfigureRDP—Define um certificado autoatribuído na instância, de forma que os usuários possam acessar com segurança a instância usando o Desktop Remoto. Essa configuração não é usada para instâncias com versões do sistema operacional anteriores ao Windows Server 2016, pois estas podem gerar seus próprios certificados.

  • Ec2OutputRDPCert—Exibe informações do certificado de Desktop Remoto ao console, de forma que o usuário possa verificá-las contra o thumbprint.

  • Ec2SetDriveLetter— Define as letras de unidade dos volumes montados com base em configurações definidas pelo usuário. Por padrão, quando um volume do Amazon EBS estiver associado a uma instância, ele poderá ser montado usando a letra de unidade na instância. Para especificar os mapeamentos da sua letra de unidade, edite o arquivo DriveLetterConfig.xml localizado no diretório EC2ConfigService\Settings.

  • Ec2WindowsActivate— O plugin lida com ativação do Windows. Verifica para ver se o Windows está ativado. Caso contrário, atualiza as configurações do cliente AWS KMS e, então, ativa o Windows.

    Para modificar as configurações do AWS KMS, edite o arquivo ActivationSettings.xml localizado no diretório EC2ConfigService\Settings.

  • Ec2DynamicBootVolumeSize—Estende o disco 0/Volume 0 para incluir qualquer espaço não particionado.

  • Ec2HandleUserData—Cria e executa scripts criados pelo usuário na primeira execução de uma instância depois que o Sysprep for executado. Os comandos envolvidos nas tag do script são salvos no arquivo em lote, e os comandos envolvidos nas tags do PowerShell são salvos em um arquivo .ps1 (corresponde à caixa de seleção Dados do usuário na caixa de diálogo Propriedades do serviço EC2 do sistema).

  • Ec2ElasticGpuSetup—Instala o pacote de software para GPU elástica se a instância estiver associada a uma GPU elástica.

  • Ec2FeatureLogging—Envia a instalação do recurso do Windows e o status do serviço correspondente ao console. Válido somente para o recurso Microsoft Hyper-V e o serviço vmms correspondente.

Configurações globais

  • ManageShutdown—Assegura que as instâncias executadas pelas AMIs com armazenamento de instâncias não sejam encerradas ao executar Sysprep.

  • SetDnsSuffixList—Define o sufixo DNS do adaptador de rede para Amazon EC2. Isso permite resolução do DNS dos servidores em execução no Amazon EC2 sem fornecer o nome de domínio totalmente qualificado.

    nota

    Isso adiciona uma pesquisa de sufixo DNS para o domínio apresentado a seguir e configura outros sufixos padrão. Para obter mais informações sobre como os agentes de inicialização definem os sufixos DNS, consulte Configurar o sufixo DNS para agentes de execução do EC2 Windows.

    region.ec2-utilities.amazonaws.com
  • WaitForMetaDataAvailable—Assegura que o serviço EC2Config aguardará os metadados estarem acessíveis e redes estarem disponíveis antes de continuar com a inicialização. Essa verificação garante que o EC2Config possa obter informações dos metadados para ativação e outros plugins.

  • ShouldAddRoutes—Adiciona uma rota personalizada para o adaptador de rede primária para habilitar os endereços IP a seguir quando múltiplos NICs estiverem associados: 169.254.169.250, 169.254.169.251 e 169.254.169.254. Esses endereços são usados pelo Windows Activation e ao acessar metadados de instância.

  • RemoveCredentialsfromSyspreponStartup—Remove a senha do administrador de Sysprep.xml da próxima vez que o serviço iniciar. Para garantir que essa senha persista, edite essa configuração.

DriveLetterConfig.xml

Esse arquivo contém configurações que controlam os mapeamentos de letra da unidade. Por padrão, um volume pode ser mapeado para qualquer letra de unidade disponível. É possível montar um volume em uma letra de unidade específica, da seguinte forma.

<?xml version="1.0" standalone="yes"?> <DriveLetterMapping> <Mapping> <VolumeName></VolumeName> <DriveLetter></DriveLetter> </Mapping> . . . <Mapping> <VolumeName></VolumeName> <DriveLetter></DriveLetter> </Mapping> </DriveLetterMapping>
  • VolumeName—A etiqueta de volume. Por exemplo, My Volume. Para especificar um mapeamento para um volume de armazenamento de instâncias, use a etiqueta Temporary Storage X, onde X é um número de 0 a 25.

  • DriveLetter—A letra de unidade. Por exemplo, M:. O mapeamento falhará se a letra de unidade já estiver em uso.

EventLogConfig.xml

Este arquivo contém configurações que controlam as informações do log de eventos exibidas no console enquanto a instância estiver sendo inicializada. Por padrão, exibimos as três entradas de erro mais recentes do log de eventos do sistema.

  • Category—A chave de log do evento a ser monitorada.

  • ErrorType—O tipo de evento (por exemplo, Error, Warning, Information.)

  • NumEntries—O número de eventos armazenados para essa categoria.

  • LastMessageTime—Para impedir que a mesma mensagem seja enviada repetidamente, o serviço atualizará esse valor sempre que enviar uma mensagem.

  • AppName: a origem do evento ou a aplicação que o registrou.

WallpaperSettings.xml

Esse arquivo contém as configurações que controlam as informações exibidas na tela de fundo do desktop. As informações a seguir são exibidas por padrão.

  • Hostname—Exibe o nome do computador.

  • Instance ID—Exibe o ID da instância.

  • Public IP Address—Exibe o endereço IP público da instância.

  • Private IP Address—Exibe o endereço IP privado da instância.

  • Availability Zone—Exibe a zona de disponibilidade na qual a instância está em execução.

  • Instance Size—Exibe o tipo de instância.

  • Architecture: exibe a configuração da variável de ambiente PROCESSOR_ARCHITECTURE.

É possível remover qualquer informação exibida por padrão ao excluir essa entrada. É possível adicionar metadados de instância adicionais para exibir da forma a seguir.

<WallpaperInformation> <name>display_name</name> <source>metadata</source> <identifier>meta-data/path</identifier> </WallpaperInformation>

É possível adicionar variáveis do ambiente do sistema para exibir da forma a seguir.

<WallpaperInformation> <name>display_name</name> <source>EnvironmentVariable</source> <identifier>variable-name</identifier> </WallpaperInformation>
InitializeDrivesSettings.xml

Esse arquivo contém as configurações que controlam como o EC2Config inicializa as unidades.

Por padrão, o EC2Config inicializa as unidades que não foram trazidas online com o sistema operacional. É possível personalizar o plugin conforme a seguir.

<InitializeDrivesSettings> <SettingsGroup>setting</SettingsGroup> </InitializeDrivesSettings>

Use um grupo de configurações para especificar como deseja inicializar as unidades:

FormatWithTRIM

Permite o comando TRIM ao formatar as unidades. Após uma unidade ser formatada e inicializada, o sistema restaurará a configuração de TRIM.

A partir do EC2Config versão 3.18, o comando TRIM é desativado durante a operação de formatação do disco, por padrão. Isso aprimora o tempo de formatação. Use essa configuração para permitir a TRIM durante a operação de formatação do disco para o EC2Config versão 3.18 e posterior.

FormatWithoutTRIM

Desabilita o comando TRIM ao formatar as unidades e melhorar o tempo de formatação no Windows. Após uma unidade ser formatada e inicializada, o sistema restaurará a configuração de TRIM.

DisableInitializeDrives

Desabilita a formatação de novas unidades. Use essa configuração para inicializar as unidades manualmente.