O blog da AWS

Como detectar Amazon WorkSpaces não utilizados

Por Hernán Fernández, Enterprise Support Lead na AWS

 

Introdução

O Amazon WorkSpaces é um serviço que permite provisionar desktops virtuais de forma rápida, segura, escalável e de baixo custo. Para otimizar o consumo do serviço, veremos como é possível detectar instâncias WorkSpaces não foram utilizadas, usando como referência os dados referentes a última conexão do usuário final.

Para isso, usaremos a interface de linha de comando da AWS (AWS CLI) em seu computador ou  mesmo o AWS CloudShell, disponível na console da AWS.

Executaremos um comando que usa a API describe-workspaces-connection-status, relatando a data e a hora da última conexão estabelecida para cada desktop virtual.

O comando a seguir retorna a lista de WorkSpaces. O campo lastKnownUserConnectionTimestamp contém a data e a hora em que o usuário dos respectivos WorkSpaces se conectaram pela última vez.

aws workspaces describe-workspaces-connection-status --output table

Além disso, podemos classificar o resultado por data, com o seguinte comando.

aws workspaces
describe-workspaces-connection-status --query
'sort_by(WorkspacesConnectionStatus[].{WorkspaceId:WorkspaceId,LastConnection:to_string(LastKnownUserConnectionTimestamp)},&LastConnection)'
--output table

Obteremos um resultado semelhante ao seguinte:

Nesse caso, para cada ID do Workspace, podemos ver a data e a hora da última conexão do usuário. Com essas informações, podemos tomar decisões sobre quais WorkSpaces são candidatos à desativação.

Nos casos em que a data não está disponível, isso significa que o recurso ainda não foi usado. Nesses casos, recomendamos validar a data em que os espaços de trabalho foram entregues ao usuário antes de decidir excluí-los.

Relatórios periódicos

Além disso, é possível automatizar o relatório de espaços de trabalho não utilizados com o seguinte código disponível no GitHub.

O diagrama a seguir representa a arquitetura que você pode implantar automaticamente usando o modelo do AWS CloudFormation.

1. A solução implanta uma regra do Amazon EventBridge que invoca a função AWS Lambda a cada certo número de dias, que são definidos pelo usuário ao implementar a solução.

2. A função Lambda consulta o Amazon WorkSpaces para obter a lista de desktops virtuais e a data da última conexão.

3. Os registros da função Lambda são armazenados no AWS CloudWatch Logs.

4. Um relatório é enviado ao usuário final com a lista do Amazon WorkSpaces com o número de dias que não foram usados.

O modelo do CloudFormation solicitará três parâmetros. O número de dias a partir dos quais um desktop do Workspaces será reportado como não utilizado (parâmetro: Dias), o e-mail que receberá a notificação (parâmetro: EmailAddress) e a cada poucos dias ele executará a revisão de forma automatizada (parâmetro: Taxa de execução).

É importante aceitar a solicitação de assinatura do tópico do SNS para receber esse relatório.

Depois de implantar a solução, você receberá um e-mail para confirmar a notificação ao tópico do SNS, que deve ser confirmada para receber os relatórios.

Por fim, a solução criará um bucket S3 chamado unusedworkspaces-<AWS Account Number>, para manter um histórico dos relatórios gerados pela solução, em formato CSV.

Conclusões

Neste artigo, mostramos como otimizar o consumo do Amazon Workspaces obtendo uma lista de WorkSpaces com a respectiva data do último uso. Essas informações permitirão que você detecte WorkSpaces que não foram usados pelos usuários.

Suporte e contribuição

Essa solução está disponível no seguinte repositório do GitHub. O suporte ou a necessidade de novas funcionalidades estão disponíveis no modo de melhor esforço.

Qualquer contribuição para este projeto no GitHub é bem-vinda e pode ser solicitada por meio de pull requests do Github.

 

Este artigo foi traduzido do Blog da AWS em Espanhol.

 


Sobre o autor

Hernán Fernández é líder de suporte corporativo na AWS. Em sua função, ela ajuda os clientes em seus processos de adoção da nuvem, bem como a aplicar as melhores práticas e reduzir riscos em seus aplicativos. Ele trabalhou por mais de 15 anos como profissional de tecnologia da informação, com foco em tecnologias Linux, infraestrutura e projetos de negócios.