# Deploy Legacy Apps ## Create a virtual machine / Database for the app. ```bash npm install npm run cdk diff npm run cdk deploy ``` ## SSH to the virtual machine ```bash ## Save SSH key from CloudFormation Outputs eval $(aws cloudformation describe-stacks --stack-name DocrdrAppStack --query 'Stacks[].Outputs[?OutputKey==`ModernAppWorkshopGetSSHKeyCommand`].[OutputValue]' --output text) > ./tmp/modernapps-workshop-key chmod 400 ./tmp/modernapps-workshop-key export SSH_ACCESS=$(aws cloudformation describe-stacks --stack-name DocrdrAppStack --query 'Stacks[].Outputs[?OutputKey==`ModernAppWorkshopSSHAccess`].[OutputValue]' --output text) ssh $SSH_ACCESS -i ./tmp/modernapps-workshop-key ``` ## Create the Database ```bash ## Confirm the output of `cdk deploy` command for RDS_ENDPOINT export DATABASE_HOST=$(aws cloudformation describe-stacks --stack-name DocrdrAppStack --query 'Stacks[].Outputs[?OutputKey==`ModernAppWorkshopDatabaseHost`].[OutputValue]' --output text --region us-west-2) mysql -h $DATABASE_HOST -u admin -p # Password: adminadmin ``` ### Execute SQL for the App ```sql CREATE DATABASE docrdr; USE docrdr; CREATE TABLE DOCUMENTS (ID CHAR(36) PRIMARY KEY, TITLE VARCHAR(255), URL VARCHAR(255), ORIGINAL TEXT); ``` ## Install Tomcat on the machine ```bash ## Install Java17 sudo yum install java-17-amazon-corretto-headless ## Install Tomcat 10 wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.22/bin/apache-tomcat-10.0.22.tar.gz sudo mkdir /opt/tomcat10 sudo tar xzvf apache-tomcat-10.0.22.tar.gz -C /opt/tomcat10 --strip-components=1 sudo useradd -m -d /opt/tomcat10 -U -s /sbin/nologin tomcat10 sudo chown -R tomcat10:tomcat10 /opt/tomcat10/ sudo chmod -R u+x /opt/tomcat10/bin ## Set the tomcat service up sudo tee /etc/systemd/system/tomcat10.service < EOF ## Copy the context.xml to the server scp -i ./tmp/modernapps-workshop-key ./tmp/context.xml $SSH_ACCESS:~ ssh -i ./tmp/modernapps-workshop-key $SSH_ACCESS "sudo cp context.xml /opt/tomcat10/conf/Catalina/localhost/ROOT.xml" ## Copy the war to the server scp -i ../docrdr-app/tmp/modernapps-workshop-key ./app/build/libs/app.war $SSH_ACCESS:~ ssh -i ../docrdr-app/tmp/modernapps-workshop-key $SSH_ACCESS "sudo cp app.war /opt/tomcat10/webapps/ROOT.war" ```