Cloud-Provider
Unvollständige Liste an Cloud-Providern mit einigen Eigenschaften.
Azure
Links:
Preisrechner: https://azprice.info
Cloudscale.ch
Bemerkungen:
Kein LVM.
Links:
Ansible-Modul: https://galaxy.ansible.com/cloudscale_ch/cloud
Preisliste: https://www.cloudscale.ch/de/preise
DigitalOcean
Links
API: https://docs.digitalocean.com/reference/api/api-reference/
Ansible-Modul: https://galaxy.ansible.com/community/digitalocean
Preisliste: https://slugs.do-api.dev/
Exoscale
Bemerkungen:
Abrechnung auf Minutenbasis (pay-per-use).
Die Schweizer Datacenter werden von Equinix betrieben.
Es existiert keine Unterscheidung zwischen Shared oder Dedicated VMs.
Eine VM kann nicht von Zone zu Zone verschoben werden.
Es wird Stand 2022-05 nur ein Block Storage pro VM unterstützt.
Outbound-Traffic kostet und wird sekündlich abgerechnet, falls höher als (Anzahl Instanzen im Projekt x 1.42 GB/sec).
Kein LVM.
„Storage Optimized“ VMs verwenden grössere, aber langsamere SSDs. Der Performance-Verlust liegt bei ca. 30%.
Port 25 Outbound ist per Default gesperrt, kann aber auf Anfrage geöffnet werden.
OS-Templates müssen zwischen 10 GB und 1 TB gross sein.
Elastic IP Addresses sind „reservierte“ fixe Public IPs, die sich frei einzelnen VMs zuordnen lassen.
Managed: Können in Exoscale Load-Balancer oder für HA (gleiche Zone) verwendet werden.
Manual: Nur für Single Instances, müssen den VMs manuell zugewiesen werden.
Anti Affinity Group: stellt sicher, dass VMs auf unterschiedlichen Hypervisors laufen.
Security Group: Security Groups (= Firewalls) sind nur zu Public Networks connected, nicht zu Private Networks. Nach Aktivierung ist Inbound Traffic geblockt (also von der Publc IP abgehängt), und Outbound komplett offen. Wird eine Outbound-Rule erzeugt, wird ausgehender Verkehr bis auf die hinzugefügten Regeln geblockt.
„User Data“ ist für Scripting gedacht, und wird beim ersten Start der VM ausgeführt (z.B. Bash-Scripting per
#!/bin/bash
oder cloud-init per#cloud-config
).Load-Balancer aaS arbeitet nur gegen Instance Pools (und nur per TCP, HTTP und HTTPS), nicht gegen Single Instances.
Backups: Snapshots sind thick-provisioned.
exo limits list
listet die Einschränkungen des eigenen Accounts auf.Credentials und ACLs für S3-Buckets (im Menü unter „Storage“) werden im Menüpunkt IAM > Users gepflegt.
Links:
Ansible-Modul: https://galaxy.ansible.com/ngine_io/cloudstack
Marketplace: https://exoscale.com/marketplace
Preisliste: https://www.exoscale.com/pricing/, https://www.exoscale.com/static/files/price-list.pdf
exo
-Tool: https://github.com/exoscale/cli/releases
CLI - Beispiele für die Verwendung von exo
:
VER=1.52.0
dnf -y install "https://github.com/exoscale/cli/releases/download/v${VER}/exoscale-cli_${VER}_linux_amd64.rpm"
# configure access (first step of all, interactive)
exo config
# some other commands:
exo compute anti-affinity-group list
exo compute deploy-target list
exo compute elastic-ip list
exo compute instance list
exo compute instance-pool list
exo compute instance-template list
exo compute instance-type list
exo compute load-balancer list
exo compute private-network list
exo compute security-group list
exo compute sks list
exo compute ssh-key list
exo config list
exo dbaas list
exo dns list
exo iam access-key list
exo limits list
exo status
exo storage list
exo version
exo zone list
So funktioniert der Upload von Templates, und VM möglichst mit UEFI-Boot aufsetzen):
cd /var/lib/libvirt/images
export IMAGE=rocky85-cis.qcow2
TPLPATH=templates
TPLNAME='Rocky85_CIS'
TPLDESCRIPTION='Rocky 8.5 with CIS partition layout'
CHECKSUM=($(md5sum $IMAGE))
ZONE=ch-dk-2
exo storage mb sos://$TPLPATH --acl public-read; sleep 1
exo storage upload $IMAGE $TPLPATH/
exo storage setacl $TPLPATH/$IMAGE public-read
exo storage show $TPLPATH/$IMAGE
exo compute instance-template register --username root --zone $ZONE --description "'$TPLDESCRIPTION'" $TPLNAME https://sos-$ZONE.exo.io/$TPLPATH/$IMAGE $CHECKSUM
exo storage delete $TPLPATH/$IMAGE
exo storage rb $TPLPATH
Hetzner
Bemerkungen:
Outgoing traffic to ports 25 and 465 are blocked by default on all Cloud Servers. Sending mails from servers is not possible for this reason. Send a request for unblocking ports and enabling the send mail option for your account. Once you have been with us for a month and paid your first invoice, you can create a limit request to unblock these ports for a valid use case. In your request, you can tell us details about your use case. https://console.hetzner.cloud/limits
Max. 16 Disks pro VM.
Additional Block-Storage ist Faktoren langsamer als die erste VM-Disk.
Hetzner erlaubt es nicht, VMs auf Basis eigener Images laufen zu lassen - eigene Images lassen sich nur bei root-Servern verwenden.
- Die private Networks sind keine echten Subnetze - selbst wenn man sich z.B. ein
192.0.2.0/24
-Netzwerk erstellt, bekommt am Ende jede VM in dem Netzwerk eine/32
-Addresse. Die VMs in dem Netzwerk erreichen einander nicht direkt, jeglicher Traffic muss unbedingt über den Hetzner-Router in dem Netzwerk geleitet werden (in dem Fall die192.0.2.1
).Dies erkennt man auch an der Route, die von Hetzner automatisch angelegt wird:192.0.2.0/24 via 192.0.2.1 dev eth1 proto static
. Wenn eigene Routen zwischen den VMs einrichten will, um z.B. eine eigene zentrale Firewall zu verwenden, müssen diese zwingend bei Hetzner angelegt werden (im Webgui unter Networks > Routes, oder perhcloud network add-route my-net --destination 0.0.0.0/0 --gateway 192.0.2.2
). Anschliessend müssen folgende Routen auf allen VMs eingerichtet werden:192.0.2.2 dev eth1 proto static scope link metric 100
unddefault via 192.0.2.2 dev eth1 proto static metric 100
Siehe auch dieses Tutorial von Hetzner. Rechnungen werden erst am 05. eines jeden Monats generiert.
Bank Details:
Account holder: Hetzner Online GmbH
Bank: Deutsche Bank AG
IBAN: DE92 7607 0012 0750 0077 00
BIC: DEUTDEMM760
CLI - Beispiele für die Verwendung von hlcoud
(vorher einen API-Token erstellen):
hcloud context create my-project
hcloud server list
Hetzner Storage Boxes:
Hetzner Storage Boxen werden auf https://robot.hetzner.com/storage erstellt und im Beispiel unter
/data
gemountet.Ausgehend Port 23 freigeben
Key auf der Maschine erzeugen, die sich mit der Storage Box verbinden soll:
ssh-keygen -b 4096
SSH-Key auf die Storage Box kopieren (z.B von einer Fedora-Workstation aus, da OpenSSL 8.5+ benötigt wird):
ssh-copy-id -p 23 -s u4711@u4711.your-storagebox.de
Dann:
dnf -y install fuse-sshfs mkdir -p /data ssh -p 23 u4711@u4711.your-storagebox.de mkdir data sshfs -p 23 u4711@u4711.your-storagebox.de:data /data echo 'u4711@u4711.your-storagebox.de:data /data fuse.sshfs defaults,allow_other,_netdev,port=23 0 0' >> /etc/fstab
Links:
Ansible-Modul: https://galaxy.ansible.com/hetzner/hcloud
Preisliste: https://www.hetzner.com/de/cloud und https://www.hetzner.com/de/dedicated-rootserver
Hosttech
Bemerkungen:
Direkt vDC-fahig - Server müssen nicht mit dem Internet verbunden werden.
Outbound-Traffic ist im Preis enthalten.
0 bis 1 lokale NVMe, aber beliebig viele Distributed Storages pro VM.
Links:
Cloud: https://hosttech.cloud/
Ansible-Modul: -
Preisliste: nicht öffentlich
Infomaniak
Bemerkungen:
Outbound-Traffic ist im Preis enthalten.
Wie üblich haben auch hier die vorgefertigten Images kein LVM.
Bis Ende 2025 ist die „Public Cloud“ noch ein mono region/ein mono Datacenter.
„Swiss Backup“ wird in zwei verschiedene Datacenter in drei verschiedene Cluster repliziert. Damit sind die Daten auch im Falle eines Brandes im Datacenter der „Public Cloud“ sicher. Zugang ist nur mit Benutzername und Passwort möglich, nicht per SSH-Key. Das SFTP-Gateway unterstützt keine Dateinamen mit speziellen Zeichen (z.B. Akzente) und liefert Fehler, falls Verzeichnisse mit solchen Dateinamen gelistet werden.
Traffic von der „Public Cloud“ zu „Swiss Backup“ geht immer über extern, nicht über interne Verbindungen.
Die physische Location der Datacenter ist geheim, solange man kein Housing-Kunde ist.
In OpenStack (Produkt „Public Cloud“) fehlen die Rechte, externe Netzwerke und die „default“ Security-Group zu löschen.
Limits in OpenStack:
https://docs.infomaniak.cloud/quotas/ (gelten pro Projekt)
Anzahl Public Clouds pro Benutzer wie Anzahl Projekte pro Public Cloud
Statement vom Support zur Internet Bandbreite: „We do limit nor guarantee (yet) the bandwidth speed by instance on the Public Cloud.“
Disk-Bandbreite hingegen ist limitiert, mit
iops: 500. read and writes: 200MB / s
fürperf1
undiops: 1000. read and writes: 400MB / s
fürperf2
.
Links:
Cloud (Openstack-Basis): https://docs.infomaniak.cloud/documentation/homedoc/, https://developer.infomaniak.com/getting-started
Ansible-Modul: die OpenStack-Module können verwendet werden (https://docs.ansible.com/ansible/latest/collections/openstack/cloud/index.html)
Swiss Backup: https://www.infomaniak.com/en/swiss-backup/prices
Mehr Links:
Swiss Backup API - Beispiele:
BEARER_TOKEN='mytoken' # https://manager.infomaniak.com/v3/ng/accounts/token/list
ACCOUNT_ID=200999
# Get price list
curl --silent --location --header "Authorization: Bearer $BEARER_TOKEN" --request GET "https://api.infomaniak.com/1/swiss-backup/pricing?account_id=$ACCOUNT_ID" | jq
# Get general information about all backup storages
curl --silent --location --header "Authorization: Bearer $BEARER_TOKEN" --request GET "https://api.infomaniak.com/1/swiss-backup?account_id=$ACCOUNT_ID" | jq
# Get detailed information about all slots within a specific backup storage
curl --silent --location --header "Authorization: Bearer $BEARER_TOKEN" --request GET "https://api.infomaniak.com/0/swiss-backup/$SWISS_BACKUP_ID/slot?account_id=$ACCOUNT_ID" | jq
Eigenes Template erstellen (Upload zu OpenStack Glances):
dnf -y install python3-openstackclient
openstack image create --disk-format qcow2 --file /path/to/Rocky-8-GenericCloud.latest.x86_64.qcow2 --progress --shared 'Rocky 8 Generic Cloud'
# share with other projects
openstack image add project 'Rocky 8 CIS' other-project-id
# accept in other project (you have to use the image id)
openstack image set --accept image-id
IONOS-Cloud
Links:
Cloud: https://dcd.ionos.com/
Ansible-Modul: https://docs.ionos.com/ansible/usage/ansibleplaybooks
Preisliste: https://cloud.ionos.com/prices
Tools und Doku rund um Cloud-Dienste
Apache CloudStack OpenAPI:
Kein Provider, sondern ein standardisiertes API, welches von Cloud-Providern angeboten wird, die auf Apache CloudStack basieren.
Ansible-Modul: https://galaxy.ansible.com/ngine_io/cloudstack
cloud-init:
Built on 2023-03-17