Skip to content
Marco Paolini edited this page Apr 7, 2025 · 9 revisions

AWS account setup (once)

  • create aws account, if you dont have one
  • install awsCLI
  • enable IAM Identity Center
    • create IAM user with PowerUserAccess
  • aws configure sso
  • set AWS_DEFAULT_PROFILE
  • log in with aws sso login
  • set default region with aws configure
  • test with aws ec2 desribe-instances
  • create an ec2 instance connect endpoint (in vpc tool)

Setup ssh (once)

ssh-keygen -m PEM -f ~/.ssh/aws_ec2_mpaolini
aws ec2 import-key-pair --key-name mpaolini --public-key-material fileb://~/.ssh/aws_ec2_mpaolini.pub
aws ec2 describe-instance-connect-endpoints

add to ~/.ssh/config:

Host ec2
  HostName localhost
  IdentityFile ~/.ssh/aws_ec2_mpaolini
  User ec2-user
  Port 8888
  ForwardAgent yes
  ServerAliveInterval 60

Create instance

ensure you are logged in with aws sso login

aws ec2 run-instances --key-name mpaolini --image-id ami-0bade3941f267d2b8 --output text --query 'Instances[0].InstanceId' --instance-type m7i.large
export AWS_INSTANCE_ID=$(aws ec2 describe-instances --output text --filters Name=instance-state-name,Values=running --query 'Reservations[0].Instances[0].InstanceId')

Connect to instance

  1. start tunnel
aws ec2-instance-connect open-tunnel --instance-id $AWS_INSTANCE_ID --local-port 8888
  1. remove previous known host
ssh-keygen -R "[localhost]:8888"
  1. upload git config scp ~/.gitconfig ec2:

  2. add ssh key to ssh agent (you need ssh agent forwarding for this to work)

ssh-add ~/.ssh/id_github
  1. connect

  2. tune instance

sudo dd if=/dev/zero of=/swapfile bs=1M count=1k
sudo chmod 0600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

Development

sudo dnf install git binutils clang perf lldb gprofng
git clone [email protected]:mpaolini/sqlite_mode.git

Stop instance

aws ec2 stop-instances --instance-id $AWS_INSTANCE_ID
aws ec2 terminate-instances --instance-id $AWS_INSTANCE_ID

check instances

aws ec2 describe-instances --query 'Reservations[].Instances[].State'
Clone this wiki locally