Faits :
A.
A._, née en 1958, bénéficie d'une rente de l'assurance-invalidité. Elle est affiliée depuis le 1 er janvier 1998 auprès de la Caisse cantonale genevoise de compensation (ci-après: la caisse) en tant que personne sans activité lucrative.
Sur la base d'une communication fiscale du 8 mai 2017, la caisse a fixé les cotisations AVS/AI/APG de l'assurée pour l'année 2014 à 7210 fr., intérêts moratoires et frais d'administration en sus, en fonction de sa fortune nette de 2'995'795 fr. au 31 décembre 2014, par décision du 21 janvier 2018. Par une autre décision rendue le même jour, fondée sur une communication fiscale du 9 octobre 2017, la caisse a fixé les cotisations de l'assurée pour l'année 2015 à 7828 fr., intérêts moratoires et frais d'administration en sus, compte tenu de sa fortune nette de 3'152'888 fr. au 31 décembre 2015. L'assurée s'est opposée à ces décisions. Statuant le 23 août 2018, la caisse a rejeté l'opposition.
B.
A._ a déféré cette décision à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, qui l'a déboutée par jugement du 19 juin 2019.
C.
A._ interjette un recours en matière de droit public contre ce jugement dont elle demande l'annulation, en concluant principalement à ce que ses cotisations soient fixées à 478 fr. par an pour les années 2014 et 2015, subsidiairement au renvoi de la cause à l'autorité inférieure pour nouvelle décision au sens des considérants. Elle requiert l'attribution de l'effet suspensif à son recours.
L'intimée conclut au rejet du recours. L'Office fédéral des assurances sociales a renoncé à se déterminer.

Considérant en droit :
1.
Le recours en matière de droit public peut être formé notamment pour violation du droit fédéral (<ref-law>), que le Tribunal fédéral applique d'office (<ref-law>), n'étant limité ni par les arguments de la partie recourante, ni par la motivation de l'autorité précédente. Le Tribunal fédéral fonde son raisonnement sur les faits retenus par la juridiction de première instance (<ref-law>) sauf s'ils ont été établis de façon manifestement inexacte ou en violation du droit au sens de l'<ref-law> (<ref-law>), auquel cas il peut les rectifier ou les compléter d'office (<ref-law>).
2.
Le litige porte sur le montant des cotisations AVS/AI/APG de la recourante pour les années 2014 et 2015.
La juridiction cantonale a exposé de manière complète les règles applicables à la solution du litige, singulièrement les art. 3 et 10 LAVS, 23 et 28 RAVS, de sorte qu'il suffit de renvoyer au jugement attaqué.
3.
La recourante se prétend victime d'une inégalité de traitement, prohibée par l'art. 8 Cst. et l'art. 14 CEDH, par rapport à une personne exerçant une activité lucrative et bénéficiant du même revenu et de la même fortune. Elle indique qu'un salarié qui toucherait un revenu égal au montant de sa rente AI et dont la situation patrimoniale serait identique à la sienne, paierait des cotisations sociales d'environ 500 fr. par an, alors que le montant annuel des cotisations réclamées (environ 8000 fr.) est supérieur à celui de sa rente annuelle d'invalidité (environ 5000 fr.).
Par ailleurs, la recourante soutient que les cotisations litigieuses constituent de facto un impôt confiscatoire dès lors qu'il porte atteinte à l'essence même de sa propriété, garantie par l'art. 26 Cst. et l'art. 1 er du Protocole 1 CEDH. Elle rappelle que sa rente AI annuelle n'est pas suffisante pour couvrir son minimum vital et ses charges essentielles. De plus, elle précise qu'elle ne peut pas bénéficier des prestations complémentaires puisqu'elle dispose d'un capital, lequel constitue à ses yeux une réserve devant être préservée dès lors qu'il servira de complément de retraite remplaçant le 2 e pilier.
Enfin, la recourante est d'avis que les cotisations réclamées conduisent à une confiscation de sa rente AI, alors que cette prestation est pourtant insaisissable en vertu de l'<ref-law>.
4.
Pour répondre aux griefs de la recourante, le Tribunal cantonal a rappelé que l'assurance-vieillesse est fondée sur une conception universaliste, c'est-à-dire une assurance couvrant en principe l'ensemble de la population, active ou non active professionnellement. Les personnes sans activité lucrative visées par l'<ref-law> ont donc un statut de cotisant au même titre que les assurés qui exercent une activité lucrative, dépendante ou indépendante. Elles disposent d'autres ressources qu'un salaire ou un revenu provenant d'une activité lucrative indépendante. Par l'adoption des <ref-law> et 28 RAVS, il s'est agi de trouver des modalités de perception des cotisations qui tiennent compte de la capacité contributive du débiteur de cotisations, en fonction de ces ressources (<ref-ruling> consid. 4d/cc p. 74 et les références). L'<ref-law> concrétise notamment la notion de conditions sociales en prescrivant de fixer les cotisations sur la base de la fortune et du revenu annuel acquis sous forme de rente, étant toutefois précisé que les rentes de l'assurance-invalidité ne font pas partie dudit revenu. Cette disposition réglementaire a été jugée conforme à la loi (<ref-ruling> consid. 3a p. 67) et l'est toujours depuis la modification de la table des cotisations au 1 er janvier 2013 (<ref-ruling> consid. 6.3.3 p. 259); la recourante n'apporte aucun argument pertinent qui justifierait de revenir sur ce sujet. En l'espèce, si l'on suivait le raisonnement de la recourante, le principe de la solidarité existant dans le mode de financement de l'AVS par les personnes sans activité lucrative qui disposent d'une fortune significative serait mis à mal (voir par ex. <ref-ruling> consid. 2c p. 148). Le grief soulevé par la recourante relatif à une inégalité de traitement entre les personnes exerçant une activité lucrative (dépendante ou indépendante), qui sont tenues de verser une cotisation dont le montant est calculé sur la base des revenus perçus, et celles qui n'exercent aucune activité lucrative, qui sont taxées selon leur condition sociale, doit être rejeté déjà pour le motif que l'assiette des cotisations n'est pas la même, ce qui exclut d'ailleurs que l'on puisse retenir une discrimination (<ref-ruling> consid. 6.3.3 p. 259 in initio).
Par ailleurs, on ne saurait partager l'avis de la recourante dans la mesure où elle assimile les cotisations litigieuses à un impôt de type confiscatoire. D'une part, aucune cotisation n'est prélevée sur le versement de la rente AI, conformément à l'<ref-law>, 2 e phrase, comme cela ressort d'ailleurs explicitement des décisions du 21 janvier 2018. D'autre part, le montant des cotisations en cause (moins de 8000 fr. par an), qui doivent être fixées selon les modalités prévues à l'<ref-law>, tient compte de la capacité contributive de la recourante et ne porte aucunement atteinte à la substance de sa fortune qui se montait à près de trois millions de francs à fin 2014 et avait augmenté d'environ 150'000 fr. au cours de l'année suivante.
Pour le surplus, il n'est pas établi que la rente d'invalidité aurait été confisquée ou aurait fait l'objet d'une saisie, de sorte que le grief de violation de l'<ref-law> est également dépourvu de tout fondement. Là aussi, la recourante compare en vain des éléments qui n'ont aucun rapport entre eux, soit le montant de la rente d'invalidité et celui des cotisations qu'elle est appelée à verser.
5.
Vu ce qui précède, le jugement attaqué procède d'une application conforme au droit de l'<ref-law>. En tant que tels, les calculs des cotisations, des intérêts et des frais d'administration, ne sont pas contestés et ne seront en conséquence pas revus (cf. <ref-law>). Le recours est infondé.
Compte tenu de l'issue du litige, la requête d'attribution de l'effet suspensif au recours n'a plus d'objet.
6.
La recourante, qui succombe, supportera les frais de la procédure (<ref-law>).

Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté.
2.
Les frais judiciaires, arrêtés à 1300 fr., sont mis à la charge de la recourante.
3.
Le présent arrêt est communiqué aux parties, à la Cour de justice de la République et canton de Genève, Chambre des assurances sociales, et à l'Office fédéral des assurances sociales.
Lucerne, le 5 mai 2020
Au nom de la IIe Cour de droit social
du Tribunal fédéral suisse
Le Président : Parrino
Le Greffier : Berthoud