Personalizar a sincronização para o S3 Files
O S3 Files permite controlar como os dados fluem entre o sistema de arquivos e o bucket vinculado do S3 por meio de uma configuração de sincronização. As configurações padrão contrabalançam a latência e o custo da maioria das workloads, mas é possível ajustá-las de acordo com seus padrões de acesso. A importação antecipada de mais dados reduz a latência de leitura, mas aumenta os custos de armazenamento e gravação. A importação de menos dados mantém os custos de armazenamento baixos, mas significa que mais leituras são fornecidas pelo S3 a uma latência mais alta. Cada configuração tem dois componentes: regras de importação de dados, que controlam quais dados são copiados para o sistema de arquivos e quando, e regras de expiração de dados, que controlam por quanto tempo os dados não utilizados permanecem no sistema de arquivos. É possível atualizar essas regras usando o Console de Gerenciamento da AWS ou a API PutSynchronizationConfiguration.
Regras de importação de dados
As regras de importação de dados controlam como os dados são copiados do bucket para o sistema de arquivos. É possível ter no máximo dez regras de importação de dados por sistema de arquivos. Cada regra de importação de dados tem os seguintes parâmetros:
prefix: o prefixo do S3 ao qual a regra se aplica. Especifique uma string vazia (“”) para todo o bucket (escopo do sistema de arquivos) ou um prefixo específico (por exemplo, “data/ml/”) no sistema de arquivos. O prefixo deve terminar com uma barra (/), a menos que o bucket inteiro seja especificado com “”. É necessário incluir uma única regra de importação para o diretório raiz. Padrão: “” (o bucket inteiro ou o escopo do sistema de arquivos).
trigger: quando importar dados: ON_DIRECTORY_FIRST_ACCESS ou ON_FILE_ACCESS. Padrão: ON_DIRECTORY_FIRST_ACCESS.
ON_DIRECTORY_FIRST_ACCESS: os dados do arquivo são importados quando um diretório é acessado pela primeira vez. Por exemplo, quando você acessa um diretório pela primeira vez listando o respectivo conteúdo ou abrindo um arquivo dentro dele, os dados são importados para todos os arquivos secundários imediatos nesse diretório que são menores que o limite sizeLessThan. Essa opção é útil para workloads que exigem baixa latência ao acessar arquivos pela primeira vez.
ON_FILE_ACCESS: os dados do arquivo são importados somente quando um arquivo é lido pela primeira vez. Essa opção minimiza os dados importados à custa de uma maior latência na primeira leitura.
sizeLessThan: tamanho máximo do arquivo (em bytes) a ser importado automaticamente. Embora o S3 Files importe metadados para todos os arquivos, ele só importa dados para arquivos menores que esse limite. Mínimo: 0 byte (nenhum dado importado; os metadados ainda serão importados). Máximo: 52.673.613.613.613.135.872 bytes (48 TiB). Padrão: 131.072 bytes (128 KiB).
Comportamento de correspondência de prefixos
Quando várias regras de importação de dados correspondem a um arquivo, o S3 Files aplica a regra com o prefixo mais específico. Por exemplo, suponha que você tenha três regras:
Regra 1: prefix = “” (bucket inteiro), sizeLessThan = 64 KiB, trigger = ON_FILE_ACCESS
Regra 2: prefixo= “hot/”, sizeLessThan = 1 MiB, trigger = ON_DIRECTORY_FIRST_ACCESS
Regra 3: prefix = “hot/largeData/”, sizeLessThan = 256 KiB, trigger = ON_DIRECTORY_FIRST_ACCESS
Para um arquivo em hot/largeData/data.txt, o S3 Files aplica a Regra 3. Para um arquivo em hot/data.txt, o S3 Files aplica a Regra 2. Para um arquivo em cold/data.txt, o S3 Files aplica a Regra 1 porque não há uma regra específica para o prefixo cold/.
Regras de expiração de dados
As regras de expiração de dados controlam quando os dados não utilizados são removidos do sistema de arquivos para otimizar os custos de armazenamento. O S3 Files remove os dados quando eles não são lidos após um período especificado e depois que as respectivas alterações já foram sincronizadas com o bucket do S3. Sempre que um arquivo é lido, seu cronômetro de expiração é reiniciado, estendendo o tempo em que os dados permanecem no sistema de arquivos. É possível especificar o seguinte parâmetro nas regras de expiração de dados:
daysAfterLastAccess: número de dias desde a última leitura após o qual os dados serão removidos do sistema de arquivos. Mínimo: 1 dia. Máximo: 365 dias. Padrão: 30 dias.
Se você tiver workloads de longa duração que acessem frequentemente os mesmos dados, considere usar períodos de expiração mais longos (de 30 a 90 dias). Para dados temporários, considere usar períodos mais curtos (de 1 a 7 dias).
Exemplos de configuração
Compartilhamento de arquivos de uso geral (configuração padrão): uma equipe de desenvolvedores e cientistas de dados monta um sistema de arquivos do S3 para compartilhar código, arquivos de configuração e pequenos conjuntos de dados. A maioria dos arquivos tem menos de 128 KiB e são lidos repetidamente ao longo do dia. A configuração padrão funciona bem para essa workload: ON_DIRECTORY_FIRST_ACCESS importa metadados e dados de arquivos pequenos quando qualquer arquivo em um diretório é acessado pela primeira vez, o que funciona bem quando arquivos no mesmo diretório tendem a ser acessados juntos, como arquivos de origem em um projeto ou arquivos de configuração em uma implantação. O acesso subsequente por qualquer usuário é rápido. Quando um usuário abre um arquivo grande, como um arquivo de log, o S3 Files o transmite de modo automático diretamente do S3 para oferecer alto throughput. A janela de expiração de trinta dias mantém os arquivos usados ativamente no sistema de arquivos sem limpeza manual.
Treinamento de ML com leituras repetidas: uma tarefa de treinamento lê milhares de arquivos pequenos (< 10 MiB) repetidamente em várias épocas. Para minimizar a latência, defina um limite alto de sizeLessThan (por exemplo, 10 MiB) com ON_DIRECTORY_FIRST_ACCESS para que os dados do arquivo sejam pré-carregados quando o script de treinamento listar cada diretório pela primeira vez. Defina uma expiração curta (por exemplo, três dias) para que os dados sejam removidos do sistema de arquivos imediatamente após a conclusão da tarefa de treinamento.
Workloads agênticas com ampla descoberta de arquivos: um agente de IA explora um grande repositório de documentos, códigos ou arquivos da base de conhecimentos para responder a consultas, lendo vários arquivos pequenos uma vez enquanto busca o contexto pertinente. Defina sizeLessThan como 0 para que nenhum dado seja importado para o sistema de arquivos. O agente pode navegar com baixa latência pela árvore de diretórios completa para descobrir arquivos, enquanto cada arquivo lido é fornecido diretamente do S3. Isso mantém os custos baixos para workloads que afetam muitos arquivos de forma imprevisível, mas raramente revisitam o mesmo arquivo, e escala naturalmente à medida que se adicionam mais agentes que leem em paralelo.
Prefixos quentes e frios: um sistema de arquivos contém arquivos de configuração acessados com frequência em config/ e dados de arquivamento acessados com pouca frequência em archive/. Crie duas regras de importação: uma para config/ com alto sizeLessThan e ON_DIRECTORY_FIRST_ACCESS e uma para archive/ com sizeLessThan definido como 0 e ON_FILE_ACCESS. Isso mantém os arquivos de configuração no sistema de arquivos para acesso rápido, evitando custos de armazenamento de dados arquivados que raramente são lidos.