Comment se connecter via SSH à une instance EC2 inaccessible?

Oct 28 2020

Avoir une instance AWS EC2 exécutant Discourse pendant plusieurs années.

Depuis quelques semaines / mois, il arrive qu'après certaines mises à niveau de Discourse (via l'interface graphique Web de Discourse), le système se bloque. Il n'est alors plus accessible via SSH et même pas via EC2 SSH web connect.

J'ai généralement redémarré l'ensemble de la machine via le panneau d'administration Web AWS ECS, puis j'ai pu me connecter à nouveau, à la fois via SSH et HTTPS.

(Je n'ai malheureusement pas enquêté davantage sur la cause du problème).

Aujourd'hui, le système s'est à nouveau suspendu après une mise à niveau de Discourse.

Mais cette fois, aucun redémarrage ou quoi que ce soit n'a aidé. Le système reste inaccessible via SSH, même après une attente de plusieurs heures.

La surveillance EC2 ne montre également aucune charge de serveur élevée pour moi:

Ma question

Comment puis-je à nouveau accéder via SSH à l'instance EC2 Ubuntu?

Mise à jour 1

Après un nouveau redémarrage et un certain temps d'attente, le système est de retour, sorti de nulle part.

Pour moi, il semble que le disque dispose de suffisamment d'espace libre (plus d'espace disque était l'une de mes hypothèses pour lesquelles le système était inaccessible).

Filesystem      Size  Used Avail Use% Mounted on
udev            2.0G     0  2.0G   0% /dev
tmpfs           394M  876K  393M   1% /run
/dev/xvda1       97G   31G   67G  31% /
tmpfs           2.0G     0  2.0G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           2.0G     0  2.0G   0% /sys/fs/cgroup
/dev/loop1       18M   18M     0 100% /snap/amazon-ssm-agent/1566
/dev/loop0       98M   98M     0 100% /snap/core/10185
/dev/loop2       29M   29M     0 100% /snap/amazon-ssm-agent/2012
/dev/loop3       98M   98M     0 100% /snap/core/10126
overlay          97G   31G   67G  31% /var/lib/docker/overlay2/5a799ab040002ad2ddec94ae85bcbe987543651a0d9478ddc12ab12715da7340/merged
tmpfs           394M     0  394M   0% /run/user/1000

J'essaie maintenant de déterminer s'il existe des journaux indiquant la raison de la panne.

Mise à jour 2

À la demande de heynnema, voici le résultat complet de sudo cat /etc/netplan/*.yaml:

# This file is generated from information provided by
# the datasource.  Changes to it will not persist across an instance.
# To disable cloud-init's network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
    version: 2
    ethernets:
        eth0:
            dhcp4: true
            match:
                macaddress: 06:a0:68:ea:54:4e
            set-name: eth0

Réponses

1 heynnema Oct 28 2020 at 23:13

Pour Amazon AWS EC2, vous devez utiliser un .yaml comme celui-ci. SSH fonctionnera alors.

# This file is generated from information provided by the datasource.  Changes
# to it will not persist across an instance reboot.  To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      match:
        macaddress: 06:a0:68:ea:54:4e
      set-name: eth0
  bridges:
    br0:
      dhcp4: true
      macaddress: 06:a0:68:ea:54:4e
      interfaces:
        - eth0

Remarque : vous devrez peut-être créer/etc/cloud/cloud.cfg.d/99-disable-network-config.cfg

network: {config: disabled}

sudo netplan --debug generate

sudo netplan apply

reboot # obligatoire

Voir https://cloudinit.readthedocs.io/en/latest/topics/faq.html