SAP Business One com SAP HANA na AWS: arquitetura e operação

29 de setembro de 20269 min de leitura
SAPSAP HANAAWSSAP Business OnePower BI

Introdução

"SAP Business One HANA AWS" junta três coisas que o console da AWS não junta sozinho. O Business One continua o ERP. O HANA continua o banco em memória. A AWS entra como lugar onde essa dupla roda, com disco, rede e backup explícitos.

O HANA não é um motor do RDS. Ele sobe em EC2, em tipo de instância da lista certificada pela SAP para a versão que você opera. Inventar um tamanho "porque tem RAM sobrando" é como o refresh do Power BI volta a levar quinze minutos. O tuning dessa consulta está no artigo de queries no SAP HANA.

O que este artigo cobre é o que fica em volta: volume, porta, usuário de leitura e backup. O painel não aponta para o HANA de produção. Ele lê a réplica, como no artigo de SAP Business One com Power BI e Aurora.


Dois volumes, dois papéis

O HANA separa dado e log. No EBS isso vira dois volumes. Misturar os dois no mesmo disco é o jeito mais rápido de perder o ponto de recuperação.

  • /hana/data. Colunas, o dado em memória persistido. Peço gp3 ou io2, com IOPS provisionado.
  • /hana/log. Log de redo. Volume próprio, menor, com IOPS alto.
  • /backup. Backup FILE do HANA. gp3, longe do disco de dado.
  • Raiz. Sistema operacional. O menor disco que o SO aceita.
  • aws ec2 create-volume \
      --availability-zone sa-east-1a \
      --volume-type gp3 \
      --size 500 \
      --iops 6000 \
      --throughput 250 \
      --tag-specifications 'ResourceType=volume,Tags=[{Key=Name,Value=hana-data}]'

    O volume de log nasce à parte, com o mesmo comando e outra tag. Os dois entram no mesmo AZ da instância. HANA em um AZ e disco em outro não é alta disponibilidade. É latência.

    A instância é memory-optimized e tem de constar na nota de certificação da versão do HANA. Eu não fixo um tipo neste texto porque a lista muda. O check é: a nota da SAP cita esse instance type para essa revisão. Se não cita, troca a instância antes de instalar o Business One.


    Quem fala com a porta 30015

    A porta padrão do indexserver é 3 + número da instância + 15. Instância 00 escuta em 30015. Essa porta não fica aberta para a VPC inteira. Só o security group da aplicação do Business One entra.

    aws ec2 authorize-security-group-ingress \
      --group-id "$SG_HANA" \
      --protocol tcp \
      --port 30015 \
      --source-group "$SG_B1APP"

    O usuário que o relatório usa não é SYSTEM. É um usuário de leitura, criado no HANA, com grant só nas views que o job de réplica precisa.

    CREATE USER ANALYTICS PASSWORD "$SENHA" NO FORCE_FIRST_PASSWORD_CHANGE;
    GRANT SELECT ON "OINV" TO ANALYTICS;
    hdbsql -n hana-prod:30015 -u ANALYTICS -p "$HANA_PASSWORD" <<'SQL'
    SELECT "CardCode", "DocEntry", "DocTotal"
    FROM "OINV"
    WHERE "DocStatus" = 'O'
    LIMIT 5;
    SQL

    Se o ANALYTICS consegue SELECT e não consegue INSERT, o job de réplica está no usuário certo. O Power BI nem deveria ter essa connection string. Ele fala com o Aurora, no endpoint que o outro artigo mostra como achar.


    Backup que não depende do snapshot cego

    Snapshot de EBS com o HANA escrevendo é cópia de disco rasgado. A ordem é: backup lógico do HANA para o volume /backup, só então snapshot desse volume.

    hdbsql -n localhost:30015 -u SYSTEM -p "$HANA_PASSWORD" \
      "BACKUP DATA USING FILE ('/backup/hana/COMPLETE')"
    

    VOL_ID=$(aws ec2 describe-volumes \ --filters Name=tag:Name,Values=hana-backup \ --query "Volumes[0].VolumeId" --output text)

    aws ec2 create-snapshot \ --volume-id "$VOL_ID" \ --description "hana-complete $(date -I)"

    Um restore de verdade, uma vez por trimestre, vale mais do que a política escrita. Sobe uma instância à parte, restaura o backup FILE e abre o Business One em modo de leitura. Se ninguém faz isso, o backup é um arquivo.

    O plano de execução das consultas que rodam em cima desse HANA continua no artigo de otimização. Este texto não troca aquele: lá é SQL, aqui é o servidor que segura o SQL.


    O que não fazer

    Não apontar o gateway do Power BI para 30015 de produção. Não colocar dado e log no mesmo volume. Não abrir 30015 para 0.0.0.0/0 "só esta semana". Não escolher instância fora da lista certificada porque o preço do mês fechou melhor.

    O Business One na AWS funciona quando o HANA tem disco, porta e backup próprios, e o analítico mora em outro banco. O resto é atalho que aparece na fatura e na auditoria ao mesmo tempo.

    Artigos Relacionados