[PYTHON] Erstellen Sie HPC einfach auf AWS mit echtem AWS Cfn Cluster

Was ist CfnCluster?

Ein Tool, mit dem Clustercomputer auf AWS einfach erstellt werden können Offizielle Version von Starcluster Klicken Sie hier für Erste Schritte

Umgebung

Aktuelle Umgebung

  • ASUS C300
  • Chrome OS(linux-64)
  • miniconda3-3.18.3

Vorbereitung auf der AWS-Seite

Erstellen Sie einen Benutzer in der AWS-Konsole (https://console.aws.amazon.com/iam/home?region=ap-northeast-1#users/).

--Erstellen Sie einen neuen Benutzer --Wählen Sie Benutzer> Berechtigungen> Richtlinie anhängen> Administratorzugriff

Ich weiß nicht, ob andere Rollen akzeptabel sind

--Credentials> Zugriffsschlüssel erstellen> Anmeldeinformationen herunterladen

-Erstellen Sie Schlüsselpaar> Laden Sie die PEM-Datei herunter

CfnCluster installieren

--Erstellen Sie eine virtuelle Umgebung mit Anaconda

conda create -n cfn python=2.7 boto boto3 #Legen Sie den Boto vorerst in den Conda-Beamten
source activate cfn
pip install cfncluster

Konfigurationsdatei generieren

(cfn)chronos@localhost / $ cfncluster configure

Geben Sie verschiedene Informationen in einem Assistentenformat ein --Cluster-Vorlage: # Name des Cluster-Computers. Diesmal mycluster --AWS Access Key ID: # Siehe Anmeldeinformationen --AWS Secret Access Key ID: # Auf Anmeldeinformationen verweisen --AWS Region ID: # Auswahlmöglichkeiten werden angezeigt. Diesmal ap-nordost-1 --VPC-Name: #VPC-Name kann alles sein, diesmal Test --Key Name: #Wählen Sie den Schlüssel, den Sie gerade erstellt haben --VPC ID: # Auswahlmöglichkeiten werden angezeigt, wählen Sie sie aus

Hier wurde die eingestellte Konfigurationsdatei generiert ~/.cfncluster/config

[aws]
aws_region_name = ap-northeast-1
aws_access_key_id = xxxxxxxxxxxxxxxxx
aws_secret_access_key = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

[cluster mycluster]
vpc_settings = test
key_name = xxxxxx

[vpc test]
master_subnet_id = subnet-xxxxxxxx
vpc_id = vpc-xxxxxxxx

[global]
update_check = true
sanity_check = true
cluster_template = mycluster

Ausführliche Einstellungen finden Sie unter hier.

Festlegen von Elementen, die wahrscheinlich verwendet werden

Fügen Sie es nach dem Abschnitt [Cluster] in der Konfigurationsdatei hinzu und es ist in Ordnung Diese Elemente werden mit Standardwerten ohne Einstellung gestartet

--master_instance_type: Der Standardwert für die Masterinstanz ist t2.micro --compute_instance_type: Der Standardwert für die Rechenknoteninstanz ist t2.micro --initial_queue_size: Anzahl der Rechenknoten, die zuerst gestartet werden sollen. Standard ist 2 --maintain_initial_size: Gibt an, ob automatisch skaliert werden soll. Beachten Sie, dass der Standardwert false ist (Skalierung), was das Gegenteil des Gefühls ist. --max_queue_size: Maximale Anzahl von Rechenknoten bei der automatischen Skalierung. Standard ist 10 --cluster_type: Gibt an, ob ein Cluster bei Bedarf oder vor Ort eingerichtet werden soll. Der Standardwert ist ondemand.

Auch wenn Sie spot angeben, ist MasterServer ondemand (da es ein Problem darstellt, wenn es in die Mitte fällt)

--spot_price: Gebotsbetrag, wenn cluster_type = spot. defalut = 0,00 --custom_ami: AMI kann angegeben werden

Ich habe die folgenden Elemente hinzugefügt und als Testversion gestartet

maintain_initial_size = true
initial_queue_size = 1
cluster_type = spot
compute_instance_type = m3.medium
spot_price = 0.02

Verwendung von CfnCluster

Starten Sie den Cluster

(cfn)chronos@localhost / $ cfncluster create mycluster

Im Vergleich zu Sternhaufen nimmt es viel Zeit in Anspruch. Mit 1 Master und 1 Rechenknoten dauert es weniger als 20 Minuten Die Aufteilung ist ungefähr wie folgt

Wenn das Gebot zu billig ist, wird EC2 zu einem Zombie, selbst wenn Sie cfncluster mit Strg-x stoppen. Stoppen Sie es richtig mit cfncluster delete mycluster.

Bestätigung der Ganglien

Beim Start mit cfn wird auch das Serverüberwachungstool Ganglia gestartet.

Output:"GangliaPublicURL"="http://xx.xxx.xxx.xxx/ganglia/"

Screenshot 2016-03-05 at 21.21.59.png

Verbinde dich mit ssh

Bestätigung

qhost Screenshot 2016-03-05 at 21.32.15.png

Cluster löschen

(cfn)chronos@localhost / $ cfncluster delete mycluster

Eindrücke & Zweifel

-Es gibt ein Gefühl der Sicherheit, weil es echt ist. Aber warum ist es so langsam? --Wie vergrößern oder verkleinern Sie die Rechenknoten explizit? Update? ――Auto-Skalierung scheint interessant zu sein, wurde jedoch nicht untersucht

[Beachten Sie, dass ich oft vergesse] SSH-Verbindung zu EC2 mit Chromebook-Secureshell

Referenz-URL

mkdir sshkey
cp key.pem ./sshkey/
chmod 600 ./sshkey/
sudo ssh-keygen -y -f ./sshkey/key.pem >key.pub
cp key.pem key

Importieren Sie den generierten Schlüssel (umbenannt in key.pem) und key.pub in Secure Shell.

Recommended Posts

Erstellen Sie HPC einfach auf AWS mit echtem AWS Cfn Cluster
Erstellen Sie mit pulumi eine WardPress-Umgebung auf AWS
[AWS] Erstellen wir einen ECS-Cluster mit CDK
Erstellen Sie einfach CNNs mit Keras
Erstellen Sie mit AWS CDK Python ganz einfach Netzwerkinfrastruktur und EC2
Erstellen Sie mit Chalice eine flaschen- / flaschenähnliche Webanwendung auf AWS Lambda
[AWS] ECR mit AWS CDK erstellen
Erstellen Sie mit Vagrant ganz einfach virtuelle Maschinen
Erstellen Sie mit Laragon ganz einfach eine Entwicklungsumgebung
Erstellen Sie eine Python-Umgebung mit Anaconda auf einem Mac
Erstellen Sie CentOS 8 unter ESXi 6.7 mit minimaler Konfiguration
Versuchen Sie Tensorflow mit einer GPU-Instanz unter AWS
Erstellen Sie eine Python-Umgebung mit pyenv auf EC2 (Ubuntu)
Erstellen Sie eine Python-Umgebung mit ansible auf centos6
Erstellen Sie ein billiges Zusammenfassungssystem mit AWS-Komponenten
Melden Sie sich einfach mit mehreren Konten bei AWS an
Erste Schritte mit AWS IoT in Python