Tietokantojen käyttäminen VPC:ssä
Opitte parhaat käytännöt Lambda-funktioiden yhdistämiseen relaatiotietokantoihin, kuten RDS:ään, ja muihin yksityisessä VPC-verkossa sijaitseviin datavarastoihin
Tietokantojen käyttäminen VPC:ssä on ilmainen Serverless-kehitys AWS Lambdalla-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Serverless-kehitys AWS Lambdalla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Serverless-kehitys AWS Lambdalla-kurssilla on yhteensä 4 oppituntia.
Lambdan yhdistäminen yksityisiin tietokantoihin
Tervetuloa! Tässä oppitunnissa opit yhdistämään Lambda-funktiosi turvallisesti tietokantoihin, jotka sijaitsevat yksityisessä Amazon Virtual Private Cloudissa (VPC).
Tämä on olennaista palvelimettomissa sovelluksissa, joiden on käsiteltävä arkaluonteisia tai sisäisiä tietovarastoja, kuten Amazon RDS:ää tai muita tietokantoja, jotka eivät ole julkisesti saatavilla.
Lambda ja yksityinen tietokantasi
Olet jo määrittänyt Lambda-funktion toimimaan VPC:ssä (edellisen oppitunnin aikana). Nyt keskitymme siihen, miten Lambda voi saavuttaa tietokannan, joka on myös saman VPC:n sisällä.
Tämä määritys varmistaa turvallisen sisäisen viestinnän ja pitää tietokannan eristettynä julkisesta internetistä.
Security Groups: portinvartijat
Security Groups ovat tässä keskeisessä roolissa. Ajattele niitä VPC:n instanssien ja resurssien virtuaalisina palomuureina.
- Ne hallitsevat sekä saapuvaa että lähtevää liikennettä.
- Sekä Lambda-funktiollasi että tietokannallasi on niihin liitetyt security groupit.
- Nämä ryhmät on määritettävä sallimaan nimenomaisesti keskinäinen viestintä.
Tietokannan saapuvan liikenteen säännöt
Tietokantasi security group tarvitsee saapuvan liikenteen säännön, joka sallii yhteydet Lambda-funktiostasi.
- Tyyppi: Custom TCP
- Porttialue: Tietokannan käyttämä portti (esimerkiksi
3306MySQL:lle tai5432PostgreSQL:lle). - Lähde: Tämän tulee olla ratkaisevasti Lambda-funktiosi Security Group ID.
Näin varmistetaan, että vain Lambda-funktiosi voi aloittaa yhteyksiä tietokantaan.
Lambdan lähtevän liikenteen säännöt
Vastaavasti Lambda-funktion security group tarvitsee lähtevän liikenteen säännön, joka sallii liikenteen lähettämisen tietokantaasi.
- Tyyppi: Custom TCP
- Porttialue: Tietokannan käyttämä portti (esimerkiksi
3306). - Kohde: Tämän tulee olla tietokantasi Security Group ID.
Näin Lambda-funktiosi voi muodostaa onnistuneesti yhteyden tietokantaan.
Aliverkot ja verkkoyhteyden saavutettavuus
Security groupien lisäksi varmista, että Lambda-funktiosi on otettu käyttöön aliverkoissa, joista on asianmukaiset reititykset tietokanta-instanssien aliverkkoihin.
- Yleensä sekä Lambda että tietokanta sijoitetaan saman VPC:n yksityisiin aliverkkoihin.
- AWS huolehtii VPC:n sisäisestä reitityksestä, mutta oikea aliverkkojen liittäminen on yhteyden toimivuuden kannalta olennaista.
Yhteyden muodostaminen Lambda-koodista
Lambda-funktion koodissa käytät tavallisia tietokanta-ajureita ja yhteysmerkkijonoja aivan kuten missä tahansa muussa sovelluksessa.
Tarvitset seuraavat keskeiset tiedot:
- Tietokannan päätepiste: (esimerkiksi
your-db.xxxx.rds.amazonaws.com) - Portti: (esimerkiksi
3306) - Tietokannan nimi
- Käyttäjänimi
- Salasana
Java-esimerkki tietokantayhteydestä
Tässä on käsitteellinen Java-koodiesimerkki, joka havainnollistaa, miten Lambda voisi yrittää muodostaa yhteyden tietokantaan. Oikeassa sovelluksessa tunnistetiedot käsiteltäisiin turvallisesti.
Esimerkki näyttää perusrakenteen; se ei suoritu onnistuneesti ilman käytössä olevaa tietokantaa ja määritettyjä ympäristömuuttujia.
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Main {
public static void main(String[] args) {
String dbUrl = System.getenv("DB_URL");
String dbUser = System.getenv("DB_USER");
String dbPass = System.getenv("DB_PASS");
if (dbUrl == null || dbUser == null || dbPass == null) {
System.out.println("Error: DB environment variables not set.");
return;
}
try {
System.out.println("Attempting to connect to database...");
Connection conn = DriverManager.getConnection(dbUrl, dbUser, dbPass);
System.out.println("Connection successful!");
conn.close();
} catch (SQLException se) {
System.err.println("Database connection error: " + se.getMessage());
} catch (Exception e) {
System.err.println("An unexpected error occurred: " + e.getMessage());
}
}
}Tunnistetietojen turvallinen hallinta
Älä koskaan kirjoita tietokannan tunnistetietoja suoraan Lambda-koodiisi! Tämä on merkittävä tietoturvariski.
Arkaluonteisten tietojen hallinnan parhaat käytännöt:
- AWS Secrets Manager: Suositeltu tapa tallentaa, hakea ja kierrättää tietokannan tunnistetietoja turvallisesti.
- Ympäristömuuttujat: Sopivat ei-arkaluonteisille määrityksille, mutta eivät salasanoille tai API-avaimille.
Aseta arkaluonteisten tietojen turvallisuus aina etusijalle.
Testaa ymmärryksesi
Kuvitellaan, että Lambda-funktiosi (johon liittyy Security Group SG-A) tarvitsee muodostaa yhteyden RDS-tietokantaan (johon liittyy Security Group SG-B) portissa 3306.
Mikä saapuvan liikenteen sääntö SG-B:hen (tietokannan security groupiin) on määritettävä tämän yhteyden sallimiseksi?
Kertaus: tietokannan käyttö VPC:ssä
Hienoa työtä! Olet oppinut Lambda-funktioiden yhdistämisen perusteet VPC:n yksityisiin tietokantoihin.
- Sekä Lambdan että tietokannan on oltava samassa VPC:ssä.
- Security groupit ovat ratkaisevan tärkeitä niiden välisen liikenteen hallinnassa.
- Määritä saapuvan liikenteen säännöt tietokannan SG:hen ja lähtevän liikenteen säännöt Lambdan SG:hen.
- Hallitse tietokannan tunnistetietoja aina turvallisesti, mieluiten AWS Secrets Managerin avulla.
Nämä tiedot ovat keskeisiä turvallisten ja vankkojen palvelimettomien sovellusten rakentamisessa!
Opi Serverless-kehitys AWS Lambdalla tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 12
- Oppitunnit
- 48
Usein kysytyt kysymykset
Onko oppitunti ”Tietokantojen käyttäminen VPC:ssä” ilmainen?
Kyllä – oppitunnin ”Tietokantojen käyttäminen VPC:ssä” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Serverless-kehitys AWS Lambdalla-kurssin, päivitä CoddyKit PROhon. Serverless-kehitys AWS Lambdalla-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Tietokantojen käyttäminen VPC:ssä”?
Opitte parhaat käytännöt Lambda-funktioiden yhdistämiseen relaatiotietokantoihin, kuten RDS:ään, ja muihin yksityisessä VPC-verkossa sijaitseviin datavarastoihin Harjoittelet Serverless-kehitys AWS Lambdalla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Serverless-kehitys AWS Lambdalla-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Serverless-kehitys AWS Lambdalla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.
Kuinka kauan ”Tietokantojen käyttäminen VPC:ssä”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Serverless-kehitys AWS Lambdalla-oppitunnilla?
Kyllä. Jokainen Serverless-kehitys AWS Lambdalla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Lambda VPC:ssä yksityisiä resursseja varten
- Tietokantojen käyttäminen VPC:ssä
- Verkon tietoturvan parhaat käytännöt
- NAT-yhdyskäytävät ja internet-yhteys VPC:stä