sql >> Databáze >  >> RDS >> PostgreSQL

Importujte data Postgres do RDS pomocí S3 a aws_s3

Hlavním problémem je, že musíte 1) přidat roli IAM do instance RDS pro přístup k segmentu S3 a 2) přidat koncový bod S3 do VPC, kde běží instance RDS, aby byla umožněna komunikace.

Toto je postup, který jsem použil, aby to fungovalo, pomocí příkazů AWS cli v shellu (správně se postarejte o hodnotu příslušných proměnných prostředí), doufám, že to může pomoci:

  1. Vytvořte roli IAM:
$ aws iam create-role \
    --role-name $ROLE_NAME \
    --assume-role-policy-document '{"Version": "2012-10-17", "Statement": [{"Effect": "Allow", "Principal": {"Service": "rds.amazonaws.com"}, "Action": "sts:AssumeRole"}]}'
  1. Vytvořte zásady IAM, které budou připojeny k roli IAM:
$ aws iam create-policy \
    --policy-name $POLICY_NAME \
    --policy-document '{"Version": "2012-10-17", "Statement": [{"Sid": "s3import", "Action": ["s3:GetObject", "s3:ListBucket"], "Effect": "Allow", "Resource": ["arn:aws:s3:::${BUCKET_NAME}", "arn:aws:s3:::${BUCKET_NAME}/*"]}]}'
  1. Přiložte zásady:
$ aws iam attach-role-policy \
    --policy-arn arn:aws:iam::$AWS_ACCOUNT_ID:policy/$POLICY_NAME \
    --role-name $ROLE_NAME
  1. Přidejte roli do konkrétní instance – tento krok je třeba opakovat pro každou novou instanci:
$ aws rds add-role-to-db-instance \
    --db-instance-identifier $RDS_INSTANCE_NAME \
    --feature-name s3Import \
    --role-arn arn:aws:iam::$AWS_ACCOUNT_ID:role/$ROLE_NAME \
    --region $REGION
  1. Vytvořte koncový bod VPC pro službu S3:
$ aws ec2 create-vpc-endpoint \
    --vpc-id $VPC_ID \
    --service-name com.amazonaws.$REGION.s3
    --route-table-ids $ROUTE_TABLE_ID

ID tabulky směrování související s VPC, kde je vytvořen koncový bod, lze získat pomocí příkazu

$ aws ec2 describe-route-tables | jq -r '.RouteTables[] | "\(.VpcId) \(.RouteTableId)"'


  1. Načtěte databázi nebo jakýkoli jiný soubor z interního úložiště pomocí run-as

  2. Jak se připojit k výchozí instanci serveru SQL Server a pojmenovaným instancím serveru SQL - SQL Server / Výukový program TSQL část 2

  3. PDOStatement::execute() vrací true, ale data se neaktualizují

  4. Jak vytvořit několik stránek pomocí dompdf