So verwenden Sie Cloudformation zum Erstellen eines S3-Buckets

Es gibt mehrere Möglichkeiten, wie Sie einen S3-Bucket auf AWS erstellen können. Cloudformation ist eine der Infrastructure as Code (IaC)-Methoden, mit der Sie einen Bucket erstellen sowie Ihren Code haben und mit anderen teilen können. Bevor wir fortfahren, gehe ich davon aus, dass Ihnen der S3-Bucket und die AWS-Dienste Cloudformation bekannt sind. Wenn Sie S3 nicht kennen, empfehle ich Ihnen, zunächst die Schritte zum Erstellen eines S3-Buckets über die AWS-Konsole durchzugehen. Klicken Sie hier, um den Artikel zum Erstellen eines S3-Buckets über die AWS-Konsole durchzugehen.

In diesem Artikel werden wir mehrere in Cloudformation verfügbare Optionen zum Erstellen eines S3-Buckets untersuchen. Um zu erfahren, welche Optionen in Cloudformation zum Erstellen eines S3-Buckets verfügbar sind, besuchen Sie die offizielle AWS-Seite hier.

Vorraussetzungen

  1. AWS-Konto(Erstellen Sie es, wenn Sie noch keines haben).
  2. Grundlegendes Verständnis von Cloudformation Templates.
  3. Grundlegendes Verständnis von S3 Buckets

Was müssen wir tun?

  1. Anmeldung bei AWS.
  2. Erstellen Sie eine Vorlage.
  3. Erstellen Sie einen Cloudformation Stack.
  4. Löschen Sie den Cloudformation Stack.

Anmeldung bei AWS

Klicken Sie hier, um zur AWS-Anmeldeseite zu gelangen. Geben Sie Ihre Benutzeranmeldedaten ein, um sich in Ihr AWS-Konto einzuloggen.

Login-Seite

Sobald Sie sich erfolgreich in Ihrem AWS-Konto angemeldet haben, sehen Sie die AWS-Verwaltungskonsole wie folgt.

AWS Management-Konsole

Erstellen Sie eine Vorlage

Bevor wir mit der Erstellung eines Stacks fortfahren, erstellen Sie eine Datei auf Ihrem lokalen System mit dem folgenden Inhalt.

Sie können die Vorlage auch aus meinem Github-Repository herunterladen, der Link zur Vorlage ist unten angegeben.

https://github.com/shivalkarrahul/DevOps/blob/master/aws/cloudformation/create-s3/create-s3.template

AWSTemplateFormatVersion: '2010-09-09'
Metadata: 
  License: Apache-2.0
Description: 'AWS CloudFormation Template to create an S3_Website_Bucket_With_Retain_On_Delete'
Parameters:
  BucketNameParameter:
    Type: String
    Description: Bucket Name
Resources:
  S3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Ref BucketNameParameter
      AccessControl: PublicRead
      WebsiteConfiguration:
        IndexDocument: index.html
        ErrorDocument: error.html
    DeletionPolicy: Retain
Outputs:
  WebsiteURL:
    Value: !GetAtt [S3Bucket, WebsiteURL]
    Description: URL for website hosted on S3
  S3BucketSecureURL:
    Value: !Join ['', ['https://', !GetAtt [S3Bucket, DomainName]]]
    Description: Name of AWS S3 bucket to hold website content

Erstellen eines Cloudformation-Stacks

Sobald Sie eine Vorlage auf Ihrem lokalen Rechner haben, gehen Sie zum AWS-Haupt-Dashboard, klicken Sie auf Services oben links auf dem Bildschirm und suchen Sie nach „Cloudformation“. Klicken Sie auf das Cloudformation-Ergebnis, das Sie erhalten.

Suche nach Cloudformation

Sie sehen dann das Haupt-Dashboard der Cloudformation. Ich habe bereits einen Stack in meinem Konto unter der ausgewählten Region.

Cloudformation Dashboard

Um einen Stack zu erstellen, klicken Sie auf „Stack erstellen –> Mit neuen Ressourcen (Standard)“.

Stapel mit neuen Ressourcen erstellen

Wählen Sie die Option „Upload a template file“ und wählen Sie die Vorlage von Ihrem lokalen Rechner. Klicken Sie auf die Schaltfläche „Weiter“, um fortzufahren.

Hochladen der Vorlage

Geben Sie einen Namen für den Stack an. Geben Sie auch einen Namen für einen zu erstellenden S3-Bucket an. Stellen Sie sicher, dass der von Ihnen angegebene Name global eindeutig ist und kein anderer Bucket auf der ganzen Welt auf AWS den gleichen Namen hat. Klicken Sie auf die Schaltfläche „Next“, um fortzufahren.

Stack-Details angeben

Tags sind optional, Sie können sie angeben oder nicht, um fortzufahren, klicken Sie auf die Schaltfläche „Next“.

Tags hinzufügen, falls erforderlich

Scrollen Sie am Ende der Seite nach unten und klicken Sie auf die Schaltfläche „Create stack“, um einen S3-Bucket mit Cloudformation-Stack zu erstellen.

Stack-Konfiguration überprüfen

Wenn der Name, den Sie für den Bucket angegeben haben, eindeutig ist und kein anderer Bucket auf der ganzen Welt auf AWS den gleichen Namen hat, wird Ihr Bucket erstellt und nach erfolgreicher Erstellung wird der Status als „CREATE_COMPLETE“ angezeigt.

S3 Bucket-Erstellung abgeschlossen

Um zu überprüfen, ob der Bucket erstellt wurde, klicken Sie oben links im Bildschirm auf Services und suchen Sie nach S3, um zum S3-Dashboard zu gelangen.

Suche S3

Auf dem S3-Dashboard sehen Sie, dass Ihr S3-Bucket erstellt wurde.

Prüfen, ob der Bucket erstellt wurde

Löschen Sie den Cloudformation Stack

Wir wissen, dass das Löschen des Cloudformation-Stacks die von ihm erstellten Ressourcen löscht. Dieses Mal ist es ein wenig anders.

Wenn Sie jetzt zurückgehen und den Code in unserer Vorlage überprüfen, werden Sie feststellen, dass wir „DeletionPolicy : Retain“. Aufgrund dieser Option wird Ihr Bucket nicht gelöscht, auch wenn Sie den Stack löschen.

Wenn Sie den Stack dennoch löschen möchten, klicken Sie auf die Schaltfläche „Delete“.

Stapel löschen

Bestätigen Sie die Löschaktion in dem Popup-Fenster, das Sie erhalten.

Bestätigung der Löschung

Sobald der Stack gelöscht ist, sehen Sie den Status als „STACK_DELETE“.

Stapellöschung abgeschlossen

Wie bereits erwähnt, wird der Stapel aufgrund der Option„DeletionPolicy: Beibehalten“ wird der Stack gelöscht, aber der S3-Bucket bleibt erhalten.

Sie können zurück zum S3-Dashboard gehen und sehen, dass Ihr S3-Bucket noch in Ihrem Konto verfügbar ist.

Schaufel zurückbehalten

Fazit

In diesem Artikel haben wir gesehen, wie einfach es ist, einen S3-Bucket mithilfe eines Cloudformation-Stacks zu erstellen. Wir können denselben Stack verwenden, um mehrere S3-Buckets zu erstellen. Wir können sogar unseren Code auf Versionskontrollsystemen speichern und ihn mit anderen Personen teilen. Wir haben gesehen, wie die Option„DeletionPolicy: Retain“ den Bucket beibehält und ihn nicht löscht, selbst wenn der Stack gelöscht wird.

Das könnte dich auch interessieren …