Amazon Lightsail oder Amazon? AWS Elastic Beanstalk EC2 - Amazon Lightsail oder Amazon? AWS Elastic Beanstalk EC2

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Amazon Lightsail oder Amazon? AWS Elastic Beanstalk EC2

Verstehen Sie die Unterschiede und wählen Sie den aus, der zu Ihnen passt

Zweck

Um herauszufinden, AWS Elastic Beanstalk ob Amazon Lightsail oder Amazon Ihre EC2 Anforderungen an eine Cloud-Plattform oder einen Compute-Webservice erfüllt.

Letzte Aktualisierung

17. Februar 2025

Abgedeckte Dienstleistungen

Einführung

Amazon Web Services (AWS) bietet Services, die Ihre Anforderungen an eine Cloud-Plattform oder einen Compute-Webservice erfüllen können. Drei Dienste, die häufig nebeneinander betrachtet werden, sind:

  • Amazon Lightsail — eine Reihe von Kerndiensten, die Sie beim Erstellen von Websites oder Webanwendungen unterstützen sollen. Ziehen Sie Lightsail in Betracht, wenn Sie eine einfache, einheitliche Plattform mit einigen grundlegenden Diensten suchen, darunter virtuelle Server, HTTP-Lastenausgleich, verwaltete Datenbanken, Bereitstellung öffentlicher Container, Content Delivery Network (CDN), DNS-Management und Domainregistrierung. Lightsail bietet feste und vorhersehbare monatliche Preise.

  • AWS Elastic Beanstalk— ein Service, der die Bereitstellung, Verwaltung und Skalierung von Webanwendungen und -diensten vereinfacht. Es unterstützt mehrere Programmiersprachen wie Python, Java, PHP, Node.js, Ruby, .NET und Go. Mit Elastic Beanstalk laden Sie einfach Ihren Anwendungscode hoch und kümmern sich um die AWS zugrunde liegende Infrastruktur, einschließlich der Bereitstellung von Ressourcen wie EC2 Amazon-Instances, Load Balancers und Datenbanken sowie der auto-scaling und Überwachung. Es bietet eine integrierte Integration mit AWS Diensten wie RDS, Amazon S3 und CloudWatch. Elastic Beanstalk bietet ein ausgewogenes Verhältnis zwischen Kontrolle und Automatisierung und gibt Entwicklern die Möglichkeit, die Infrastruktur individuell anzupassen und gleichzeitig den betrieblichen Aufwand zu verringern. Für die Nutzung von Elastic Beanstalk fallen keine zusätzlichen Gebühren an. Sie zahlen für AWS Ressourcen (z. B. EC2 Amazon-Instances oder Amazon S3-Buckets), die Sie zum Speichern und Ausführen Ihrer Anwendung erstellen.

  • Amazon Elastic Compute Cloud (Amazon EC2) — ein AWS Service, der skalierbare Rechenkapazität auf Abruf bereitstellt, damit Sie Anwendungen schneller entwickeln, bereitstellen und skalieren können. Sie können damit so viele oder so wenige Recheninstanzen starten, wie Sie benötigen, Sicherheit und Netzwerke konfigurieren und Speicher verwalten. Sie können auch Kapazität hinzufügen, indem Sie größere Instances (bis zu Hunderte von Kernen und Tausende von GiB Arbeitsspeicher) oder Lastausgleichscluster kleinerer Instances bereitstellen. Je nach Ihren Anforderungen sind verschiedene Preismodelle verfügbar.

Denken Sie bei der Wahl zwischen Lightsail, Elastic Beanstalk und Amazon an das future Wachstum Ihres Workloads und daran EC2, wie Sie Ihre Umgebung erweitern möchten. AWS Wenn Ihre future Bereitstellung erweiterte Netzwerke oder eine Integration mit AWS-Services Amazon Relational Database Service (Amazon RDS), Amazon DynamoDB oder AWS Lambda erfordert, sollten Sie die Verwendung von Amazon unbedingt in Betracht ziehen. EC2

Hier finden Sie einen Überblick über die wichtigsten Unterschiede zwischen diesen Services, um Ihnen den Einstieg zu erleichtern.

Circular icon with a clock face and arrow indicating time passing or scheduling.

Amazon Lightsail

Cloud icon with tree-like structure inside, representing cloud computing services.

Elastic Beanstalk

Microchip icon representing a computer processor or integrated circuit.

Amazon EC2

Größe der Instanz

Mehrere Instance-Typen, von 512 MiB bis 64 GiB RAM und 2 bis 16 V. CPUs Weitere Informationen finden Sie auf der Registerkarte Compute and Block Storage im Abschnitt mit den Unterschieden weiter unten.

Über 400 Instance-Typen, von 0,5 GiB bis 24 TiB RAM und 1 bis 448 V. CPUs

Über 400 Instance-Typen, von 0,5 GiB bis 24 TiB RAM und 1 bis 448 V. CPUs

Blockspeicher

Vorkonfigurierte Festplatten mit bis zu 640 GB pro Instanz (Speichergröße ist an den Instanztyp gebunden). Fügen Sie zusätzliche Festplatten mit bis zu 16 TB zu variablen Preisen hinzu.

Amazon EBS-Volumes bis zu 64 TB pro Volume. Input/output Operationen pro Sekunde (IOPS) bis zu 64.000 pro Volume (Speichergröße ist unabhängig vom Instance-Typ).

Amazon EBS-Volumes bis zu 64 TB pro Volume. Input/output Operationen pro Sekunde (IOPS) bis zu 64.000 pro Volume (Speichergröße ist unabhängig vom Instance-Typ).

Anwendungs-Blueprints

35 vorkonfigurierte Blueprints, darunter Magento WordPress, Drupal, Node.js und mehr.

Eine Reihe verwalteter Plattformen auf Amazon Linux (Docker, Go, Java, Ruby, Python, .NET Core, Tomcat) und .NET/IIS auf Windows Server.

Gängige Betriebssysteme und mit vorkonfigurierter Software und Diensten in der. AWS Marketplace

Container-Unterstützung

Einfache Bereitstellung von öffentlichen Container-Images zu festen monatlichen Kosten, einschließlich Datenübertragung.

Unterstützt einzelne Docker-Container, mehrere Container mit Docker Compose sowie Amazon Elastic Container Service (Amazon ECS).

Führen Sie Container-Workloads nativ auf Amazon EC2 mit selbstverwaltetem Docker oder Kubernetes aus oder stellen Sie Container in separaten AWS Container-Services wie Amazon ECS, Amazon EKS,,,, Lambda und AWS Fargate anderen AWS App Runner bereit. AWS Elastic Beanstalk

Datenübertragung

Großzügige Datenübertragungszuweisung ist in der festen monatlichen Gebühr für jede Lightsail-Compute-Instanz enthalten.

Zahlen Sie pro GB (ausgehender) Datentransfer mit flexiblen Preisstufen und ohne Kosten für Eingangstransport.

Zahlen Sie pro GB (ausgehender) Datentransfer mit flexiblen Preisstufen und ohne Kosten für eingehenden Datenverkehr.

Lastenausgleich

Grundlegender Lastenausgleich HTTP/HTTPS für Web-Traffic mit geringem Volumen (bis zu 5 GB pro Stunde).

Flexibler Lastenausgleich für jede Art von Netzwerkanwendungsfall, einschließlich HTTP, HTTPS, TCP, UDP, Integritätsprüfungen, Auto Scaling und mehr.

Flexibler Lastenausgleich für jede Art von Netzwerkanwendungsfall, einschließlich HTTP, HTTPS, TCP, UDP, Integritätsprüfungen, Auto Scaling und mehr.

CDN-Unterstützung

Weltweite Bereitstellung von Inhalten aus Lightsail-Quellen gegen eine feste monatliche Gebühr (bis zu 50 GB pro Monat im ersten Jahr enthalten).

Die CloudFront Amazon-Integration ermöglicht eine flexible Bereitstellung von Inhalten von Amazon EC2 AWS oder anderen oder externen Quellen auf Pay-per-GB-Basis (1 TB pro Monat im ersten Jahr enthalten).

Die CloudFront Amazon-Integration ermöglicht eine flexible Bereitstellung von Inhalten von Amazon EC2 AWS oder anderen oder externen Quellen auf Pay-per-GB-Basis (1 TB pro Monat im ersten Jahr enthalten).

Leistung

Wählen Sie zwischen 2 und 8 V CPUs (1 bis 4 Kerne) und 512 MiB bis 32 GiB Arbeitsspeicher.

Unbegrenzte Skalierung von einem einzelnen gemeinsam genutzten bis hin zu Hunderten von CPU-Kernen und 1 bis 1000 GiB Arbeitsspeicher.

Unbegrenzte Skalierung von einem einzelnen gemeinsam genutzten bis hin zu Hunderten von CPU-Kernen und 1 bis 1000 GiB Arbeitsspeicher.

Preise

Feste und vorhersehbare monatliche Preise.

Es fallen keine zusätzlichen Gebühren für an AWS Elastic Beanstalk. Sie zahlen für AWS Ressourcen (z. B. EC2 Amazon-Instances oder Amazon S3-Buckets), die Sie zum Speichern und Ausführen Ihrer Anwendung erstellen.

Flexible pay-per-use Stunden- oder Festpreise.

Einzelheiten zu den Unterschieden

Erkunden Sie die Unterschiede zwischen Lightsail AWS Elastic Beanstalk, und Amazon EC2 in sechs Bereichen. Diese umfassen Benutzerfreundlichkeit, Rechen- und Blockspeicher, Container-Bereitstellungen, Lastenausgleich, Content Delivery Network und verwaltete Datenbankunterstützung.

Ease of use

Benutzerfreundlichkeit

Lightsail bietet eine Reihe von Kerndiensten für die Bereitstellung von Webservern und datenbankgestützten Anwendungen mit Unterstützung für Lastenausgleich, Container, Content Delivery Network (CDN), DNS-Management und Domainregistrierung. Sie können auch aus einer Reihe von Anwendungs-Blueprints wählen, um Standardanwendungen wie eine WordPress Site oder eine LAMP-Stack-Anwendung bereitzustellen. Lightsail eignet sich gut für Unternehmen mit einfachen Website- und Anwendungsanforderungen sowie für Unternehmen, die feste, vorhersehbare monatliche Preise bevorzugen.

Elastic Beanstalk hingegen ist ein flexiblerer Service für die Bereitstellung und Skalierung von Webanwendungen. Es unterstützt mehrere Programmiersprachen und Webserver und übernimmt automatisch die Kapazitätsbereitstellung, den Lastenausgleich, die auto-scaling und die Überwachung des Anwendungszustands. Elastic Beanstalk lässt sich nahtlos in andere AWS Dienste wie RDS und integrieren und CloudWatch ermöglicht so komplexere Architekturen und eine feinkörnige Kontrolle über die zugrunde liegenden Ressourcen.

Mit Amazon EC2 haben Sie mehr Flexibilität bei der Konfiguration von Workloads über eine breitere Palette von Rechenkapazitäten, Funktionen und Integrationen mit anderen. AWS-Services Amazon EC2 bietet flexiblere Kaufoptionen, darunter stündliche On-Demand-Preise und niedrigere Festpreise. Eine typische Bereitstellung von Amazon EC2 kann die Verwendung anderer AWS-Services Dienste wie Datenbanken und Load Balancer erfordern, die jeweils ihre eigenen Preismodelle und Konfigurationsdetails haben.

Compute and block storage

Rechenleistung und Blockspeicher

Lightsail bietet mehrere Optionen für Ihre Instance-Größe, die von 2 VCPUs, 512 MiB Arbeitsspeicher und 20 GB SSD-Speicher bis zu 16 VCPUs, 64 GiB Arbeitsspeicher und 1280 GB SSD-Speicher reichen. Lightsail-Compute-Instances beinhalten außerdem eine großzügige kostenlose Datenübertragungszuweisung und werden mit festen, vorhersehbaren Preisen abgerechnet.

Elastic Beanstalk und Amazon EC2 unterstützen Hunderte von Instance-Typen, die jeden Workload unterstützen, mit 1 bis 100 V und 1000 CPUs GiB RAM. Elastic Beanstalk- und EC2 Amazon-Instances mit unterschiedlichen Leistungsstufen können mehrere Speichervolumes unterschiedlicher Größe zugeordnet werden. Elastic Beanstalk und Amazon unterstützen EC2 auch Spot-Instances und Graviton-basierte Instances, was eine kosteneffiziente Skalierung und Hochleistungsrechnen ermöglicht.

Container deployments

Container-Bereitstellungen

Lightsail-Container bieten eine einfache Möglichkeit, mit der Bereitstellung von öffentlichen Container-Images auf AWS Compute-Instances mit 0,25 V CPUs und 512 MiB RAM bis 4 V CPUs und 8 GiB RAM zu beginnen. Jede Lightsail-Container-Bereitstellung beinhaltet 500 GB Datentransfer gegen eine feste monatliche Gebühr.

Elastic Beanstalk kann einzelne Docker-Container oder mehrere Container mit Docker Compose ausführen oder auf Amazon ECS bereitstellen, einem vollständig verwalteten Container-Orchestrierungsservice, der die Amazon-Instances verwaltet und skaliert, auf denen Container ausgeführt werden. EC2

Container können auf Amazon EC2 selbst verwaltet oder in einem vollständig verwalteten AWS Container-Service wie Amazon ECS, Amazon EKS, App Runner, Elastic Beanstalk und Lambda bereitgestellt werden. Diese Services unterstützen sowohl öffentliche als auch private Images, eine flexiblere Abrechnung auf Stunden- oder Festbasis sowie größere vertikale und horizontale Skalierungsmöglichkeiten.

Load balancing

Lastausgleich

Lightsail bietet einen einfachen HTTP- oder HTTPS-Loadbalancer für Web-Traffic mit geringem Volumen (bis zu 5 GB und 400.000 Verbindungen pro Stunde). Lightsail Load Balancer übernehmen die Zertifikatsverwaltung und sind gegen feste monatliche Kosten erhältlich.

Sie können Load Balancing für Ihre Elastic Beanstalk Beanstalk-Umgebung aktivieren, wodurch ein speziell auf Ihre Umgebung zugeschnittener Elastic Load Balancing Load Balancer erstellt wird. Elastic Beanstalk verwaltet diesen Load Balancer vollständig und kümmert sich um die Sicherheitseinstellungen und um die Terminierung des Load Balancers, wenn Sie Ihre Umgebung terminieren.

Alternativ können Sie einen Load Balancer für mehrere Elastic Beanstalk-Umgebungen freigeben. Mit einem freigegebenen Load Balancer sparen Sie Betriebskosten, da nicht für jede Umgebung ein dedizierter Load Balancer erstellt wird. Elastic Beanstalk unterstützt die Typen Classic Load Balancer, Application Load Balancer und Network Application Load Balancer.

Amazon EC2 Elastic Load Balancing (ELB) bietet eine breitere und skalierbarere Palette von Load Balancer-Optionen mit flexibleren On-Demand- oder Commit-Preisen. Amazon EC2 Load Balancer unterstützen sowohl Anwendungs- (HTTP, HTTPS WebSockets) als auch Netzwerkverkehr (TCP, UDP).

Content delivery network

Netzwerk zur Bereitstellung von Inhalten

Um die Ladezeit von Webinhalten zu verbessern, können Sie mit Lightsail Ihrer Website oder Anwendung eine CDN-Verteilung (Content Delivery Network) hinzufügen. Lightsail CDN-Distributionen sind in drei monatlichen Datenübertragungsstufen erhältlich, darunter 50 GB für das erste Jahr, 200 GB und 500 GB, zu einem festen monatlichen Preis.

Nachdem Sie Ihre Elastic Beanstalk Beanstalk-Anwendung erstellt und bereitgestellt haben, können Sie sich registrieren CloudFront und mit der Verbreitung Ihrer CloudFront Inhalte beginnen.

Amazon EC2 und Elastic Load Balancing arbeiten direkt mit dem Amazon CDN zusammen (das gleiche CloudFront CDN, das von Lightsail verwendet wird). Die CloudFront direkte Verwendung bietet mehr Integrationsmöglichkeiten mit anderen oder AWS-Services externen Quellen. Es bietet auch flexiblere On-Demand-Preise und festgelegte Preise als Lightsail.

Managed database support

Verwaltete Datenbankunterstützung

Lightsail bietet verwaltete Datenbanken in vier Standard- und vier Hochverfügbarkeitskonfigurationen mit 1 bis 2 Prozessorkernen, 1 GiB bis 8 GiB RAM und 40 GB bis 240 GB Speicher. Lightsail-Datenbanken werden mit einem festen, vorhersehbaren monatlichen Preis abgerechnet.

Elastic Beanstalk bietet die Integration mit Amazon Relational Database Service (Amazon RDS). Sie können Elastic Beanstalk verwenden, um eine MySQL-, PostgreSQL-, Oracle- oder SQL Server-Datenbank zu einer bestehenden oder einer neuen Umgebung hinzuzufügen, wenn Sie diese erstellen. Wenn Sie eine Datenbank-Instance hinzufügen, stellt Elastic Beanstalk die Verbindungsinformationen zu Ihrer Anwendung bereit. Dadurch werden die Umgebungseigenschaften für den Datenbank-Hostnamen, den Port, Benutzernamen und das Passwort sowie den Datenbanknamen festgelegt. Sie können auch eine Verbindung zu einer externen Datenbank herstellen, die außerhalb von Elastic Beanstalk verwaltet wird, sodass Sie Datenbanktypen verwenden können, die von integrierten Datenbanken nicht unterstützt werden. Für diese Option ist eine zusätzliche Konfiguration der Sicherheitsgruppe und der Verbindungszeichenfolge erforderlich.

Amazon EC2 arbeitet direkt mit Amazon RDS- und NoSQL-Diensten wie Amazon DynamoDB zusammen. Amazon RDS bietet eine skalierbarere und breitere Palette an Konfigurationen, darunter feste Instance-Typen von 2 bis Dutzenden von V CPUs und 100 GiB RAM, unbegrenzten Speicherplatz und nahtlos skalierbare serverlose Optionen.

Hier ist eine Entscheidungstabelle, AWS Elastic Beanstalk in der Amazon Lightsail und Amazon EC2 anhand wichtiger Entscheidungsfaktoren verglichen werden:

Kriterien

Amazon Lightsail

AWS Elastic Beanstalk

Amazon EC2

Am besten für Einfache Anwendungen, kleine Bereitstellungen Webanwendungen mit automatisierter Bereitstellung Volle Kontrolle über die Infrastruktur
Einfache Bedienung Sehr einfache, vereinfachte Benutzeroberfläche, vorkonfigurierte Instanzen Einfache, verwaltete Bereitstellung mit minimalem Einrichtungsaufwand Komplex, erfordert manuelle Einrichtung und Verwaltung
Skalierbarkeit Eingeschränkte auto-scaling, konzipiert für kleine Workloads Unterstützt auto-scaling, aber nicht so detailliert wie EC2 Vollständig anpassbare auto-scaling
Anpassung Eingeschränkte Konfigurationsmöglichkeiten Moderate Anpassung mit Plattformauswahl Volle Kontrolle über Betriebssystem, Netzwerk und Ressourcen
Preise Festpreis, budgetfreundlich Zahlen Sie für den EC2 Basispreis, aber mit einer gewissen Automatisierung Pay-as-you-go, kann teuer sein, wenn es schlecht verwaltet wird
Leistung Am besten für niedrige bis mittlere Workloads Gut für Webanwendungen mit auto-scaling Am besten für leistungsstarke und rechenintensive Workloads
Verwaltung Vollständig verwaltet, minimaler Wartungsaufwand Verwaltete Bereitstellung, muss aber überwacht werden Vollständig selbst verwaltet, erfordert Fachwissen
Unterstützte Sprachen Eingeschränkt, funktioniert am besten mit gängigen Stacks (LAMP, Node.js usw.) Unterstützt mehrere Laufzeiten (Node.js, Python, Java, .NET usw.) Jedes Betriebssystem und jede Laufzeit werden unterstützt
Integration Eingeschränkte Integrationen mit Diensten AWS Gute AWS Integrationen (RDS, S3,) CloudWatch Vollständige Integration AWS
Sicherheit Grundlegende Sicherheitsfunktionen, einfacher zu verwalten Automatisierte Sicherheitsupdates, die aber noch überwacht werden müssen Volle Kontrolle über die Sicherheitseinstellungen
Beispiele für Anwendungsfälle Persönliche Blogs, kleine Websites MVPs, Prototyping Webanwendungen APIs, SaaS-Plattformen Umfangreiche Anwendungen, Datenbanken, kundenspezifische Netzwerke

Richtlinien für Entscheidungen:

  • Wählen Sie Lightsail, wenn Sie eine einfache, budgetfreundliche Lösung mit minimalem Einrichtungsaufwand suchen.

  • Entscheiden Sie sich für Elastic Beanstalk, wenn Sie eine einfache Anwendungsbereitstellung mit einem gewissen Maß an Kontrolle und Skalierbarkeit benötigen.

  • Wählen Sie EC2, ob Sie die volle Kontrolle über Ihre Infrastruktur, hohe Leistung oder benutzerdefinierte Konfigurationen benötigen.

Verwenden Sie

Nachdem Sie nun erfahren haben, wofür diese Services (und die unterstützenden AWS Tools und Services) optimiert sind, können Sie sich nun eingehender damit befassen, wie Sie sie am besten nutzen können.

Amazon Lightsail
  • Was ist Amazon Lightsail?

    Lesen Sie die ganze Geschichte auf Amazon Lightsail, einschließlich dessen, was es tut und wie Sie davon profitieren können. Dieses Handbuch enthält auch step-by-step Anleitungen, die Ihnen den Einstieg in die Verwendung von Lightsail erleichtern — und das Programm anschließend so konfigurieren, dass es Ihren Bedürfnissen entspricht.

    Den Leitfaden erkunden

  • Lightsail-Container-Service-Images erstellen

    Erfahren Sie, wie Sie mithilfe einer Dockerfile ein Container-Image auf Ihrem lokalen Computer erstellen. Sie können es dann an Ihren Lightsail-Containerdienst übertragen, um es bereitzustellen.

    Verwenden Sie das Tutorial

  • Amazon Lightsail-Ressourcencenter

    Entdecken Sie Lightsail-Tutorials, Videos und Links zur Dokumentation des Kernkonzepts.

    Besuchen Sie das Ressourcenzentrum

Elastic Beanstalk
  • Was ist Elastic Beanstalk?

    Verschaffen Sie sich einen Überblick über. AWS Elastic Beanstalk Dieses Handbuch bietet nicht nur eine Einführung in den Dienst, sondern behandelt auch die ersten Schritte mit ihm. Anschließend werden die wichtigsten Funktionen und deren Verwendung ausführlich beschrieben.

    Den Leitfaden erkunden

  • Erste Schritte mit Elastic Beanstalk

    Damit Sie verstehen, wie das AWS Elastic Beanstalk funktioniert, führt Sie dieses Tutorial durch das Erstellen, Erkunden, Aktualisieren und Löschen einer Elastic Beanstalk Beanstalk-Anwendung. Die Fertigstellung dauert weniger als eine Stunde.

    Nutze das Tutorial

  • Elastic Beanstalk Beanstalk-Befehlszeilenschnittstelle einrichten

    In diesem step-by-step Tutorial richten Sie das Elastic Beanstalk Command Line Interface (EB CLI) ein.

    Verwenden Sie das Tutorial

Amazon EC2
  • Was ist Amazon EC2?

    Verschaffen Sie sich einen Überblick über Amazon EC2. Dieses Handbuch bietet nicht nur eine Einführung in den Service, sondern behandelt auch die ersten Schritte mit der Nutzung. Anschließend werden die wichtigsten Funktionen und deren Verwendung ausführlich beschrieben.

    Den Leitfaden erkunden

  • EC2 Amazon-Instance-Typen

    Wenn Sie eine EC2 Instance starten, bestimmt der von Ihnen angegebene Instance-Typ die Hardware des Host-Computers, der für Ihre Instance verwendet wird. Jeder Instance-Typ bietet unterschiedliche Rechenleistung, Arbeitsspeicher- und Speicher-Kapazität und wird abhängig von diesen Eigenschaften in Instance-Familien eingeordnet. Diese Anleitung führt Sie durch die EC2 Instance-Typen.

    Den Leitfaden erkunden

  • Amazon EC2 Auto Scaling mit EC2 Spot-Instances

    Erfahren Sie, wie Sie mithilfe von Amazon EC2 Auto Scaling mit Startvorlagen für die Anforderung von Amazon EC2 Spot-Instances einen statusfreien, fehlertoleranten Workload erstellen.

    Erste Schritte mit dem Tutorial