AWS steht für Amazon Web Servises und ist ein Cloud-Server-Service von Amazon. Es ist ein Dienst, der von vielen Menschen und Unternehmen genutzt wird und je nach Kapazität und Nutzungsdauer völlig kostenlos genutzt werden kann.
In Heroku gespeicherte Bilder werden alle 24 Stunden zurückgesetzt. Indem Sie das Image auf einem externen Server speichern, können Sie das Phänomen verhindern, dass das Image verschwindet. Dieses Mal verwenden wir AWS als externen Server.
Als einer der AWS-Services können Sie 12 Monate lang kostenlos Speicherplatz von bis zu 5 GB nutzen und Bilder usw. speichern.
Wir gehen davon aus, dass Sie sich bereits bei AWS registriert haben. (Wenn Sie sich nicht registriert haben, suchen Sie bitte in AWS und registrieren Sie eine neue.)
IAM ist einer der AWS-Services. Ein in AWS erstelltes Konto wird zu einem Root-Benutzer mit allen Berechtigungen, und es besteht das Risiko, dass es missbraucht wird, wenn Informationen verloren gehen. Erstellen Sie daher einen Benutzer mit eingeschränkten Berechtigungen und lassen Sie diesen Benutzer die normale Arbeit ausführen. IAM kann Benutzer mit diesen eingeschränkten Berechtigungen erstellen.
Von IAM erstellte Benutzer werden als IAM-Benutzer bezeichnet. Suchen Sie zunächst mit der AWS-Servicesuche nach IAM und wechseln Sie zur IAM-Seite. Klicken Sie in der Seitenleiste unter Benutzer auf Benutzer hinzufügen. Geben Sie dann einen beliebigen Benutzernamen ein, aktivieren Sie Programmatic Access und klicken Sie auf "Next Steps". Wählen Sie Vorhandene Richtlinie direkt anhängen, geben Sie amazons3 in den Richtlinienfilter ein, aktivieren Sie "AmazonS3FullAccess" und klicken Sie auf "Nächster Schritt". Fügen Sie Tags nur denjenigen hinzu, die dies möchten, und klicken Sie auf "Nächste Schritte". Ein Bestätigungsbildschirm für die Einstellungen wird angezeigt. Wenn keine Probleme vorliegen, klicken Sie auf "Benutzer erstellen". Vergessen Sie nicht, die zu diesem Zeitpunkt angezeigte ".csv" herunterzuladen. (Zur späteren Verwendung.)
Wenn Sie unter den oben erstellten IAM-Benutzern in AWS auf die Registerkarte Anmeldeinformationen klicken, finden Sie das Kennwortfeld auf der Konsole. Aktivieren Sie auf der Seite, die nach dem Klicken auf Hier verwalten angezeigt wird, den Konsolenzugriff und wählen Sie ein automatisch generiertes Kennwort für die Kennworteinstellungen aus und wenden Sie es an. Dadurch wird ein Passwort generiert. Vergessen Sie nicht, die zu diesem Zeitpunkt angezeigte ".csv" herunterzuladen. (Zur späteren Verwendung.)
Der Ort, an dem Daten tatsächlich in S3 gespeichert sind, wird als Bucket bezeichnet. Wenn Sie nach der Anmeldung bei AWS in der Servicesuche zur S3-Seite wechseln, wird der Wortkorb angezeigt. Im Element "Bucket" in der Seitenleiste befindet sich eine Schaltfläche mit dem Namen "Bucket erstellen". Klicken Sie also auf diese Schaltfläche.
Geben Sie den Bucket-Namen ein, den Sie für sich selbst gehalten haben, um zum Eingabebildschirm für den Bucket-Namen und die Region zu gelangen.
Region bedeutet Region, aber hier repräsentiert es den Standort des Servers. Wenn Sie Japaner sind, können Sie Asien-Pazifik (Tokio) wählen.
Wenn Sie Optionen festlegen möchten, legen Sie diese hier fest. Klicken Sie auf Weiter, wenn Sie fertig sind.
Standardmäßig ist "Alle öffentlichen Zugriffe blockieren" aktiviert. Wenn Sie dieses Kontrollkästchen deaktivieren, können Sie Ihre Präferenz für den öffentlichen Zugriff festlegen. Klicken Sie auf Weiter, wenn Sie fertig sind.
Auf der Bestätigungsseite wird eine Liste der Einstellungen angezeigt, die Sie bisher vorgenommen haben. Wenn Sie zufrieden sind, klicken Sie auf "Bucket erstellen".
Die Bucket-Richtlinie ist ein Mechanismus, mit dem entschieden wird, welche Art von Zugriff in S3 gespeichert und Daten gelesen werden dürfen. Ermöglichen Sie diesmal den Zugriff des zuvor erstellten IAM-Benutzers.
Kopieren Sie zunächst die ARN des IAM-Benutzers und notieren Sie sie irgendwo.
Klicken Sie in dem von Ihnen erstellten Bucket auf Berechtigungen, klicken Sie auf Bucket-Richtlinie und schreiben Sie Folgendes:
{
"Version": "2012-10-17",
"Id": "Policy1544152951996",
"Statement": [
{
"Sid": "Stmt1544152948221",
"Effect": "Allow",
"Principal": {
"AWS": "ARN des kopierten IAM-Benutzers"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::Eimername"
}
]
}
Speichern Sie es und Sie sind fertig.
Installieren Sie einen Edelstein namens aws-sdk-sm, um S3 mit Ruby zu verwenden.
Gemfile
Fügen Sie unten Folgendes hinzu
gem "aws-sdk-s3", require: false
Geben Sie dann bundle install in das Terminal ein.
config/environments/development.rb
config.active_storage.service = :local
Die obige Beschreibung wurde wie folgt geändert
config.active_storage.service = :amazon
config/storage.yml
Fügen Sie den folgenden Code hinzu
amazon:
service: S3
access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %>
secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %>
region: ap-northeast-1
bucket:Dein Eimername
Terminal
% vim ~/.zshrc
Drücken Sie i und fügen Sie Folgendes hinzu
export AWS_ACCESS_KEY_ID="Kopieren Sie hier den Zugriffsschlüssel-ID-Wert der CSV-Datei"
export AWS_SECRET_ACCESS_KEY="Kopieren Sie hier den Wert des geheimen Zugriffsschlüssels aus der CSV-Datei"
(Die CSV-Datei ist die Datei, die beim Erstellen des IAM-Benutzers heruntergeladen wurde.)
:Speichern Sie mit wq
Wenn Sie das Image aus der Anwendung in der lokalen Umgebung veröffentlichen und bestätigen, dass es problemlos in S3 gespeichert ist, ändern Sie das Speicherziel des Images auch in der Produktionsumgebung in S3.
Machen Sie dasselbe wie in der lokalen Umgebung.
config/environments/production.rb
config.active_storage.service = :local
Die obige Beschreibung wurde wie folgt geändert
config.active_storage.service = :amazon
Da Heroku für die Produktionsumgebung verwendet wird, legen Sie die Umgebungsvariablen für Heroku fest. Sie können Umgebungsvariablen mit dem Befehl heroku config: set festlegen.
Terminal
% heroku config:set AWS_ACCESS_KEY_ID="Kopieren Sie hier den Wert von "Access Key ID" in die CSV-Datei"
% heroku config:set AWS_SECRET_ACCESS_KEY="Kopieren Sie hier den Wert von "Secret Access Key" in die CSV-Datei"
Bei der Überprüfung, ob die Umgebungsvariable festgelegt wurde
% heroku config
Terminal
% git push heroku master
Tech Camp Lehrplan "Bilder in AWS hochladen"
Wir hoffen, dass dieser Beitrag Anfängern bei der Überprüfung hilft.
Recommended Posts