Connect to AWS ParallelCluster with EC2 Instance Connect
tl;dr:
SSH/SCP into cluster without a keypair
Connect to AWS ParallelCluster with EC2 Instance Connect
EC2 Instance connect allows you to SSH into an EC2 instance without a keypair. You can also perform basic file transfer i.e. SFTP and SCP with it.
Advantages:
- doesn’t require an SSH keypair
- connects to private IP addresses (you still need network connectivity)
You can read more about it here.
- First install the
ec2instanceconnectcli
helper:
pip install ec2instanceconnectcli
- Connect to the instance with the mssh command:
export AWS_DEFAULT_REGION='us-east-2'
mssh $(pcluster describe-cluster --cluster-name hpc6a | jq -r '.headNode.instanceId')
The above command can be shortened using a bash alias:
# usage: pssh [cluster-name]
pssh() {
mssh $(pcluster describe-cluster --cluster-name ${1} | jq -r '.headNode.instanceId')
}
And then simply run as:
pssh hpc6a
Transfer Files
You can transfer a file, for example README.md
to the cluster via:
tar -cf - README.md | mssh i-0117826db1caefe88 --region us-east-2 tar -xvf -
This can be set as an alias:
# usage: pscp [cluster-name] [filepath]
pscp() {
tar -cf - ${2} | mssh $(pcluster describe-cluster --cluster-name ${1} | jq -r '.headNode.instanceId') tar -xvf -
}
and run like:
pscp hpc6a README.md