מדריך ל- AWS Aurora RDS עם Java

1. הקדמה

Amazon Aurora הוא בסיס נתונים יחסי תואם ל- MySQL ו- PostgreSQL שנבנה עבור הענן המשלב ביצועים וזמינות של מאגרי מידע מסחריים מתקדמים עם פשטות וחסכוניות של מאגרי קוד פתוח.

במדריך זה נסקור כיצד ליצור ולבצע אינטראקציה עם מופע RDS של אמזון עם Java, אנו גם נחבר ונבצע בדיקות SQL ב- Amazon RDS.

נתחיל בהקמת הפרויקט.

2. תלות Maven

בואו ניצור פרויקט Java Maven ונוסיף AWS SDK לפרויקט שלנו:

 com.amazonaws aws-java-sdk 1.11.377 

לצפייה בגרסה האחרונה, בדוק את Maven Central.

3. תנאים מוקדמים

כדי להשתמש ב- AWS SDK, נצטרך כמה דברים להגדרה:

  • חשבון AWS
  • אישורי אבטחה של AWS
  • בחירת אזור AWS

אנו זקוקים לחשבון שירותי אינטרנט של אמזון. אם עדיין אין לך, המשך וצור חשבון

אישורי אבטחה של AWS הם מקשי הגישה המאפשרים לנו לבצע שיחות פרוגרמטיות לפעולות API של AWS. אנו יכולים לקבל את האישורים הללו בשתי דרכים, באמצעות שימוש באישורי חשבון שורש AWS ממקטע מפתחות הגישה בדף אישורי האבטחה או באמצעות אישורי משתמש IAM ממסוף ה- IAM.

עלינו לבחור אזור / ים של AWS איפה אנחנו רוצים לאחסן את ה- RDS של אמזון. זכור כי מחירי RDS משתנים לפי אזור. לפרטים נוספים, היכנס לתיעוד הרשמי.

לצורך הדרכה זו, נשתמש באסיה פסיפיק (סידני) (אזור ap-דרום-מזרח -2).

4. התחבר לשירותי אתר AWS RDS

ראשית, עלינו ליצור חיבור לקוח כדי לגשת לשירות האינטרנט של אמזון RDS.

נשתמש AmazonRDS ממשק למטרה זו:

אישורי AWSCredentials = חדשים BasicAWSCredentials ("", ""); 

ואז להגדיר את בונה RDS עם המתאים אזור ו אישורים:

AmazonRDSClientBuilder.standard (). WithCredentials (credentials) .withRegion (Regions.AP_SOUTHEAST_2) .build (); 

5. מופע אורורה של אמזון

עכשיו בואו ניצור את מופע RDS של אמורונה.

5.1. לִיצוֹר RDS למשל

כדי ליצור את מופע ה- RDS, עלינו להתקין א CreateDBInstanceRequest עם התכונות הבאות:

  • מזהה מופע של DB ייחודי בכל שמות המופעים הקיימים ב- RDS של אמזון
  • מחלקת DB Instance מציינת תצורה עבור מעבד, ECU, זיכרון וכו ', מטבלת המחלקות של Instance
  • מנוע מסד נתונים. PostgreSQL או MySQL, נשתמש ב- PostgreSQL
  • בסיס נתונים / שם משתמש סופר
  • סיסמת משתמש בסיסית למאגר
  • שם DB ליצירת מסד נתונים ראשוני עם השם שצוין
  • עבור סוג אחסון, ציין נפח אמזון EBS סוּג. הרשימה זמינה כאן
  • הקצאת אחסון ב- GiB
CreateDBInstanceRequest בקשה = CreateDBInstanceRequest חדש (); request.setDBInstanceIdentifier ("baeldung"); request.setDBInstanceClass ("db.t2.micro"); request.setEngine ("פוסטגרס"); request.setMultiAZ (שקר); request.setMasterUsername ("שם משתמש"); request.setMasterUserPassword ("סיסמה"); request.setDBName ("mydb"); request.setStorageType ("gp2"); request.setAllocatedStorage (10); 

עכשיו בואו ניצור את המופע הראשון שלנו על ידי קריאה ל- createDBInstance ():

amazonRDS.createDBInstance (בקשה); 

מופע RDS ייווצר תוך מספר דקות.

לא נקבל את כתובת האתר של נקודת הקצה בתגובה מכיוון שקריאה זו היא אסינכרונית.

5.2. רשום את מופע DB

בחלק זה נראה כיצד לרשום את מופע DB שנוצר.

כדי לרשום את מופע ה- RDS, עלינו להשתמש לתאר DBInstances של ה AmazonRDS מִמְשָׁק:

DescribeDBInstancesResult result = amazonRDS.describeDBInstances (); מופעי רשימה = result.getDBInstances (); עבור (מופע DBInstance: instances) {// מידע על כל מופע RDS מזהה מחרוזת = instance.getDBInstanceIdentifier (); מנוע מחרוזת = instance.getEngine (); סטטוס מחרוזת = מופע. GetDBInstanceStatus (); נקודת סיום נקודת קצה = מופע. GetEndpoint (); }

נקודת קצה URL הוא כתובת ה- URL של החיבור למופע ה- DB החדש שלנו. כתובת אתר זו תסופק כמארח בעת התחברות למסד הנתונים.

5.3. הפעל את מבחן JDBC

עכשיו בואו נחבר את מופע ה- RDS שלנו וניצור את הטבלה הראשונה שלנו.

בואו ניצור קובץ db.properties ונוסיף את פרטי מסד הנתונים:

db_hostname = db_username = שם משתמש db_password = סיסמה db_database = mydb 

לאחר יצירת הקובץ, בואו נתחבר למופע RDS וניצור את הטבלה בשם jdbc_test:

מאפייני נכס = מאפיינים חדשים (); קלט InputStream = AwsRdsDemo.class.getClassLoader (). GetResourceAsStream ("db.properties"); prop.load (קלט); מחרוזת db_hostname = prop.getProperty ("db_hostname"); מחרוזת db_username = prop.getProperty ("db_username"); מחרוזת db_password = prop.getProperty ("db_password"); מחרוזת db_database = prop.getProperty ("db_database"); 
חיבור conn = DriverManager.getConnection (jdbc_url, db_username, db_password); הצהרת הצהרה = conn.createStatement (); מחרוזת sql = "צור טבלה אם לא קיים jdbc_test (מזהה מפתח סידורי ראשוני, VARCHAR תוכן (80))"; statement.executeUpdate (sql); 

לאחר מכן נכניס ונאחזר נתונים מהטבלה:

PreparedStatement preparStatement = conn.prepareStatement ("הכנס ל- jdbc_test (content) VALUES (?)"); תוכן מחרוזת = "" + UUID.randomUUID (); preparedStatement.setString (1, תוכן); preparedStatement.executeUpdate (); 
מחרוזת SQL = "בחר ספירה (*) כספירה מ- jdbc_test"; ResultSet resultSet = statement.executeQuery (sql); בעוד (resultSet.next ()) {ספירת מחרוזות = resultSet.getString ("ספירה"); Logger.log ("סה"כ רשומות:" + ספירה); } 

5.4. מחק את המופע

כדי למחוק מופע DB, עלינו ליצור מחק DBInstanceRequest. זה דורש מזהה מופע DB ו- פרמטר skipFinalSnapshot.

ה skipFinalSanpshot זה לציין אם אנחנו רוצים לצלם את התמונה לפני מחיקת המופע:

DeleteDBInstanceRequest בקשה = חדש DeleteDBInstanceRequest (); request.setDBInstanceIdentifier (מזהה); request.setSkipFinalSnapshot (נכון); מופע DBInstance = amazonRDS.deleteDBInstance (בקשה);

6. מסקנה

במאמר זה התמקדנו ביסודות האינטראקציה עם RDS של אמזון אורורה (PostgreSQL) באמצעות אמזון SDK. הדרכה זו התמקדה ב- PostgreSQL ישנן גם אפשרויות אחרות כולל MySQL.

למרות ששיטת האינטראקציה תישאר זהה בכל ה- RDS. אורורה היא בחירה מועדפת עבור לקוחות רבים מכיוון שהיא מהירה פי חמישה ממסדי נתונים MySQL סטנדרטיים ושלושה פעמים מהירה ממסדי נתונים רגילים של PostgreSQL.

למידע נוסף בקרו באמזון אורורה.

וכמו תמיד, ניתן למצוא את הקוד ב- Github.