Ich habe gerade mit AWS begonnen und ich habe einige Fragen.Verwendet AWS SDK, um eine Instanz und aws CLI zu starten, um es zu verwalten, ein guter Ansatz?
Zuerst folgte ich die offizielle Dokumentation darüber, wie eine Instanz mit AWS SDK für Java wie folgt zu starten:
AmazonEC2 Client = new AmazonEC2Client(awsCreds);
CreateSecurityGroupRequest csgr = new CreateSecurityGroupRequest();
csgr.withGroupName("Azzouz_group").withDescription("My security group");
IpPermission ipPermission = new IpPermission();
ipPermission.withIpRanges("0.0.0.0/0").withIpProtocol("tcp");
AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest();
authorizeSecurityGroupIngressRequest.withGroupName("Azzouz_group").withIpPermissions(ipPermission);
RunInstancesRequest runInstancesRequest = new RunInstancesRequest();
runInstancesRequest.withImageId("ami-4b814f22")
.withInstanceType("m1.small")
.withMinCount(1)
.withMaxCount(1)
.withKeyName("azzouz_key")
.withSecurityGroups("Azzouz_group");
RunInstancesResult runInstancesResult = Client.runInstances(runInstancesRequest);
RunInstancesResult runInstancesResult = Client.runInstances(runInstancesRequest);
String instanceId = runInstancesResult.getReservation().getInstances().get(0).getInstanceId();
ich nicht den CreateKeyPairRequest
Teil verwendet haben, weil ich meinen öffentlichen Schlüssel zu Amazon hochladen möchten so, wenn ich versuche zu ssh
in in ich habe nicht -i path/to/key.pem
hinzufügen und ich habe nur die Schlüsselnamen in meinem Java-Code zu erwähnen ("azzouz_key"
), in den nächsten Zeilen, $USER
enthält azzouz_key
:
keypair=$USER # just a name
publickeyfile=$HOME/.ssh/id_rsa.pub
regions=$(aws ec2 describe-regions \
--output text \
--query 'Regions[*].RegionName')
for region in $regions; do
echo $region
aws ec2 import-key-pair \
--region "$region" \
--key-name "$keypair" \
--public-key-material "file://$publickeyfile"
done
was ich jetzt will, ist eine Verbindung mit der Instanz und automatisieren einige Sachen. Also werde ich eine Shell aus dem Java Code aufrufen, das Skript bekommt eine Instanz ID als Parameter, dann bekommt es die IP Adresse (mit aws ec2 describe-instances
), ssh hinein und macht ein paar Sachen.
Ich wollte ssh-Verbindung zu der Instanz von jeder IP nur als Start (0.0.0.0/0) autorisieren und ich bin mir nicht sicher, ob das ist, was ich tun soll.
Also, meine Frage ist: Ist das der beste Ansatz ?! Soll ich nur den aws cli verwenden, um die Instanz zu erstellen und zu verwalten ?! Erwähnen nur den Namen des Schlüsselpaars passt mit dem Mechanismus des Hochladens des öffentlichen SSH-Schlüssel zu Amazon ?!
Bitte, ich fange gerade an, ich bin ein Praktikant und ich habe noch keinen Zugang zu einem Amazon Konto, so dass ich meine Arbeit testen kann. Ich arbeite das alles nur in meinem Kopf. VIELEN DANK!
Vielen Dank Maurizio. Über das kostenlose Tierkonto braucht es eine Kreditkarte, und in meinem Land haben wir solche Karten nicht. Das ist das Problem, also warte ich darauf, dass mein Chef mir nächste Woche Zugang gewährt. –
Richtig, leider keine Kreditkarte keine Party auf AWS. Gibt es eine Möglichkeit, eine virtuelle Kreditkarte in Ihrem Land zu erhalten? –
Ich arbeite daran. Vielen Dank! –