[RAILS] [Anfänger] Befehle und Kenntnisse, die für die Fehlerbehebung bei der Bereitstellung von AWS hilfreich sein können

Hintergrund

Bei der Bereitstellung in AWS sind viele Fehler aufgetreten, daher habe ich beschlossen, diese in einem Artikel zusammenzufassen. Ich hoffe es hilft Anfängern wie mir!


Verfassung

Ich selbst habe Ruby on Rails, VPC / EC2 (Nginx, Unicorn) / RDS (PostgreSQL) / Route53 / ALB bereitgestellt. Artikel, auf die bei der Bereitstellung Bezug genommen wird https://qiita.com/naoki_mochizuki/items/f795fe3e661a3349a7ce https://qiita.com/Yuki_Nagaoka/items/1f0b814e52e603613556


Verbreitet

Sie können den Vorgang mit dem Befehl ps überprüfen. Artikel, die sich auf den Befehl ps beziehen https://eng-entrance.com/linux-command-ps

$ ps -x            #Befehl zum Überprüfen des aktuell ausgeführten Prozesses

Anwendungsbezogen

Wenn die von Ihnen bereitgestellte Anwendung "Es tut uns leid, aber etwas ist schief gelaufen" anzeigt. Überprüfen Sie, ob ein Problem mit der App vorliegt

Serverumgebung/var/www/rails/App Name


$ cd log
$ tail -n 30 production.log

Wenn ein Fehler auftritt, liegt ein Problem mit der Anwendung vor. Wenn kein bestimmter Fehler vorliegt, liegt möglicherweise ein Problem mit den Webservereinstellungen vor und die Bereitstellung war nicht erfolgreich.


Nginx verwandt

・ Überprüfen Sie, ob Nginx ausgeführt wird

Serverumgebung


$ sudo systemctl status nginx

Wenn "Aktiv: Aktiv (läuft)" angezeigt wird, wird es ausgeführt.

Serverumgebung


$ sudo service nginx restart

-Überprüfen Sie, ob in der Nginx-Datei ein Fehler vorliegt

Serverumgebung


$ sudo nginx -t

Dies ist ein praktischer Befehl, der Ihnen sagt, wo der Fehler aufgetreten ist, wenn ein Fehler vorliegt. Wenn es kein Problem mit der Nginx-Datei gibt, wird sie so angezeigt. nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful


Einhorn verwandt

Ein Befehl zum Überprüfen des Einhornprotokolls. Ich denke, ein häufiger Fehler ist "Bereits auf PID ausgeführt: (Prozessnummer)", der auftritt, wenn unerwünschte Prozesse übrig sind.

Serverumgebung/App-Verzeichnis


$ cat log/unicorn.log -n

Befehl zur Bestätigung des Einhornprozesses

Serverumgebung


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

Befehl zum Beenden des Einhornprozesses Wenn der Fehler "Wird bereits auf PID ausgeführt: (Prozessnummer)" angezeigt wird, können Sie den Fehler beheben, indem Sie mit diesem Befehl unnötige Prozesse löschen.

Serverumgebung


$ kill (Prozessnummer)

PostgreSQL bezogen

Befehl zum Überprüfen, ob PostgreSQL ausgeführt wird Wenn "Aktiv: Aktiv (läuft)" angezeigt wird, wird es ausgeführt.

Serverumgebung


$ systemctl status postgresql.service

Starten Sie PostgreSQL

Serverumgebung


$ sudo systemctl enable postgresql
$ sudo systemctl start postgresql

Andere

GoogleChrome, http bezogen

Als ich auf die mit Google Chrome bereitgestellte Anwendung zugegriffen habe, habe ich zwangsweise auf https zugegriffen (wenn die https-Konvertierung nicht implementiert war) und die Anwendung wurde nicht geöffnet. Die Lösung bestand darin, den Chrome-Verlauf zu löschen-> Browserverlaufsdaten löschen-> zwischengespeicherte Bilder und Dateien zu überprüfen und Verlaufsdaten zu löschen.

Sie können die Antwort mit dem folgenden Befehl überprüfen. Wenn die Webserver-Datei keine Fehler enthält und der Befehl curl eine solide Antwort zurückgibt, aber zu https umleitet, kann dies das Problem sein.

$ curl http://example.com   #http://example.com ist die Domain der App.

Auch bei der Verbindung über http Muss auf config.force_ssl = false gesetzt sein.

config/environment/production.rb


$ config.force_ssl = false 

https-Konvertierung

Zuerst dachte ich darüber nach, durch Bearbeiten der Datei auf dem Webserver in https zu konvertieren, aber ich wusste, dass es einfacher sein würde, mithilfe eines Dienstes namens ALB unter AWS in https zu konvertieren, also habe ich ALB verwendet. Wenn Sie ein Anfänger sind und Probleme beim Konvertieren in https haben, empfehle ich persönlich die Verwendung von ALB. Sie können ALB verwenden, um http-Anforderungen an https umzuleiten.

[Artikel, die als Referenz für die https-Konvertierung verwendet werden] https://aws.amazon.com/jp/premiumsupport/knowledge-center/elb-redirect-http-to-https-using-alb/ https://dev.classmethod.jp/articles/alb-redirects/ Wenn Sie nach "ALB https redirect" suchen, finden Sie außerdem viele nützliche Artikel!

Recommended Posts

[Anfänger] Befehle und Kenntnisse, die für die Fehlerbehebung bei der Bereitstellung von AWS hilfreich sein können
Tools und Befehle, die für die Fehlerbehebung in Java hilfreich sein können
[Anfänger] Befehle und Kenntnisse, die für die Fehlerbehebung bei der Bereitstellung von AWS hilfreich sein können
[Für Anfänger] Lassen Sie uns wie Swift beschichten!
Tools und Befehle, die für die Fehlerbehebung in Java hilfreich sein können
Ursachen und Abhilfemaßnahmen für die Ausnahme "ServletException: Fehler beim Instanziieren der Servlet-Klasse" beim Bereitstellen von Java-Apps