[RAILS] [Débutant] Commandes et connaissances qui peuvent être utiles pour la résolution des erreurs lors du déploiement d'AWS

Contexte

J'ai souffert de nombreuses erreurs lors du déploiement sur AWS, j'ai donc décidé de les rassembler dans un article. J'espère que cela aide les débutants comme moi!


Constitution

J'ai moi-même déployé avec Ruby on Rails, VPC / EC2 (Nginx, Unicorn) / RDS (PostgreSQL) / Route53 / ALB. Articles auxquels il est fait référence lors du déploiement https://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556


Commun

Vous pouvez vérifier le processus à l'aide de la commande ps. Articles faisant référence à la commande ps https://eng-entrance.com/linux-command-ps

$ ps -x            #Commande pour vérifier le processus en cours d'exécution

Lié à l'application

Lorsque l'application que vous déployez affiche "nous sommes désolés, mais quelque chose s'est mal passé". Vérifiez s'il y a un problème avec l'application

Environnement serveur/var/www/rails/nom de l'application


$ cd log
$ tail -n 30 production.log

S'il y a une erreur, il y a un problème avec l'application. S'il n'y a pas d'erreur particulière, il est fort possible qu'il y ait un problème avec les paramètres du serveur Web et que le déploiement n'ait pas réussi.


lié à nginx

・ Vérifiez si nginx fonctionne

Environnement serveur


$ sudo systemctl status nginx

ʻActive: active (en cours) S'il est affiché comme `, il est démarré.

-Commande de redémarrage

Environnement serveur


$ sudo service nginx restart

-Vérifiez s'il y a une erreur dans le fichier nginx

Environnement serveur


$ sudo nginx -t

Il s'agit d'une commande pratique qui vous indique où l'erreur s'est produite en cas d'erreur. S'il n'y a pas de problème avec le fichier nginx, il sera affiché comme ceci. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful


Licorne liée

Une commande pour vérifier le journal Unicorn. Je pense qu'une erreur courante est «Déjà en cours d'exécution sur PID: (numéro de processus)», qui se produit lorsqu'il reste des processus indésirables.

Environnement serveur/Annuaire des applications


$ cat log/unicorn.log -n

Commande de confirmation de processus de licorne

Environnement serveur


$ ps -ef | grep unicorn | grep -v grep

Commande pour terminer le processus de licorne Si vous obtenez une erreur «Déjà en cours d'exécution sur PID: (numéro de processus)», vous pouvez résoudre l'erreur en supprimant les processus inutiles avec cette commande.

Environnement serveur


$ kill (Numéro de processus)

Relatif à PostgreSQL

Commande pour vérifier si PostgreSQL est en cours d'exécution S'il dit ʻActive: active (en cours) `, il est en cours d'exécution.

Environnement serveur


$ systemctl status postgresql.service

Démarrez PostgreSQL

Environnement serveur


$ sudo systemctl enable postgresql
$ sudo systemctl start postgresql

Autre

GoogleChrome, lié à http

Lorsque j'ai accédé à l'application déployée avec Google Chrome, j'ai accédé de force à https (lorsque la conversion https n'était pas implémentée) et l'application ne s'est pas ouverte. La solution consistait à supprimer l'historique de Chrome-> Supprimer les données de l'historique de navigation-> Vérifier les images et les fichiers en cache et supprimer les données d'historique.

Vous pouvez vérifier la réponse avec la commande suivante. S'il n'y a pas d'erreur dans le fichier du serveur Web et que la commande curl renvoie une réponse solide, mais redirige vers https, cela peut être le problème.

$ curl http://example.com   #http://example.com est le domaine de l'application.

De plus, lors de la connexion via http Doit être défini sur config.force_ssl = false.

config/environment/production.rb


$ config.force_ssl = false 

conversion https

Au début, j'ai pensé à convertir en https en éditant le fichier sur le serveur Web, mais je savais qu'il serait plus facile de convertir en https en utilisant un service appelé ALB sur AWS, j'ai donc utilisé ALB. Si vous êtes un débutant et que vous avez du mal à vous convertir en https, je vous recommande personnellement d'utiliser ALB. Vous pouvez utiliser ALB pour rediriger les requêtes http vers https.

[Articles utilisés comme référence pour la conversion https] https://aws.amazon.com/jp/premiumsupport/knowledge-center/elb-redirect-http-to-https-using-alb/ https://dev.classmethod.jp/articles/alb-redirects/ En plus de cela, si vous recherchez "ALB https redirect", vous trouverez de nombreux articles utiles!

Recommended Posts

[Débutant] Commandes et connaissances qui peuvent être utiles pour la résolution des erreurs lors du déploiement d'AWS
Outils et commandes pouvant être utiles pour le dépannage Java
[Débutant] Commandes et connaissances qui peuvent être utiles pour la résolution des erreurs lors du déploiement d'AWS
[Pour les débutants] Pouvons nous enduire comme Swift!
Outils et commandes pouvant être utiles pour le dépannage Java
Causes et remèdes pour l'exception «ServletException: Erreur lors de l'instanciation de la classe de servlet» lors du déploiement d'applications Java