Storage Transfer Service תומך בהעברות ממערכות אחסון אובייקטים בענן או באחסון מקומי שתואמות ל-Amazon S3 API.
Storage Transfer Service ניגש לנתונים שלכם באחסון שתואם ל-S3 באמצעות סוכני העברה שנפרסים במכונות וירטואליות שקרובות למקור הנתונים. הסוכנים האלה פועלים במאגר Docker והם שייכים למאגר סוכנים, שהוא אוסף של סוכנים שמשתמשים באותה הגדרה ומעבירים את הנתונים שלכם במקביל.
התכונה הזו מאפשרת לכם להעביר נתונים מאחסון אובייקטים מקומי או בענן אל Cloud Storage, לארכב נתונים כדי לפנות נפח אחסון מקומי, לשכפל נתונים ל-Google Cloud לצורך המשכיות עסקית או להעביר נתונים ל-Google Cloud לצורך ניתוח ועיבוד. ללקוחות שעוברים מ-AWS S3 ל-Cloud Storage, התכונה הזו מאפשרת לשלוט בנתיבי הרשת אל Google Cloud, וכך להפחית באופן משמעותי את העלויות של העברת נתונים יוצאים.
לפני שמתחילים
לפני שמגדירים את ההעברות, צריך לבצע את הפעולות הבאות:
- מתקינים את ה-CLI של gcloud.
- עומדים בדרישות להעברות של מערכת קבצים, כולל התקנת Docker במחשב של סוכן ההעברה.
קבלת פרטי כניסה למקור
כדי להעביר נתונים מאחסון שתואם ל-S3, צריך מזהה מפתח גישה ומפתח גישה סודי.
השלבים להשגת הנתונים האלה משתנים בהתאם לספק שירותי האחסון.
לחשבון שממנו נוצרים המזהה והמפתח צריכה להיות אחת מההרשאות הבאות:
- הרשאת קריאה בלבד באובייקטי המקור, אם לא רוצים למחוק אובייקטים במקור.
- גישה מלאה לאובייקטים של המקור, אם בוחרים למחוק אובייקטים במקור כחלק מההעברה.
אחרי שיוצרים את החשבון, מוסיפים הרשאות ומורידים את מזהה מפתח הגישה ואת מפתח הגישה הסודי, מאחסנים את המזהה ואת המפתח במקום בטוח.
הגדרת הרשאות ב-Google Cloud
לפני שיוצרים העברה, צריך להגדיר הרשאות לישויות הבאות:
| חשבון המשתמש שמשמש ליצירת ההעברה. זהו החשבון שמחוברים אליו במסוף Google Cloud או החשבון שמצוין כשמתבצע אימות ל-CLI של gcloud. חשבון המשתמש יכול להיות חשבון משתמש רגיל או חשבון שירות שמנוהל על ידי משתמש. | |
חשבון השירות בניהול Google, שנקרא גם סוכן השירות, שמשמש את Storage Transfer Service. בדרך כלל, החשבון הזה מזוהה באמצעות כתובת האימייל שלו, בפורמט project-PROJECT_NUMBER@storage-transfer-service.iam.gserviceaccount.com.
|
|
![]() |
חשבון סוכן ההעברה שמספק הרשאות Google Cloud לסוכני העברה. חשבונות של סוכני העברה משתמשים בפרטי הכניסה של המשתמש שמתקין אותם, או בפרטי הכניסה של חשבון שירות שמנוהל על ידי משתמש, כדי לבצע אימות. |
הוראות מפורטות זמינות במאמר בנושא הרשאות להעברה מבוססת-סוכן.
אפשרויות העברה
התכונות הבאות של Storage Transfer Service זמינות להעברות מאחסון שתואם ל-S3 ל-Cloud Storage:
- העברת קבצים ספציפיים באמצעות מניפסט
- אפשר להעביר רשימה של קבצים ל-Storage Transfer Service כדי לבצע פעולות עליהם. פרטים נוספים זמינים במאמר בנושא העברה של קבצים או אובייקטים ספציפיים באמצעות מניפסט.
- ציון סוג האחסון (storage class)
- אתם יכולים לציין את
סוג האחסון (storage class) ב-Cloud Storage שבו ישתמשו עבור הנתונים שלכם בקטגוריית היעד. אפשר לעיין באפשרויות של
StorageClassכדי לראות פרטים על REST, או להשתמש בדגל--custom-storage-classשל Google Cloud CLI.שימו לב: המערכת מתעלמת מהגדרות של סוגי אחסון אם התכונה סיווג אוטומטי מופעלת בקטגוריית היעד. אם התכונה סיווג אוטומטי מופעלת, האובייקטים שמועברים לקטגוריה מוגדרים בהתחלה כ-Standard Storage.
- שמירה על מטא-נתונים
-
כשמעבירים קבצים מאחסון שתואם ל-S3, אפשר להשתמש ב-Storage Transfer Service כדי לשמור מאפיינים מסוימים כמטא-נתונים מותאמים אישית.
בקטע Amazon S3 או אחסון שתואם ל-S3 ל-Cloud Storage במאמר שמירה על מטא-נתונים מוסבר אילו מטא-נתונים אפשר לשמור ואיך להגדיר את ההעברה.
- רישום ביומן ומעקב
- אפשר לראות העברות מאחסון שתואם ל-S3 ב-Cloud Logging וב-Cloud Monitoring. פרטים נוספים זמינים במאמרים Cloud Logging for Storage Transfer Service ומעקב אחרי העברות. אפשר גם להגדיר התראות ב-Pub/Sub.
יצירת מאגר סוכנים
כדי ליצור מאגר סוכנים:
מסוף Google Cloud
נכנסים לדף Agent pools במסוף Google Cloud .
מוצג הדף מאגרי סוכנים עם רשימה של מאגרי הסוכנים הקיימים.
לוחצים על יצירת מאגר נוסף.
נותנים שם למאגר, ואפשר גם להוסיף תיאור.
אפשר להגדיר מגבלת רוחב פס שתחול על כל המאגר. רוחב הפס שצוין במגה-בייט לשנייה יחולק בין כל הסוכנים במאגר. מידע נוסף זמין במאמר בנושא ניהול רוחב הפס ברשת.
לוחצים על יצירה.
API ל-REST
שימוש ב-projects.agentPools.create:
POST https://storagetransfer.googleapis.com/v1/projects/PROJECT_ID/agentPools?agent_pool_id=AGENT_POOL_ID
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו אתם יוצרים את מאגר הסוכנים. -
AGENT_POOL_ID: המזהה של מאגר הסוכנים שאתם יוצרים.
אם מאגר סוכנים נתקע במצב Creating למשך יותר מ-30 דקות, מומלץ למחוק את מאגר הסוכנים וליצור אותו מחדש.
ביטול ההרשאות הנדרשות של Storage Transfer Service מפרויקט בזמן שמאגר סוכנים נמצא במצב Creating מוביל להתנהגות שגויה של השירות.
CLI של gcloud
כדי ליצור מאגר סוכנים באמצעות כלי שורת הפקודה gcloud, מריצים את הפקודה [gcloud transfer agent-pools create][agent-pools-create].
gcloud transfer agent-pools create AGENT_POOL
אלה האפשרויות הזמינות:
AGENT_POOL הוא מזהה ייחודי וקבוע של מאגר המשאבים.
--no-asyncחוסם משימות אחרות במסוף עד ליצירת המאגר. אם לא מציינים את האפשרות הזו, יצירת המאגר תתבצע באופן אסינכרוני.
--bandwidth-limitמגדיר כמה מרוחב הפס שלכם ב-MB/s יהיה זמין לסוכנים בבריכה הזו. מגבלת רוחב פס חלה על כל הסוכנים במאגר, ויכולה לעזור למנוע שיבוש של עומס העבודה של ההעברה במאגר, בפעולות אחרות שמשתמשות ברוחב הפס שלכם. לדוגמה, מזינים '50' כדי להגדיר מגבלת רוחב פס של 50MB/s. אם לא מציינים את הדגל הזה, הסוכנים במאגר הזה ישתמשו בכל רוחב הפס שזמין להם.
--display-nameהוא שם שאפשר לשנות כדי לעזור לכם לזהות את המאגר הזה. אפשר לכלול פרטים שלא מתאימים לשם המלא הייחודי של המשאב במאגר.
התקנת סוכני העברה
סוכני העברה הם סוכני תוכנה שמתאמים פעולות העברה מהמקור שלכם באמצעות Storage Transfer Service. הם צריכים להיות מותקנים במערכת עם גישה לנתוני המקור.
CLI של gcloud
כדי להתקין סוכנים לשימוש עם מקור שמתאים ל-S3 באמצעות ה-CLI של gcloud, משתמשים בפקודה transfer agents install.
צריך לספק את פרטי הגישה כמשתני סביבה עם הערכים AWS_ACCESS_KEY_ID ו-AWS_SECRET_ACCESS_KEY, או לאחסן אותם כפרטי כניסה שמוגדרים כברירת מחדל בקובצי התצורה של המערכת.
export AWS_ACCESS_KEY_ID=ID
export AWS_SECRET_ACCESS_KEY=SECRET
gcloud transfer agents install --pool=POOL_NAME
כדי להריץ סוכנים באמצעות מפתח של חשבון שירות, משתמשים באפשרות --creds-file:
gcloud transfer agents install --pool=POOL_NAME \
--creds-file=/relative/path/to/service-account-key.json
יצירת העברת נתונים
מסוף Google Cloud
כדי ליצור העברה ממקור שתואם ל-S3 לקטגוריה של Cloud Storage:
נכנסים לדף Storage Transfer Service במסוף Google Cloud .
לוחצים על Transfer. מוצג הדף Create a transfer job.
בוחרים באפשרות S3-compatible object storage (אחסון אובייקטים שתואם ל-S3) בתור סוג המקור. יעד ההעברה חייב להיות Google Cloud Storage.
לוחצים על השלב הבא.
הגדרת המקור
מציינים את המידע הנדרש להעברה הזו:
בוחרים את מאגר הסוכנים שהגדרתם להעברה הזו.
מזינים את שם הדלי ביחס לנקודת הקצה. לדוגמה, אם הנתונים שלכם נמצאים בכתובת:
https://example.com/bucket_aמזינים:
bucket_aמזינים את נקודת הקצה. אין לכלול את הפרוטוקול (
http://אוhttps://) או את שם הדלי. לדוגמה:example.com
מציינים מאפיינים אופציונליים להעברה הזו:
מזינים את אזור החתימה שבו רוצים להשתמש לחתימה על בקשות.
בוחרים את תהליך החתימה לבקשה הזו.
בוחרים את סגנון הפנייה. ההגדרה הזו קובעת אם שם ה-bucket יסופק בסגנון נתיב (למשל,
https://example.com/bucket-name/key-name) או בפורמט של מארח וירטואלי (לדוגמה,https://bucket-name.example.com/key-name). מידע נוסף זמין במאמר Virtual hosting of buckets בתיעוד של אמזון.בוחרים באפשרות פרוטוקול רשת.
בוחרים את הגרסה של Listing API שרוצים להשתמש בה. מידע נוסף זמין במאמרי העזרה בנושא ListObjectsV2 ו-ListObjects.
לוחצים על השלב הבא.
הגדרת היעד
בשדה Bucket or folder, מזינים את קטגוריית היעד ואת שם התיקייה (אופציונלי), או לוחצים על Browse כדי לבחור קטגוריה מתוך רשימת הקטגוריות הקיימות בפרויקט הנוכחי. כדי ליצור מאגר חדש, לוחצים על
Create new bucket (יצירת מאגר חדש).לוחצים על השלב הבא.
בחירת הגדרות ההעברה
בשדה Description (תיאור), מזינים תיאור של ההעברה. מומלץ להזין תיאור בעל משמעות וייחודי כדי שתוכלו להבחין בין המשרות.
בקטע אפשרויות מטא-נתונים, בוחרים להשתמש באפשרויות ברירת המחדל או לוחצים על הצגה ובחירה של אפשרויות כדי לציין ערכים לכל המטא-נתונים הנתמכים. פרטים נוספים זמינים במאמר בנושא שמירת מטא-נתונים.
בקטע When to overwrite (מתי להחליף), בוחרים באחת מהאפשרויות הבאות:
אם שונה: מחליף את קובצי היעד אם לקובץ המקור עם אותו שם יש ערכי Etags או סיכום ביקורת שונים.
תמיד: תמיד מחליף את קובצי היעד כששם קובץ המקור זהה, גם אם הם זהים.
בקטע When to delete (מתי למחוק), בוחרים באחת מהאפשרויות הבאות:
אף פעם: הקבצים לא יימחקו מהמקור או מהיעד.
Delete file from source after they're transferred: מחיקת קבצים מהמקור אחרי שהם מועברים ליעד. אם קובץ מקור לא מועבר, למשל כי הוא כבר קיים ביעד, קובץ המקור לא נמחק.
מחיקת קבצים מיעד אם הם לא נמצאים גם במקור: אם קבצים בקטגוריה של Cloud Storage ביעד לא נמצאים גם במקור, הקבצים יימחקו מהקטגוריה של Cloud Storage.
האפשרות הזו מבטיחה שקטגוריית היעד של Cloud Storage תהיה זהה למקור.
בקטע Notification options, בוחרים את נושא ה-Pub/Sub ואת האירועים שרוצים לקבל עליהם התראות. מידע נוסף זמין במאמר התראות Pub/Sub.
לוחצים על השלב הבא.
תזמון ההעברה
אתם יכולים לתזמן את ההעברה כך שתתבצע רק פעם אחת, או להגדיר העברה חוזרת.
לוחצים על Create (יצירה) כדי ליצור את עבודת ההעברה.
CLI של gcloud
לפני שמשתמשים ב-gcloud CLI כדי ליצור העברה, צריך לפעול לפי ההוראות במאמר הגדרת גישה ליעד Cloud Storage.
כדי להשתמש ב-gcloud CLI כדי ליצור העברה ממקור שתואם ל-S3 לקטגוריה של Cloud Storage, משתמשים בפקודה הבאה.
gcloud transfer jobs create s3://SOURCE_BUCKET_NAME gs://SINK_BUCKET_NAME \
--source-agent-pool=POOL_NAME \
--source-endpoint=ENDPOINT \
--source-signing-region=REGION \
--source-auth-method=AWS_SIGNATURE_V2 | AWS_SIGNATURE_V4 \
--source-request-model=PATH_STYLE | VIRTUAL_HOSTED_STYLE \
--source-network-protocol=HTTP | HTTPS \
--source-list-api=LIST_OBJECTS | LIST_OBJECTS_V2
נדרשים הדגלים הבאים:
--source-agent-poolהוא השם של מאגר הסוכנים שבו רוצים להשתמש להעברה הזו.
--source-endpointמציין את נקודת הקצה של מערכת האחסון. לדוגמה,s3.us-east.example.com. כדאי לפנות לספק כדי לקבל את הפורמט הנכון. לא כוללים את הפרוטוקול (למשל, https://) או שם הקטגוריה.
הדגלים הנותרים הם אופציונליים:
-
--source-signing-regionמציין אזור לחתימה על בקשות. אם ספק שירותי האחסון לא דורש אזור חתימה, אפשר להשמיט את הדגל הזה. -
--source-auth-methodמציין את שיטת האימות שבה יש להשתמש. הערכים התקינים הםAWS_SIGNATURE_V2אוAWS_SIGNATURE_V4. מידע נוסף זמין במאמרי העזרה של Amazon בנושא SigV4 ו-SigV2. -
--source-request-modelמציין את סגנון הכתובת שבו יש להשתמש. הערכים התקפים הםPATH_STYLEאוVIRTUAL_HOSTED_STYLE. הפורמט של סגנון הנתיב הואhttps://s3.REGION.example.com/BUCKET_NAME/KEY_NAME. בסגנון אירוח וירטואלי משתמשים בפורמט `https://BUCKET_NAME.s3.REGION.example.com/KEY_NAME. -
--source-network-protocolמציינת את פרוטוקול הרשת שסוכנים צריכים להשתמש בו עבור העבודה הזו. הערכים התקינים הםHTTPאוHTTPS. -
--source-list-apiמציין את הגרסה של S3 listing API להחזרת אובייקטים מהקטגוריה. הערכים התקינים הםLIST_OBJECTSאוLIST_OBJECTS_V2. מידע נוסף זמין במאמרי העזרה של Amazon בנושא ListObjectsV2 ו-ListObjects.
כדי לראות עוד אפשרויות להעברת נתונים, מריצים את הפקודה gcloud transfer jobs create --help או מעיינים במאמרי העזרה בנושא gcloud.
API ל-REST
לפני שמשתמשים ב-API בארכיטקטורת REST כדי ליצור העברה, צריך לפעול לפי ההוראות שבמאמר הגדרת גישה ליעד ב-Cloud Storage.
כדי ליצור העברה ממקור שתואם ל-S3 באמצעות API בארכיטקטורת REST, יוצרים אובייקט JSON שדומה לדוגמה הבאה.
POST https://storagetransfer.googleapis.com/v1/transferJobs
{
...
"transferSpec": {
"source_agent_pool_name":"POOL_NAME",
"awsS3CompatibleData": {
"region":"us-east-1",
"s3Metadata":{
"protocol": "NETWORK_PROTOCOL_HTTPS",
"requestModel": "REQUEST_MODEL_VIRTUAL_HOSTED_STYLE",
"authMethod": "AUTH_METHOD_AWS_SIGNATURE_V4"
},
"endpoint": "example.com",
"bucketName": "BUCKET_NAME",
"path": "PATH",
},
"gcsDataSink": {
"bucketName": "SINK_NAME",
"path": "SINK_PATH"
},
"transferOptions": {
"deleteObjectsFromSourceAfterTransfer": false
}
}
}
תיאורי השדות מופיעים בהפניית ה-API של AwsS3CompatibleData.
ספריות לקוח
לפני שמשתמשים בספריות הלקוח כדי ליצור העברה, צריך לפעול לפי ההוראות במאמר הגדרת גישה ליעד ב-Cloud Storage.
Go
מידע על התקנת ספריית הלקוח של Storage Transfer Service והשימוש בה מופיע במאמר ספריות הלקוח של Storage Transfer Service. מידע נוסף מופיע במאמרי העזרה של Storage Transfer Service Go API.
כדי לבצע אימות ב-Storage Transfer Service, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Java
מידע על התקנת ספריית הלקוח של Storage Transfer Service והשימוש בה מופיע במאמר ספריות הלקוח של Storage Transfer Service. מידע נוסף מופיע במאמרי העזרה של Storage Transfer Service Java API.
כדי לבצע אימות ב-Storage Transfer Service, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
מידע על התקנת ספריית הלקוח של Storage Transfer Service והשימוש בה מופיע במאמר ספריות הלקוח של Storage Transfer Service. מידע נוסף מופיע במאמרי העזרה של Storage Transfer Service Node.js API.
כדי לבצע אימות ב-Storage Transfer Service, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
מידע על התקנת ספריית הלקוח של Storage Transfer Service והשימוש בה מופיע במאמר ספריות הלקוח של Storage Transfer Service. מידע נוסף מופיע במאמרי העזרה של Storage Transfer Service Python API.
כדי לבצע אימות ב-Storage Transfer Service, אתם צריכים להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
שאלות נפוצות
מה קורה אם ספק שמתאים ל-S3 משתמש באישור SSL בהתאמה אישית?
אם הספק שלכם שמתאים ל-S3 משתמש באישור SSL שלא הונפק על ידי רשות אישורים ציבורית, יכול להיות שההעברות ייכשלו עם שגיאת TLS. כדי לפתור את הבעיה, צריך לצרף את אישור הבסיס של הספק לקונטיינר של סוכן ההעברה בנתיב /etc/ssl/certs/CERT_FILE באמצעות הדגל -v של Docker.
לדוגמה:
sudo docker run --ulimit memlock=64000000 -d --rm \ -v HOST_DIRECTORY:CONTAINER_DIRECTORY \ -v PATH/TO/KEY.JSON:/etc/gcloud/key.json:ro \ -v /path/to/your/CERT_FILE:/etc/ssl/certs/CERT_FILE \ -e AWS_ACCESS_KEY_ID=AWS_ACCESS_KEY_ID \ -e AWS_SECRET_ACCESS_KEY=AWS_SECRET_ACCESS_KEY \ gcr.io/cloud-ingest/tsop-agent:latest \ --project-id=PROJECT_ID \ --creds-file=/etc/gcloud/key.json \ --hostname=$(hostname) \ --agent-pool=POOL_NAME
האם יש עלות להעברה מאחסון שתואם ל-S3?
העברות מאחסון שתואם ל-S3 לא כרוכות בתשלום על 'העברות של Storage Transfer Service שדורשות סוכנים'. בקטע תמחור מפורטות עמלות נוספות שאולי יחולו. יכול להיות שספק שירותי הענן שממנו אתם מעבירים את הנתונים יגבה מכם גם עמלות על העברת נתונים יוצאת ועל פעולות.
האם יש תמיכה ב-Cloud Logging להעברות אחסון שתואמות ל-S3?
כן, אפשר להפעיל את Cloud Logging להעברות. לשם כך, פועלים לפי ההוראות במאמר Cloud Logging for Storage Transfer Service.
האם יש תמיכה בהעברות באמצעות מניפסט?
כן, יש תמיכה בקובצי מניפסט להעברות שתואמות ל-S3.
אם אוסיף אובייקט לקטגוריית המקור אחרי שהמשימה תתחיל, האם האובייקט הזה יועבר?
Storage Transfer Service מבצע פעולת רשימה בקטגוריית המקור כדי לחשב את ההבדל מקטגוריית היעד. אם פעולת הרשימה כבר הסתיימה כשמוסיפים את האובייקט החדש, המערכת מדלגת על האובייקט הזה עד להעברה הבאה.
האם Storage Transfer Service מבצע התאמה של סיכומי ביקורת במקורות שתואמים ל-S3?
Storage Transfer Service מסתמך על נתוני סיכום ביקורת שמוחזרים על ידי המקור. במקרה של אחסון שתואם ל-S3, Storage Transfer Service מצפה ש-Etag של האובייקט יהיה גיבוב (hash) MD5 של האובייקט.
עם זאת, לאובייקטים שהועברו לאחסון שתואם ל-S3 באמצעות העלאה מרובת חלקים ב-S3 אין תגי MD5 ETag. במקרה כזה, Storage Transfer Service משתמש בגודל הקובץ כדי לאמת את האובייקט שהועבר.
מה קצב העברת הנתונים שאפשר להשיג בהעברות מאחסון שתואם ל-S3?
אפשר להגדיל את תפוקת ההעברה על ידי הוספת סוכני העברה נוספים. מומלץ להשתמש ב-3 סוכנים כדי להשיג סבילות לתקלות ולמלא צינור של <10Gbps. כדי להגדיל את היקף הפעילות, מוסיפים עוד סוכנים. אפשר להוסיף סוכנים ולהסיר אותם בזמן שההעברה מתבצעת.
איפה צריך לפרוס סוכני העברה כדי להעביר נתונים מ-Amazon S3 ל-Cloud Storage?
אפשר להתקין סוכנים ב-Amazon EC2 או ב-EKS באותו אזור כמו הדלי. אפשר גם להפעיל סוכנים ב-Google Cloud באזור הקרוב ביותר.
