Olá, espero que esteja bem !
No post de hoje vamos ver como configurar um ambiente de desenvolvimento utilizando o Cloud9, Code Commit e o Laravel Sail. O principal benefício é poder acessar seu ambiente de qualquer lugar apenas necessitando de internet e um navegador. Também temos o benefício de ter um ambiente totalmente integrado com os serviços da AWS. Uma coisa que precisa entender é que isso vai funcionar para quase qualquer ambiente mas facilitara muito se seu ambiente já estiver utilizando Docker.
Vamos lá !
Requisitos
Bem, para esse tutorial não abordarei a criação e configuração do Cloud9 + Code Commit, pois já abordei isso em um post anterior, por isso para continuar de uma olhada no post anterior
Como configurar o Code Commit + Cloud9 na AWS
Se você seguiu os passos do post anterior, você deve ter um repositório em seu Cloud9, caso tenha criado alguns arquivos do post anterior remova-os.
Configurando Docker Compose
Quando você cria um ambiente no Cloud9 o Docker já vem instalado, entretanto o Docker Compose não, por isso você deve realizar a instalação do mesmo para que no passo de instalação do Laravel + Sail não tenhamos problema.
sudo curl -L https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version
Configurando Composer
O Cloud9 suporta várias linguagens, o PHP já vem instalado por padrão o que nos falta aqui é o Composer. Seguindo a documentação do composer faça a instalação seguindo os passos do Linux.
Documentação: https://getcomposer.org/download/
1 - Em seu terminal execute os comandos a baixo
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === 'dac665fdc30fdd8ec78b38b9800061b4150413ff2e3b6f88543c636f7cd84f6db9189d43a81e5503cda447da73c7e5b6') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
2 - Se tudo tiver dado certo, no terminal do Cloud9 rode o comando abaixo, o resultado deve ser a saida com a versão do Composer
composer --version
Instalando Laravel + Sail
1 - Seguindo a documentação do Laravel, para instalar o Laravel vamos executar o seguinte comando ma raiz da pasta /environment/ do Cloud9, este passi demorar um pouco.
composer create-project laravel/laravel:^11.0 example-app
2 - Após seu projeto ter sido criádo mova os arquivo para a pasta de seu repositório
cd example-app
shopt -s dotglob && mv * ../meurepositorio
cd ..
rm -rf example-app
cd meurepositorio
Lembrando que se você olhar a documentação há outras formas de instalação siga a que melhor lhe serve.
3 - Na raiz do seu projeto instale o Laravel Sail
composer require laravel/sail --dev
4 - Escolha os serviços que deseja instalar, no meu caso só vou escolher o mysql
php artisan sail:install
5 - Execute o comando para seu ambiente inicar e configurar os serviços, isso pode demorar um pouco, depois de tudo estiver configurado sua aplicação estará sendo executada na porta 80, o proximos passos será expor nossa aplicação para a internet.
./vendor/bin/sail up
Acessando e expondo a aplicação para a internet
1 - Para visualizar nossa aplicação clique no botão share no canto superior direito
2 - Será aberto uma janela, nessa clique no IP da instância que se localiza no campo Application, então clique na opção Open
3 - Antes verifique está acessando com HTTP e não com HTTPS, depois de verificado você pode ver que recebemos um erro e não conseguimos acessar a aplicação. Isso acontece porque apesar de nossa instância, onde o Cloud9 está sendo executado, possuir um IP público a porta ao qual estamos querendo acessar no caso a 80, não está sendo exposta para a internet. Para corrigir isso precisamos adicionar uma regra a Security Group associada a nossa intância.
5 - Para adicionar essa regra a security group, navegue até o serviço de EC2, e selecione as instâncias que estão em execução
5 - Na página das instancias que estão em execução, selecione sua instâcia ao qual seu Cloud9 foi iniciado, logo após seleciona-la, na parte inferior da página será mostrado alguma informações de sua instância. Na aba security clique no link da security group que está em baixo de Security groups.
6 - Na página da security group, na aba de inbound rules(regras de entrada) vamos clicar em Edit inbound rules
7 - Clique em Add rule e adicione um regra de entrada que libere a porta 80 para ser acessada por qualquer IP da internet, lembrando que você pode estar customizando isso, como por exemplo adicionando apenas o seu IP. Por fim de um Save Rules
Type: Custom TCP
Port range: 80
Source: 0.0.0.0/0
Parabéns
Voltanto a sua aba do navegador e recarregando a página você deve conseguir acessar sua aplicação normalmente
Commit das alterações
Agora que sua aplicação está configurada e sendo executada você pode estar fazendo o commit das alterações e as enviando para seu repositório que foi configurado
git commit add -A
git commit -m "configuração do projeto"
git push origin master
Exclusão dos recursos
Não se esqueça de excluir o Cloud9 ao final do teste, caso queira prosseguir com mais teste mas queira parar e deixar para outro momento o Cloud9 para sua instância depois de alguns minutos de inatividade, agora se você quiser para na hora basta navegar até o serviço de EC2 selecionar sua EC2 e depois dar um Stop instance
Conclusão
Bem é isso, espero que tenha gostado e tenha lhe agregado em algo, caso tenha duvida ou tenha algum problema comenta abaixo, dentro do possível estarei lhe respondendo, obrigado por ter chegado até aqui.