Serverless-kehitys AWS Lambdalla · Oppitunti

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

Oppitunti 2/411 vaihetta

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 3306 MySQL:lle tai 5432 PostgreSQL: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!

Aloita maksutta

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

  1. Lambda VPC:ssä yksityisiä resursseja varten
  2. Tietokantojen käyttäminen VPC:ssä
  3. Verkon tietoturvan parhaat käytännöt
  4. NAT-yhdyskäytävät ja internet-yhteys VPC:stä
← Takaisin: Serverless-kehitys AWS Lambdalla