In dit artikel ga ik bespreken hoe u een MySQL-instantie op AWS RDS instelt met behulp van Cloud Formation-sjablonen. In mijn vorige artikel, Een Amazon RDS-omgeving configureren voor MySQL, heb ik een gedetailleerd overzicht gegeven van het opzetten van een MySQL-instantie op Amazon. U kunt de AWS-console gebruiken om alle informatie te verstrekken die nodig is voor het instellen van de instantie en deze vervolgens te gebruiken. In dit artikel bespreken we echter een geautomatiseerde manier om dezelfde functionaliteiten te bereiken met behulp van Cloud Formation-sjablonen.
Wat is een CloudFormation-sjabloon?
Om te beginnen met het schrijven van de sjablonen, moeten we eerst begrijpen wat wolkenvorming inhoudt. AWS biedt Cloud Formation aan als een cloudservice waarmee AWS-klanten de gewenste staat van elke infrastructuur als een code kunnen schrijven en deze vervolgens kunnen gebruiken om resources naar AWS te implementeren. Hiermee kunnen we een resource of een groep resources maken door eenvoudige configuratiesjablonen te volgen. Als u bijvoorbeeld een webtoepassing op een EC2-instantie wilt implementeren die ook een RDS-database gebruikt, kunt u eenvoudig beide bronnen in één stapel combineren en de code schrijven voor het instellen van de instanties. Zodra u het uitvoert, wordt zowel de EC2- als de RDS-instantie gemaakt en wordt ook uw webtoepassing geïmplementeerd.
Figuur 1 – CloudFormation-sjabloon op AWS-console
De componenten van een wolkenformatiesjabloon zijn als volgt:
- Een JSON of YAML bestand waarin de bronnen worden gedefinieerd als een sjabloon
- Een stapel kan een combinatie zijn van meerdere bronnen die moeten worden ingesteld als onderdeel van de toepassing. Voor bijv. EC2 en RDS
- Een wijzigingenset kan worden gebruikt om een lijst met bewerkingen te bekijken die door de stapel moeten worden uitgevoerd
- Een stapelset kan ook worden beschouwd als een beheerde groep stapels die kan worden gereproduceerd of gerepliceerd
Van het bovenstaande zullen we ons voornamelijk concentreren op de JSON/YAML-sjabloon en de stapel in dit artikel. De sjablonen ondersteunen een breed scala aan bronnen op AWS. Volg deze link voor een volledige lijst.
Het JSON- of YAML-sjabloonbestand schrijven
Een van de belangrijkste uitdagingen waarmee we worden geconfronteerd wanneer we voor het eerst een sjabloon schrijven, is welke inhoud erin moet worden opgenomen. Om dat te vergemakkelijken, biedt AWS veel sjabloonvoorbeelden die gemakkelijk te vinden zijn in de officiële documentatie. Zodra u de sjabloon hebt gevonden die nodig is om een benodigde bron te maken, kunt u deze gebruiken om uw eigen sjabloon te maken. De sjabloon kan worden gemaakt met JSON of YAML en ook van de ene naar de andere worden geconverteerd. Persoonlijk geef ik er de voorkeur aan om de sjablonen te schrijven met YAML, omdat het me helpt weg te blijven van de accolades en komma's en het document schoner houdt. U bent echter vrij om elke optie tussen JSON en YAML te kiezen.
Laten we voor deze oefening proberen een MySQL-instantie op RDS te draaien en we zullen de code in YAML schrijven. Om een MySQL-database op te zetten met behulp van cloud-formatie, hebben we de volgende items nodig.
- Naam bron – De naam van de bron die u gaat instellen.
- Brontype – Het type bron.
- Broneigenschappen – De databasenaam, gebruikersnaam en wachtwoord om verbinding mee te maken.
- De database-engine – MySQL, SQL Server, PostgreSQL, enz.
- Opslagtype – Het te gebruiken opslagtype.
- Openbare toegankelijkheid – Of de database nu openbare toegang moet hebben of niet.
- Toegewezen geheugen – Het geheugen dat moet worden toegewezen aan de database-instantie.
- AWS-regio – De regio waarin de instantie moet worden gemaakt.
Nu we wat punten bij ons hebben, laten we doorgaan en beginnen met het schrijven van het sjabloonbestand.
https://gist.github.com/aveek22/a188b02abde65479bbba2deba5ec90d6
Figuur 2 – Het sjabloonbestand voor het maken van een MySQL-instantie op RDS
Zoals u in de bovenstaande afbeelding kunt zien, is de structuur van het bestand in twee delen verdeeld. In het eerste deel hebben we een paar parameters gedefinieerd die zullen worden gebruikt door de resourcedefinities in het tweede deel bij het maken van de bronnen op AWS. U kunt hetzelfde script op uw computer gebruiken om een instantie op uw AWS-account te maken.
De stapel instellen op de console
Nu we onze sjabloon voor MySQL hebben gemaakt, is het tijd om deze in te stellen om te zien of alles goed werkt. Ga naar de AWS-console en zoek naar Cloud Formation in de zoekbalk. Klik op Stapel maken en upload het sjabloonbestand van uw lokale. Klik op Volgende eenmaal gedaan.
Figuur 3 – De stapel maken op basis van de sjabloon
Op de volgende pagina wordt u gevraagd om de parameters op te geven die zijn gedefinieerd in het wolkenformatiesjabloon. Ga je gang, geef de nodige details op en klik op Volgende .
Figuur 4 – Geleverde stapelparameters
Bekijk de stackwijzigingen en parameters en klik op Create Stack op de laatste pagina. Het maken van de stapel begint. Het kan even duren voordat alle resources zijn gemaakt voordat ze beschikbaar zijn voor gebruik. In de tussentijd kun je op de knop Opnieuw laden klikken om te controleren of alle evenementen met succes zijn gemaakt.
Figuur 5 – Stapel maken wordt uitgevoerd
Zoals je aan de tijdstempels kunt zien, kostte het me ongeveer 6 minuten waarna de bronnen beschikbaar waren en ook zichtbaar waren op de console. Navigeer naar de Bronnen en klik op de Fysieke ID van de bron. Dit brengt je naar de RDS-console.
Figuur 6 – Stapel succesvol aangemaakt
De MySQL-database verbinden
Zodra u zich in de RDS-console bevindt, kunt u de hostnaam voor de database-instantie ophalen en deze gebruiken om verbinding te maken met de database. Pak het eindpunt van de console en gebruik deze om verbinding te maken.
Figuur 7 – MySQL-instantiedetails op RDS
Laten we nu naar MySQL Workbench gaan en proberen verbinding te maken met de hostnaam met de inloggegevens die we eerder hebben verstrekt. Gebruik de hostnaam, gebruikersnaam en wachtwoord om verbinding te maken met de instantie.
Figuur 8 – Verbinding maken met de MySQL-instantie met behulp van MySQL Workbench
Zoals u in de bovenstaande afbeelding kunt zien, hebben we met succes verbinding gemaakt met de database-instantie op RDS. Laten we nu wat zoekopdrachten uitvoeren en kijken of het werkt.
Figuur 9 – Scripts uitvoeren in de MySQL Workbench
Zoals u in de bovenstaande afbeelding kunt zien, hebben we verbinding kunnen maken met de database-instantie en query's kunnen uitvoeren. Hiermee kunt u uw eigen cloudformatiesjabloon schrijven en andere bronnen zoals de SQL Server- of PostgreSQL-database opstarten.
De bronnen verwijderen
Als u dit als een oefening doet, raad ik u aan de bronnen die we hebben gemaakt te verwijderen, omdat dit kosten met zich meebrengt. U kunt naar de RDS-console navigeren en vervolgens de instantie selecteren en op Verwijderen klikken om de bronnen permanent te verwijderen.
Figuur 10 – De aangemaakte bronnen verwijderen
Nadat de bronnen met succes zijn verwijderd, kunt u nogmaals in de console controleren of er instanties actief zijn om te voorkomen dat er onnodige factureringskosten worden toegevoegd.
Conclusie
In dit artikel hebben we in detail besproken hoe u een MySQL-database-instantie in een AWS RDS-omgeving instelt en automatiseert met behulp van de Cloud Formation-sjabloon. Op deze manier wordt het opzetten van resources in de cloud ook wel infrastructure-as-code service genoemd, waarbij u de gehele infrastructuur als code kunt opzetten en vervolgens in verschillende omgevingen kunt gebruiken. Deze sjablonen kunnen niet alleen worden gebruikt om database-instanties te implementeren, maar ook voor andere infrastructuren binnen de AWS, zoals EC2, Lambda, RedShift, enz. Voor meer informatie over de sjablonen voor cloudformatie kunt u de voorbeeldsjablonen bekijken die beschikbaar zijn op de officiële website.