Allgemeines

F: Was ist Amazon CodeGuru?

Amazon CodeGuru verfügt über zwei Komponenten: Amazon CodeGuru Security und Amazon CodeGuru Profiler. CodeGuru Security ist ein auf Machine Learning (ML) und Programmanalysen basierendes Tool, das Sicherheitslücken in Ihrem Anwendungscode findet. CodeGuru Security scannt auch nach fest codierten Anmeldeinformationen. CodeGuru Profiler optimiert die Leistung für Anwendungen, die in der Produktion laufen, und identifiziert die teuersten Codezeilen, wodurch die Betriebskosten erheblich gesenkt werden.

F: Was sind die ersten Schritte mit CodeGuru?

CodeGuru ist jetzt allgemein verfügbar. Sie können sofort in der Amazon-CodeGuru-Konsole beginnen.

F: In welchen AWS-Regionen ist CodeGuru verfügbar?

Eine Liste der unterstützten Regionen finden Sie in der Tabelle der AWS-Regionen. Sie enthält Informationen zur gesamten globalen AWS-Infrastruktur. Weitere Informationen erhalten Sie unter Regionen und Endpunkte in der allgemeinen AWS-Referenz.

Amazon-CodeGuru-Sicherheit

F: Was ist Amazon CodeGuru Security?

CodeGuru Security ist ein auf ML- und Programmanalysen basierendes Codescan-Tool, das Sicherheitslücken in Ihrem Anwendungsode findet.

F: Welche Programmiersprachen werden unterstützt?

CodeGuru Security unterstützt derzeit den Scanvorgang von Java, Python, JavaScript, TypeScript, C#, CloudFormation, Terraform, Go und Ruby.

F: Welche Art von Problemen erkennt CodeGuru Security?

CodeGuru Security erkennt die zehn häufigsten Probleme des Open Worldwide Application Security Project (OWASP), die 25 häufigsten Probleme der Common Weakness Enumeration (CWE), Protokollinjektionen, Geheimnisse und die sichere Verwendung von AWS-APIs und -SDKs. Weitere Informationen zu den von CodeGuru Security gefundenen Schwachstellen finden Sie in der Bibliothek von Amazon CodeGuru Detector.

F: Was sind die ersten Schritte mit CodeGuru Security?

Besuchen Sie die CodeGuru-Konsole, um CodeGuru Security in Ihren Entwickler-Lebenszyklus zu integrieren. Sie können Tools für kontinuierliche Integration und Bereitstellung (CI/CD), Repository-Scanning und integrierte Entwicklungsumgebungen (IDEs) integrieren.

F: Greift CodeGuru Security auf meinen Code zu?

CodeGuru Security benötigt Lesezugriff auf Ihren Code, um Empfehlungen zu generieren. Ihr Vertrauen, Ihre Privatsphäre und die Sicherheit Ihrer Inhalte haben für uns höchste Priorität. Wir implementieren angemessene Kontrollen, einschließlich Verschlüsselung bei der Übertragung, um den unbefugten Zugriff auf Ihre Inhalte oder deren Offenlegung zu verhindern und sicherzustellen, dass unsere Nutzung unseren Verpflichtungen Ihnen gegenüber entspricht. Wir unterstützen auch kundenverwaltete KMS-Schlüssel (CMCMK) für die Verschlüsselung. Weitere Informationen finden Sie unter Häufig gestellte Fragen zum Datenschutz.

F: Behält CodeGuru Security eine Kopie meines Codes?

Nein, CodeGuru Security speichert Ihren Quellcode nicht.

F: Wie wird CodeGuru Security geschult, um intelligente Empfehlungen zu geben?

CodeGuru Security wird mithilfe von Rule Mining und überwachten ML-Modellen geschult, die eine Kombination aus logistischer Regression und neuronalen Netzwerken verwenden. Beispielsweise wird während der Schulung für vertrauliche Datenlecks eine vollständige Code-Analyse für alle Code-Pfade durchgeführt, die die Ressource oder die sensiblen Daten verwenden, ein Funktionssatz erstellt, das diese darstellt, und diese dann als Eingaben für logistische Regressionsmodelle und konvolutional-neutrale Netzwerke (CNNs) verwendet.

F: Welche Integrationen unterstützt CodeGuru Security?

CodeGuru Security ist in Amazon-Inspector-Codescanning für Lambda integriert. Weitere Integrationen mit Repositorys und CI/CD-Tools sind in Kürze verfügbar.

Amazon CodeGuru Profiler

F: Was ist Amazon CodeGuru Profiler?

Mit Amazon CodeGuru Profiler können Entwickler und IT-Betreiber das Laufzeitverhalten ihrer Anwendungen auf einfache Weise verstehen, die Leistung verbessern und die Infrastrukturkosten senken. Amazon CodeGuru Profiler analysiert das Laufzeitprofil der Anwendung und bietet intelligente Empfehlungen und Visualisierungen, die Entwicklern dabei helfen, die Leistung der wichtigsten Teile ihres Codes zu verbessern.

F: Was ist eine Profilgruppe?

Eine Profilgruppe ist eine von Ihnen erstellte logische Gruppierung. Es stellt die Grenze einer Anwendung dar. In einer Microservices-Architektur aggregiert eine Profiling-Gruppe beispielsweise die Profile der Microservices, die Sie ihr zugewiesen haben, und erstellt für alle ein Profil.

F: Ich habe bereits umfangreiche Protokollierungs-Funktionen in meinen Code integriert. Muss ich trotzdem noch profilieren?

Die Protokollierung der Ausführungszeit funktioniert nur für eine begrenzte Anzahl von Szenarien, da die Protokollierung nur die Latenzzeit (nicht die CPU-Auslastung) überwachen kann und die Implementierung zeitaufwändig ist, weil die Entwickler jede Funktion in einer Anwendung protokollieren müssen (ohne die Anwendungsleistung zu beeinträchtigen), sodass sie nicht über die erforderlichen Tools verfügen, um Anwendungen in der Produktion effektiv zu überwachen und Fehler zu beheben. Hier kommt die Profilierung ins Spiel: CodeGuru Profiler wurde entwickelt, um Daten zu allen Ereignissen, die im Verhalten der Anwendung aufgetreten sind, unabhängig von den Szenarien zu sammeln. CodeGuru Profiler verwendet eine Wissensdatenbank zu häufig auftretenden Leistungsschwächen, um automatisch Codemuster in Ihrer Live-Anwendung zu erkennen, die sich auf die Leistung auswirken. Entwickler können dann die angegebenen Empfehlungen befolgen, um die Probleme zu beheben.

F: Inwiefern unterscheidet sich CodeGuru Profiler von herkömmlichen APMs und eigenständigen Profilern?

Herkömmliche APMs liefern nützliche Daten zur Überwachung, Nachverfolgung und Anwendungsleistung. CodeGuru Profiler ergänzt diese APM-Funktionen durch Visualisierungen der Laufzeitdaten der Anwendung sowie durch umsetzbare Empfehlungen für die festgestellten Leistungsprobleme. Es nutzt auch Machine Learning, um Anomalien in Ihrem Anwendungsprofil zu erkennen und darauf aufmerksam zu machen, wobei auf die anomalen Codezeilen hingewiesen wird. Mit CodeGuru Profiler können Sie auf einfache Weise die Teile des Codes anzeigen, die die größte Chance zur Leistungsoptimierung und das höchste Einsparpotenzial bieten, und erhalten Anleitungen zu deren Behebung, ohne dass Sie über umfassende Kenntnisse im Bereich Performance Engineering verfügen müssen. Amazon CodeGuru Profiler profiliert sowohl EC2-Instances als auch Container und Serverless-Rechnerplattformen einschließlich AWS Lambda sowie On-Premises. Darüber hinaus können einige eigenständige Profiler nur in Testumgebungen ausgeführt werden, während CodeGuru Profiler für die kontinuierliche Ausführung in der Produktion unter Last des Produktionsverkehrs und ohne Auswirkungen auf die Anwendung konzipiert wurde. Dies ist hilfreich bei der Behebung von Betriebsproblemen in der Produktion, einschließlich der Ausführung auf Bare-Metal-Hosts.

F: Welche Arten von Anwendungen kann ich profilieren?

CodeGuru Profiler funktioniert mit auf Amazon EC2 gehosteten Anwendungen, mit auf Amazon ECS und Amazon EKS ausgeführten containerisierten Anwendungen sowie mit auf AWS Fargate und AWS Lambda ausgeführten Serverless-Anwendungen. Darüber hinaus können Sie CodeGuru Profiler On-Premises ausführen.

F: Wie wirkt sich CodeGuru Profiler auf die Leistung von auf AWS Lambda gehosteten Anwendungen aus?

Der CodeGuru-Profiler-Agent verwendet die Ressourcen (CPU, Speicher), die den AWS-Lambda-Funktionen zugeordnet sind. Er ist so abgestimmt, dass er die Leistung Ihrer Anwendung nur minimal beeinträchtigt, während er als prozessinterner Thread läuft. Wenn Ihre Anwendung die meisten Ressourcen für die AWS Lambda-Funktion verbraucht, sollten Sie eine Aufstockung der Ressourcen evaluieren, damit der Agent ordnungsgemäß funktionieren kann.

F: Welche Programmiersprachen werden unterstützt?

CodeGuru Profiler unterstützt derzeit Java-, Python- (Vorschau) und JVM-Sprachen wie Scala und Kotlin.

F: Wie funktioniert CodeGuru Profiler?

CodeGuru Profiler besteht aus drei Teilen: einem Agenten, dem Profiler-Service und intelligenten Empfehlungen. Der Agent wird mit Ihrer Anwendung auf der Befehlszeile gestartet und läuft als prozessinterner Thread als Teil Ihrer Anwendung. Es nimmt Daten von jeder Ihrer Service-Instances entgegen, auf denen der Agent ausgeführt wird, und sendet sie alle fünf Minuten an den Profiler-Service, der sie dann aggregiert. Anschließend veröffentlicht CodeGuru Profiler die Profildaten in interaktiven Flammendiagrammen, mit denen Sie die Leistung Ihrer Anwendung visualisieren können. CodeGuru Profiler scannt die profilierten Daten außerdem kontinuierlich und vergleicht sie mit den bewährten Methoden von Amazon und Performance Engineering. Er warnt Sie proaktiv mit intelligenten Empfehlungen, wenn Leistungsprobleme entdeckt werden. Darüber hinaus nutzt er Machine Learning zur kontinuierlichen Analyse von Anwendungslaufzeitdaten, warnt bei Entdeckung von Anomalien im Anwendungsprofil und weist auf die anomalen Codezeilen hin.

F: Welche Ressourcen profiliert CodeGuru Profiler und welche Sprachen werden unterstützt?

CodeGuru Profiler profiliert CPU (aktive CPU und Wanduhrzeit) und Arbeitsspeicher (Heap-Zusammenfassung) für Java und andere JVM-Sprachen sowie CPU (Wanduhrzeit) für Python-Anwendungen.

F: Kann ich sowohl CPU- als auch Arbeitsspeicherinformationen von derselben Anwendung abrufen?

Ja, sobald Sie die Speicherprofilerstellung aktivieren und mit der Profilerstellung beginnen, sammelt CodeGuru Profiler sowohl CPU- als auch Speicherinformationen für Ihre Anwendung. Sie benötigen nur eine Profilierungsgruppe, um sowohl CPU- als auch Arbeitsspeicherdaten für eine bestimmte Anwendung abzurufen.

F: Welche Informationen zur Arbeitsspeicherprofilerstellung bietet CodeGuru Profiler?

CodeGuru Profiler bietet Heap-Zusammenfassungsinformationen. Die Heap-Zusammenfassung bietet eine konsolidierte Ansicht der Arbeitsspeicherauslastung pro Objekttyp (z. B. String, int, char[]) und der benutzerdefinierten Typen während eines bestimmten Zeitrahmens (normalerweise 5 Minuten). CodeGuru Profiler verfolgt sowohl die summierten Größen von Objekten als auch deren Anzahl. Diese Metriken werden in einem Zeitleistendiagramm dargestellt, sodass Sie Trends und Spitzen der Arbeitsspeicherauslastung pro Objekttyp leicht erkennen können.

F: Was kann ich mit Heap-Zusammenfassungsinformationen tun?

Die Heap-Zusammenfassung ist in zwei Szenarien nützlich. Erstens können Sie potentielle Speicherlecks erkennen. Eine ständig wachsende Speicherauslastungskurve für einen oder mehrere Objekttypen kann auf ein Leck hinweisen, das möglicherweise zu Fehlern aufgrund von Speichermangel und Anwendungsabstürzen führt. Das zweite Szenario ist, wenn Sie den Speicherbedarf Ihrer Anwendung optimieren möchten. In diesem Fall hilft Ihnen die Aufschlüsselung der Speicherauslastung nach Objekttyp, zu wissen, auf was Sie sich konzentrieren müssen. Wenn Sie beispielsweise wissen, dass einem bestimmten Objekttyp eine unerwartet hohe Speichermenge zugeordnet wurde, können Sie Ihre Analyse- und Optimierungsbemühungen auf die Teile Ihrer Anwendung konzentrieren, die für die Zuweisung und Referenzierung von Objekten dieses Typs verantwortlich sind.

Erfahren Sie mehr über unsere Kunden.

Besuchen Sie die Amazon CodeGuru-Kundenseite.

Weitere Informationen 
Für ein kostenloses Konto registrieren

Sie erhalten sofort Zugriff auf das kostenlose AWS-Kontingent. 

Registrieren 
Beginnen Sie mit dem Erstellen in der Konsole

Beginnen Sie mit dem Erstellen mit Amazon CodeGuru in der AWS-Managementkonsole.

Anmelden