No artigo de hoje iremos migrar alguns arquivos que temos dentro do S3 na AWS para nosso Object Storage em Oracle Cloud.
Para esse artigo iremos utilizar:
- Um armazenamento (S3) em AWS com aproximadamente 4GB de dados
- Um armazenamento (Object Storage) em Oracle Cloud
- Uma instância Linux (Always Free) na Oracle Cloud
- Credenciais de Acesso da AWS e Oracle Cloud
Passo 1: Instalação do rclone
Acesse a instância Linux e digite o comando:
curl https://rclone.org/install.sh | sudo bash

Passo 2: Coletando informações da Origem (AWS)
Nessa etapa nós iremos coletar as informações para termos a base de conexão entre as 2 clouds.
Na AWS nós iremos somente precisar de 3 informações
- Access Key e Secret Key
- Região
- Nome do Bucket
Para criar iremos acessar o Console, clique no seu usuário na barra superior direita, depois em Security Credentials

Navegue até Access Keys (Chaves de Acesso) e crie uma nova chave

Copie os dados da chave de acesso

Para saber qual a região e nome do bucket, navegue até o Amazon S3 > Buckets e veja em qual região está o seu bucket de origem, no meu caso está em Norte da Virgínia (us-east-1) e no bucket se chama wm-awsbucket.

Agora temos o que precisamos da AWS, as chaves, e a região e nome do bucket
Passo 3: Coletando informações do Destino (Oracle)
Na Oracle nós iremos somente precisar de 4 informações
- Access Key e Secret Key
- Região
- Nome do Bucket
- Namespace
- API endpoint URL (iremos montar ela depois que coletar a região e o namespace)
Vamos começar coletando a Access Key e Secret Key, para isso navegue até seu usuário, depois Customer Secret Keys e depois em Generate Secret Key


Gere uma chave e copie os 2 valores



Colete a região que está o bucket e o nome do bucket, navegue até Storage > Buckets

Abaixo eu tenho a visão do nome do meu bucket (migrate) e minha região atual é Ashburn (us-ashburn-1)

Agora vamos coletar o namespace, existem 2 formas, através do acesso via tenancy, mas como estamos já na tela do bucket, basta clicar no nome do bucket que você enxerga o namespace

Agora precisamos montar a API Endpoint URL, ela precisa ser preenchidas nos campos de <Object_Storage_Namespace> e <Region_Identifier>, exemplo abaixo:
ANTES:
https://<Object_Storage_Namespace>.compat.objectstorage.<Region_Identifier>.oraclecloud.com
DEPOIS:
https://abcdxptonamespace.compat.objectstorage.us-ashburn-1.oraclecloud.com
Passo 4: Configurar a Origem dentro do rclone (AWS)
Acesse a instância e digite os seguintes comandos:
rclone config
Digite "n" para New Remote
Coloque um nome no meu caso irei colocar aws
Selecione a opção Amazon S3 Compliante Storage Providers...., no meu caso é a opção 5

Selecione seu provedor, no meu caso será Amazon Web Services (AWS) S3, opção 1
Na próxima etapa selecione a opção 1, para entrar com as credenciais AWS
Digite a Access Key
Digite a Secret Key
Selecione a região, eu estou em Northern Virginia, então irei selecionar a opção 1

Agora iremos manter todas as configurações padrões (default) nos demais itens, verifique no seu caso a opção Option endpoint, onde deve selecionar a região que está seu bucket, estou colocando a opção 1 pois meu bucket está na região padrão.
Region (Selecione a sua região) no meu caso estou em Norte Virgínia então será 1
Endpoint (Digite ENTER)
location_constrain (Selecione a sua região) no meu caso estou em Norte Virgínia então será 1
acl 1
Option server_side_encryption. (Digite ENTER)
Option sse_kms_key_id. (Digite ENTER)
Option storage_class. (Digite ENTER)
Edit advanced config?
n
Keep this "aws" remote? y

Depois de configurado, você pode testar a conexão digitando:
rclone lsd aws:
Onde aws é o nome do seu remote, a saída deve ser algo parecido com isso:

Passo 5: Configurar o Destino dentro do rclone (Oracle)
Digite o seguinte comando
rclone config
Digite "n" para New Remote
Coloque um nome no meu caso irei colocar oracle
Selecione a opção Amazon S3 Compliante Storage Providers...., no meu caso é a opção 5

provider> 25
env_auth> 1
access_key_id> (sua Access Key)
secret_access_key>> (sua Secret Key)
endpoint> https://<Object_Storage_Namespace>.compat.objectstorage.<Region_Identifier>.oraclecloud.com
location_constraint> 1
acl> 1
Edit advanced config?
n
Keep this "oracle" remote? y

Depois de configurado, você pode testar a conexão digitando:
rclone lsd oracle:
rclone listremotes
Você terá as saidas:

Passo 6: Copiando dados da AWS para Oracle
Na instância digite:
rclone copy source:sourcepath dest:destpath
Onde:
source: nome do remote de origem, no nosso caso aws
sourcepath: nome do bucket
dest: nome do remote no destino
destpath: nome do bucket no destino
Exemplo:
rclone copy aws:wm-awsbucket oracle:migrate
Os dados serão copiados para o bucket de destino