Configuration des AWS intégrations Oracle Database@ avec Amazon Redshift - Oracle Database@AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Configuration des AWS intégrations Oracle Database@ avec Amazon Redshift

Pour configurer l'intégration Zero-ETL entre votre base de données Oracle et Amazon Redshift, procédez comme suit :

  1. Activez Zero-ETL sur votre réseau ODB.

  2. Configurez les conditions requises pour la base de données Oracle.

  3. Configurez le Gestionnaire de AWS Secrets Manager et le Service de gestion des AWS clés.

  4. Configurez les autorisations IAM.

  5. Configurez les politiques relatives aux ressources Amazon Redshift.

  6. Créez l'intégration Zero-ETL.

  7. Créez la base de données cible dans Amazon Redshift.

Étape 1 : Activez Zero-ETL pour votre réseau ODB

Vous pouvez activer l'intégration zéro ETL pour le réseau ODB associé à votre cluster de machines virtuelles source. Par défaut, cette intégration est désactivée.

Pour activer l'intégration Zero-ETL
  1. Ouvrez la AWS console Oracle Database@ à l'adresse. https://console.aws.amazon.com/odb/

  2. Dans le volet de navigation, sélectionnez ODB networks.

  3. Sélectionnez le réseau ODB pour lequel vous souhaitez activer l'intégration zéro ETL.

  4. Sélectionnez Modifier.

  5. Sélectionnez Zero-ETL.

  6. Choisissez Continuer, puis Modifier.

Pour activer l'intégration Zero-ETL, utilisez la update-odb-network commande avec le --zero-etl-access paramètre :

aws odb update-odb-network \ --odb-network-id odb-network-id \ --zero-etl-access ENABLED

Pour activer l'intégration zéro ETL pour le réseau ODB associé à votre cluster de machines virtuelles source, utilisez la update-odb-network commande. Cette commande configure l'infrastructure réseau requise pour l'intégration sans ETL.

aws odb update-odb-network \ --odb-network-id your-odb-network-id \ --zero-etl-access ENABLED

Étape 2 : Configuration de votre base de données Oracle

Complétez la configuration de la base de données Oracle comme décrit dans les conditions préalables :

  • Créez des utilisateurs de réplication et accordez les autorisations nécessaires.

  • Activez les journaux de restauration archivés.

  • Configurez le protocole SSL (Oracle Exadata uniquement).

  • Configurez les utilisateurs ASM le cas échéant (Oracle Exadata uniquement).

Étape 3 : configurer le Gestionnaire de AWS Secrets Manager et le service de gestion des AWS clés

Créez une clé gérée par le client (CMK) et stockez les informations d'identification de votre base de données.

  1. Créez une clé CMK dans le service de gestion des AWS clés à l'aide de la create-key commande.

    aws kms create-key \ --description "ODB Zero-ETL Integration Key" \ --key-usage ENCRYPT_DECRYPT \ --key-spec SYMMETRIC_DEFAULT
  2. Stockez les informations d'identification de votre base de données dans AWS Secrets Manager.

    aws secretsmanager create-secret \ --name "ODBZeroETLCredentials" \ --description "Credentials for Oracle Database@AWS Zero-ETL integration" \ --kms-key-id your-cmk-key-arn \ --secret-string file://secret-content.json
  3. Associez une politique de ressources au secret pour autoriser l'accès à Oracle Database@AWS .

    aws secretsmanager put-resource-policy \ --secret-id "ODBZeroETLCredentials" \ --resource-policy file://secret-resource-policy.json

    Dans la commande précédente, secret-resource-policy.json contient le code JSON suivant.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "zetl.odb.amazonaws.com" }, "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource": "*" } ] }
  4. Attachez une politique de ressources à la clé CMK. La politique de ressources CMK doit inclure des autorisations pour le principal de service Oracle Database@ et le principal de AWS service Amazon Redshift afin de prendre en charge l'intégration chiffrée sans ETL.

    aws kms put-key-policy \ --key-id your-cmk-key-arn \ --policy-name default \ --policy file://cmk-resource-policy.json

    Le cmk-resource-policy.json fichier doit inclure les déclarations de politique suivantes. La première instruction autorise l'accès au AWS service Oracle Database@, et la seconde autorise Amazon Redshift à créer des autorisations sur la clé KMS pour les opérations de données chiffrées.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "Allow ODB service access", "Effect": "Allow", "Principal": { "Service": "zetl.odb.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:CreateGrant" ], "Resource": "*" }, { "Sid": "Allows the Redshift service principal to add a grant to a KMS key", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:{context-key}": "{context-value}" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Decrypt", "GenerateDataKey", "CreateGrant" ] } } } ] }

Étape 4 : Configuration des autorisations IAM

Créez et attachez des politiques IAM qui autorisent les opérations d'intégration sans ETL.

aws iam create-policy \ --policy-name "ODBZeroETLIntegrationPolicy" \ --policy-document file://odb-zetl-iam-policy.json aws iam attach-user-policy \ --user-name your-iam-username \ --policy-arn policy-arn

La politique suivante accorde les autorisations nécessaires.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "ODBGlueIntegrationAccess", "Effect": "Allow", "Action": [ "glue:CreateIntegration", "glue:ModifyIntegration", "glue:DeleteIntegration", "glue:DescribeIntegrations", "glue:DescribeInboundIntegrations" ], "Resource": "*" }, { "Sid": "ODBZetlOperations", "Effect": "Allow", "Action": "odb:CreateOutboundIntegration", "Resource": "*" }, { "Sid": "ODBRedshiftFullAccess", "Effect": "Allow", "Action": [ "redshift:*", "redshift-serverless:*", "ec2:DescribeAccountAttributes", "ec2:DescribeAddresses", "ec2:DescribeAvailabilityZones", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "sns:CreateTopic", "sns:Get*", "sns:List*", "cloudwatch:Describe*", "cloudwatch:Get*", "cloudwatch:List*", "cloudwatch:PutMetricAlarm", "cloudwatch:EnableAlarmActions", "cloudwatch:DisableAlarmActions", "tag:GetResources", "tag:UntagResources", "tag:GetTagValues", "tag:GetTagKeys", "tag:TagResources" ], "Resource": "*" }, { "Sid": "ODBRedshiftDataAPI", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:CancelStatement", "redshift-data:ListStatements", "redshift-data:GetStatementResult", "redshift-data:DescribeStatement", "redshift-data:ListDatabases", "redshift-data:ListSchemas", "redshift-data:ListTables", "redshift-data:DescribeTable" ], "Resource": "*" }, { "Sid": "ODBKMSAccess", "Effect": "Allow", "Action": [ "kms:CreateKey", "kms:DescribeKey", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:ListKeys", "kms:CreateAlias", "kms:ListAliases" ], "Resource": "*" }, { "Sid": "ODBSecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:CreateSecret", "secretsmanager:UpdateSecret", "secretsmanager:DeleteSecret", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets", "secretsmanager:GetResourcePolicy", "secretsmanager:PutResourcePolicy", "secretsmanager:ValidateResourcePolicy" ], "Resource": "*" } ] }

Étape 5 : Configuration des politiques de ressources Amazon Redshift

Configurez des politiques de ressources sur votre cluster Amazon Redshift afin d'autoriser les intégrations entrantes.

aws redshift put-resource-policy \ --no-verify-ssl \ --resource-arn "your-redshift-cluster-arn" \ --policy '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "redshift:AuthorizeInboundIntegration" ], "Condition": { "StringEquals": { "aws:SourceArn": "your-vm-cluster-arn" } } }, { "Effect": "Allow", "Principal": { "AWS": "your-account-id" }, "Action": [ "redshift:CreateInboundIntegration" ] } ] }' \ --region us-west-2
Astuce

Vous pouvez également utiliser l'option Corriger pour moi dans la AWS console. Cette option configure automatiquement les politiques Amazon Redshift requises sans que vous ayez à le faire manuellement.

Étape 6 : Créez l'intégration Zero-ETL à l'aide de AWS Glue

Créez l'intégration Zero-ETL à l'aide de la AWS Glue create-integration commande. Dans cette commande, vous spécifiez le cluster de machines virtuelles source et l'espace de noms Amazon Redshift cible.

L'exemple suivant crée une intégration avec un PDB nommé pdb1 running in a Exadata VM cluster. Vous pouvez également créer un cluster de machines virtuelles autonomes en le cloud-vm-cluster remplaçant par cloud-autonomous-vm-cluster dans l'ARN source. La spécification d'une clé KMS est facultative. Si vous spécifiez une clé, elle peut être différente de celle dans laquelle vous l'avez crééeÉtape 3 : configurer le Gestionnaire de AWS Secrets Manager et le service de gestion des AWS clés.

aws glue create-integration \ --integration-name "MyODBZeroETLIntegration" \ --source-arn "arn:aws:odb:region:account:cloud-vm-cluster/cluster-id" \ --target-arn "arn:aws:redshift:region:account:namespace/namespace-id" \ --data-filter "include: pdb1.*.*" \ --integration-config '{ "RefreshInterval": "10", "IntegrationMode": "DEFAULT", "SourcePropertiesMap": { "secret-arn": "arn:aws:secretsmanager:region:account:secret:secret-name" } }' \ --description "Zero-ETL integration for Oracle to Amazon Redshift" \ --kms-key-id "arn:aws:kms:region:account:key/key-id"

La commande renvoie un ARN d'intégration et définit le statut surcreating. Vous pouvez surveiller l'état de l'intégration à l'aide de la describe-integrations commande.

aws glue describe-integrations \ --integration-identifier integration-id
Important

Un seul PDB par intégration est pris en charge. Le filtre de données doit spécifier un seul PDB, include: pdb1.*.* par exemple. La source doit se trouver dans la même AWS région et dans le même compte que ceux dans lesquels l'intégration est créée.

Étape 7 : créer une base de données cible dans Amazon Redshift

Une fois l'intégration active, créez une base de données cible dans votre cluster Amazon Redshift.

-- Connect to your Amazon Redshift cluster psql -h your-redshift-endpoint -U username -d database -- Create database from integration CREATE DATABASE target_database_name FROM INTEGRATION 'integration-id' DATABASE "source_pdb_name";

Après avoir créé la base de données cible, vous pouvez interroger les données répliquées.

-- List databases to verify creation \l -- Connect to the new database \c target_database_name -- List tables to see replicated data \dt

Vérifiez l'intégration Zero-ETL

Vérifiez que l'intégration fonctionne en interrogeant le statut de l'intégration dans AWS Glue et en vous assurant que vos modifications Oracle sont répliquées sur Amazon Redshift.

Pour vérifier que votre intégration Zero-ETL fonctionne correctement
  1. Vérifiez l'état de l'intégration.

    aws glue describe-integrations \ --integration-identifier integration-id

    Le statut doit être ACTIVE ouREPLICATING.

  2. Vérifiez la réplication des données en apportant des modifications à votre base de données Oracle et en vérifiant qu'elles apparaissent dans Amazon Redshift.

  3. Surveillez les métriques de réplication sur Amazon CloudWatch (si disponible).