O blog da AWS
Como automatizar a criação de WorkSpaces customizados via AWS Service Catalog
Por Antonio Cesar Vergani Junior, Arquiteto de Infraestrutura Cloud do time de Professional Services para o Setor Público.
Este post tem por objetivo explicar com detalhes os passos para criação de um workspace, um “desktop virtual e persistente na nuvem”, através do serviço Amazon WorkSpaces. Além disso, demonstrar o provisionamento desse com conteúdo customizado como um produto, dentro de um catálogo de serviços da conta AWS, através do serviço AWS Service Catalog. Para isso é importante termos uma breve introdução aos serviços mencionados: Amazon WorkSpaces e AWS Service Catalog.
O Amazon WorkSpaces é um serviço de virtualização de desktop persistente e totalmente gerenciado que permite que seus usuários acessem os dados, aplicações e recursos de que precisam, em qualquer lugar, a qualquer hora, de qualquer dispositivo compatível. Você pode usar o Amazon WorkSpaces para provisionar desktops Windows ou Linux em apenas alguns minutos e escalar rapidamente para oferecer milhares de desktops a usuários em todo o mundo.
O AWS Service Catalog permite que empresas criem e gerenciem catálogos de serviços de TI que estejam aprovados para uso na AWS. Esses serviços de TI podem incluir tudo: de imagens de máquinas virtuais, servidores, software e bancos de dados a arquiteturas completas de aplicações multi-camadas. O AWS Service Catalog permite que você gerencie de forma centralizada os serviços de TI implantados e suas aplicações, recursos e metadados. Isso te ajuda a atingir uma governança consistente e a cumprir requisitos de conformidade, além de permitir que usuários implantem rapidamente apenas os serviços de TI aprovados de que precisam.
Com isso, a partir do WorkSpaces é possível criar imagens específicas para os diferentes perfis de usuários (usuários de BI, desenvolvedores, prestadores de serviço, etc) disponibilizando somente os recursos (software e ferramentas) que eles necessitam para executarem os seus trabalhos e associando essas imagens a recursos computacionais (quantidade de vCPUs e espaço em disco), gerando um bundle. Um WorkSpace bundle é uma combinação de um sistema operacional e recursos de armazenamento, computação e software. Ao iniciar um WorkSpace, você seleciona o pacote que atende às suas necessidades. E a partir do Service Catalog é possível importar um template de CloudFormation que utilizará esse bundle, disponibilizando esse provisionamento como um produto dentro do catálogo de serviços.
Pré-Requisitos
Para disponibilizar o workspace é mandatório ter configurado na conta AWS um serviço de diretório no AWS Directory Services (via AWS Managed Microsoft AD, AD Connector ou Simple AD), pois o workspace é obrigatoriamente associado ao domínio definido no AWS Directory Services.
Para esse provisionamento, serão executados os seguintes passos:
- Criar um WorkSpace inicial
- Mostrar como se conectar ao workspace criado
- Gerar uma imagem customizada
- Criar um bundle (combinação entre a imagem gerada e recursos de hardware)
- Incluir um template do CloudFormation como um Produto no AWS Service Catalog
Para criar um WorkSpace, siga os passos abaixo:
1- No Console AWS, acesse o serviço WorkSpaces
2- Clique na aba WorkSpaces, e logo após clique em Launch WorkSpaces:
3- No passo 1, selecione o Diretório criado através do AWS Directory Services, e clique em Next Step:
4- No passo 2, crie ou pesquise algum usuário já existente no seu domínio (somente usuários com First Name, Last Name e Email preenchidos são elegíveis para essa configuração):
5- Clique em Add Selected e depois clique em Next Step
6- No passo 3, selecione um Bundle (no exemplo foi utilizado um bundle contendo somente o Windows 10, mas existem outras opções contendo o pacote Office e também outras opções utilizando o sistema operacional Linux):
7- Em seguida, verifique se os dados selecionados estão corretos (você pode modificar o Root Volume e/ou User Volume caso necessário) e clique em Next Step:
8- No passo 4, selecione o Running Mode e o Encryption (nesse momento, vamos deixar sem criptografia para que possamos gerar uma imagem do WorkSpace. Atualmente, não é possível gerar uma imagem a partir de WorkSpaces com discos criptografados):
9- Caso você queira incluir tags, você pode incluí-las e em seguida clicar em Next Step:
10- Por fim, clique em Launch Workspaces
11- Pode levar cerca de 20 minutos para que o WorkSpace fique disponível (status Available):
Como se conectar ao WorkSpace criado:
12- Para acessar o WorkSpace criado, faça o download do cliente compatível com sua plataforma através do link: https://clients.amazonworkspaces.com/
13- Após instalado, abra o cliente do WorkSpaces e informe o Registration Code (que consta nos detalhes da WorkSpace criada) e clique em Register:
14- Informe usuário, senha e em seguida clique em Sign In
15- Caso seja seu primeiro acesso, pode ser solicitado que você troque a senha
16- Instale os aplicativos desejados nesse WorkSpace
17- Com todos os aplicativos e configurações efetuadas, acesse o prompt de comando no Windows (Windows + R e digite cmd)
18- Navegue até o diretório C:\Program Files\Amazon:
- Digite no prompt: cd C:\Program Files\Amazon
- Digite exe e clique em Enter
19- Clique em Run
20- Clique em Close Amazon Workspaces Image Checker Tool
21- Clique em Iniciar/Shutdown para se desconectar da WorkSpace
22- O WorkSpace seguirá o status de Rebooting:
23- Pouco tempo depois, o status será alterado para Stopped:
24- Selecione o WorkSpace, clique em Actions e em seguida clique em Start Workspaces
Gerar uma imagem customizada:
25- Selecione o WorkSpace e, em seguida, clique em Actions e Create Image
26- Clique Next
27- Preencha o nome da imagem e a descrição, conforme exemplo abaixo, e clique em Create Image:
28- Pode levar cerca de 45 minutos para a imagem ser criada
Criar um bundle:
29- Clique na aba Images para visualizar a imagem criada:
30- Selecione a imagem criada, clique em Actions e em seguida clique em Create bundle:
31- Informe o Bundle name, Description, Bundle hardware type e Storage settings:
32- Clique em Create bundle
33- Clique na aba Bundles e visualize o bundle recém criado:
Incluir um template do CloudFormation como um Produto no AWS Service Catalog
34- Acesse o serviço AWS Service Catalog
35- Clique na aba Portfolios, situada dentro da guia Administration
36- Clique em Create portfolio
37- Preencha os dados solicitados (os dados informados na tela são somente a título de exemplo):
38- Clique em Create
39- Selecione a aba Products (guia Administration) e em seguida clique em Upload new product
40- Preencha os campos Product Name, Description e Owner (como no exemplo a seguir, mas com os seus respectivos valores)
41- Em Choose a method, selecione Use a template file, clique Choose file e selecione o arquivo Workspace.yaml que pode ser encontrado no link https://github.com/aws-samples/aws-workspaces-cloudformation-template
42- Preencha a versão (por exemplo v1), clique em Review e em seguida clique em Create product
43- Veja o produto “Desktop Windows 10” criado na lista de produtos:
44- Selecione o produto criado, clique em Actions e em seguida clique em Add product to portfolio
45- Selecione o Portfolio (no caso do exemplo, “WorkSpaces”) e em seguida clique em Add Product to Portfolio
46- Clique na aba Portfolio e clique no portfolio WorkSpaces
47- Clique em Groups, roles and users
48- Clique am Add groups, roles, users
49- Clique em Role, selecione uma IAM Role para essa tarefa e clique em Add access
50- Vá para a guia Products, que é a aba visível pelos usuários (não confundir com a Products dentro de Administration) e selecione o produto desejado:
51- Clique em Launch product
52- Informe o Provisioned product name, Workspace Configuration e clique em Launch product:
53- Acompanhe o status de provisionamento através da console do WorkSpaces:
54- A WorkSpace estará disponível em aproximadamente 20 minutos:
55- Para criar um WorkSpace (do produto Windows 10) para um novo usuário, basta seguir a partir do passo 50.
Clean-up
Para remover as WorkSpaces criadas, basta acessar o serviço Amazon WorkSpaces, selecionar o WorkSpace que deseja remover, clicar em Actions e em seguida clicar em Remove WorkSpaces.
Conclusão
Pronto, com isso você tem disponível no seu catálogo de serviços uma forma automática de provisionar “desktops virtuais” na nuvem para seus usuários, de acordo com o perfil desejado e com as devidas customizações. Você poderá gerar bundles diferentes para cada perfil de usuário (não se limitando aos bundles padrões já existentes no serviço), cada um contendo os aplicativos e ferramentas necessárias para seu trabalho. E a partir do AWS Service Catalog é possível provisionar uma nova WorkSpace para outro usuário, somente preenchendo as informações necessárias para esse provisionamento.
Sobre o autor
Antonio Cesar Vergani Junior é Arquiteto de Infraestrutura Cloud do time de Professional Services para o Setor Público. Tendo trabalhado em projetos de arquitetura de dados, migrações e Machine Learning em empresas nacionais e multinacionais. Nos horários livres gosta de aproveitar o tempo com sua família, assistir filmes/séries e curtir um churrasco com familiares e amigos.