Déployer l'environnement d'initialisation Spring sur Oracle Cloud Infrastructure avec MySQL Database Service

Configurez une topologie à plusieurs niveaux dans le cloud qui inclut la structure Spring Boot pour le déploiement d'une application hautement disponible qui utilise une base de données MySQL.

Spring Boot est une structure open source basée sur Java que vous pouvez utiliser pour créer des applications de qualité production. Spring Boot simplifie le déploiement d'applications avec une configuration et une personnalisation minimales et inclut des bibliothèques tierces pour rationaliser le processus.

Architecture

Cette architecture de référence multiniveau inclut les ressources d'infrastructure et la structure Spring Boot utilisée pour déployer des applications hautement disponibles sur Oracle Cloud Infrastructure.

L'architecture déploie un équilibreur de charge, un bastion, trois machines virtuelles sur lesquelles l'application est installée et Oracle MySQL Database Service.

L'architecture comprend deux compartiments, Cloud Guard étant activé pour assurer une sécurité maximale en fonction des meilleures pratiques de sécurité d'Oracle. En outre, le compartiment dans lequel Oracle MySQL Database Service est déployé est un compartiment de zone de sécurité.

Les composants se trouvent dans différents sous-réseaux et domaines de pannes pour assurer une haute disponibilité. Oracle MySQL Database Service est accessible uniquement via l'hôte de bastion et les machines virtuelles d'application sont accessibles via l'équilibreur de charge.

Le diagramme suivant illustre cette architecture.



Springboot-mysql-oci-oracle.zip

L'architecture comporte les composants suivants :

  • Région

    Une région Oracle Cloud Infrastructure est une zone géographique localisée qui contient des centres de données, appelés domaines de disponibilité. Les régions sont indépendantes d'autres régions et de grandes distances peuvent les séparer (entre les pays voire les continents).

  • Domaines de disponibilité

    Les domaines de disponibilité sont des centres de données autonomes et indépendants au sein d'une région. Les ressources physiques de chaque domaine de disponibilité sont isolées des ressources des autres domaines de disponibilité, ce qui assure la tolérance de pannes. Les domaines de disponibilité ne partagent pas d'infrastructure telle que l'alimentation ou le refroidissement ou le réseau interne du domaine de disponibilité. Par conséquent, il est improbable qu'un problème affecte les autres domaines de disponibilité de la région.

  • Domaines de pannes

    Un domaine de panne est un regroupement de matériel et d'infrastructures au sein d'un domaine de disponibilité. Chaque domaine de disponibilité comporte trois domaines de pannes dotés d'une alimentation et d'un matériel indépendants. Lorsque vous distribuez des ressources entre plusieurs domaines de pannes, vos applications peuvent tolérer les pannes de serveur physique, la maintenance du système et les pannes d'alimentation au sein d'un domaine de pannes.

  • Réseau cloud virtuel (VCN) et sous-réseaux

    Un VCN est un réseau personnalisable et défini par logiciel que vous configurez dans une région Oracle Cloud Infrastructure. Comme les réseaux cloud virtuels traditionnels, vous bénéficiez d'un contrôle total sur votre environnement réseau. Un VCN peut comporter plusieurs blocs CIDR qui ne se chevauchent pas et que vous pouvez modifier après avoir créé le VCN. Vous pouvez segmenter un VCN en sous-réseaux, qui peuvent être ciblés vers une région ou un domaine de disponibilité. Chaque sous-réseau se compose d'une plage contiguë d'adresses qui ne chevauchent pas les autres sous-réseaux du VCN. Vous pouvez modifier la taille d'un sous-réseau après sa création. Un sous-réseau peut être public ou privé.

  • Liste de sécurité

    Pour chaque sous-réseau, vous pouvez créer des règles de sécurité qui spécifient la source, la destination et le type de trafic qui doivent être autorisés en entrée et en sortie du sous-réseau.

  • Bastion

    Choisissez entre l'hôte bastion et les options de bastion Oracle Cloud Infrastructure :

    • L'hôte de base est une instance de calcul qui sert de point d'entrée sécurisé et contrôlé vers la topologie en dehors du cloud. Le bastion est généralement provisionné dans une zone démilitarisée (DMZ). Il permet de protéger les ressources sensibles en les plaçant dans des réseaux privés inaccessibles directement depuis l'extérieur du cloud. La topologie possède un seul point d'entrée connu que vous pouvez surveiller et auditer régulièrement. Ainsi, vous pouvez éviter d'exposer les composants les plus sensibles de la topologie sans compromettre l'accès à ces composants.

    • Bastion Oracle Cloud Infrastructure fournit un accès sécurisé limité et limité dans le temps aux ressources qui ne disposent pas d'adresses publiques et qui nécessitent des contrôles d'accès stricts aux ressources, tels que les machines virtuelles et Bare Metal, Oracle MySQL Database Service, Autonomous Transaction Processing (ATP), Oracle Container Engine for Kubernetes (OKE) et toute autre ressource qui autorise l'accès SSH (Secure Shell Protocol). Avec le service bastion Oracle Cloud Infrastructure, vous pouvez activer l'accès aux hôtes privés sans déployer ni gérer un hôte de saut. En outre, vous bénéficiez d'une meilleure sécurité grâce aux droits d'accès basés sur l'identité et d'une session SSH centralisée, auditée et liée au temps. Le bastion Oracle Cloud Infrastructure élimine la nécessité d'une adresse IP publique pour l'accès au bastion, ce qui élimine le tracé et la surface d'attaque potentielle lors de la fourniture d'un accès à distance.

  • équilibreurs de charge

    Le service Oracle Cloud Infrastructure Load Balancing fournit une répartition de trafic automatisée à partir d'un seul point d'entrée vers plusieurs serveurs du back-end.

  • Cloud Guard

    Vous pouvez utiliser Oracle Cloud Guard pour surveiller et maintenir la sécurité de vos ressources dans Oracle Cloud Infrastructure. Cloud Guard utilise des recettes de détecteurs que vous pouvez définir pour examiner vos ressources afin d'identifier les lacunes en matière de sécurité et pour surveiller les opérateurs et les utilisateurs pour les activités risquées. Lorsqu'une erreur de configuration ou une activité non sécurisée est détectée, Cloud Guard recommande des actions correctives et aide à effectuer ces actions, en fonction des recettes de répondeur que vous pouvez définir.

  • Zone de sécurité

    Les zones de sécurité garantissent dès le départ les meilleures pratiques de sécurité d'Oracle en appliquant des stratégies telles que le cryptage des données et la prévention de l'accès public aux réseaux pour l'ensemble d'un compartiment. Une zone de sécurité est associée à un compartiment du même nom et inclut des stratégies de zone de sécurité ou un "recipe" qui s'applique au compartiment et à ses sous-compartiments. Vous ne pouvez pas ajouter ni déplacer un compartiment standard vers un compartiment de zone de sécurité.

  • Passerelle d'appairage local

    Une passerelle d'appairage local permet d'appairer un VCN avec un autre VCN dans la même région. L'appairage signifie que les réseaux cloud virtuels communiquent à l'aide d'adresses IP privées, sans que le trafic passe par Internet ou ne passe par votre réseau sur site.

  • Base de données

    Cette architecture utilise MySQL Database Service, qui s'exécute sur une machine virtuelle de forme électronique.

Recommandations

Vos besoins peuvent être différents de ceux de l'architecture décrite ici. Utilisez les recommandations suivantes comme point de départ.

  • Cloud Guard

    Clonez et personnalisez les recettes par défaut fournies par Oracle pour créer des recettes de détecteur et de répondeur personnalisées. Ces recettes vous permettent de spécifier le type de violation de sécurité qui génère un avertissement et les actions autorisées à y être exécutées. Par exemple, la visibilité d'un bucket Object Storage peut être définie sur Public.

    Appliquez Cloud Guard au niveau de la location pour couvrir la portée la plus large et réduire la charge administrative liée à la maintenance de plusieurs configurations.

    Vous pouvez également utiliser la fonction Liste gérée pour appliquer certaines configurations aux détecteurs.

  • Security Zones

    Pour les ressources nécessitant une sécurité maximale, Oracle recommande d'utiliser des zones de sécurité. Une zone de sécurité est un compartiment associé à une recette définie par Oracle de stratégies de sécurité basées sur les meilleures pratiques. Par exemple, les ressources d'une zone de sécurité ne doivent pas être accessibles à partir du réseau Internet public et doivent être chiffrées à l'aide de clés gérées par le client. Lors de la création et de la mise à jour de ressources dans une zone de sécurité, Oracle Cloud Infrastructure valide les opérations par rapport aux stratégies de la recette de zone de sécurité et refuse les opérations qui violent les stratégies.

  • VCN

    Lorsque vous créez un VCN, déterminez le nombre de blocs CIDR requis et la taille de chaque bloc en fonction du nombre de ressources que vous prévoyez d'attacher aux sous-réseaux du VCN. Utilisez des blocs CIDR compris dans l'espace d'adresse IP privée standard.

    Sélectionnez des blocs CIDR qui ne chevauchent aucun autre réseau (dans Oracle Cloud Infrastructure, votre centre de données on-premise ou un autre fournisseur cloud) auquel vous souhaitez configurer des connexions privées.

    Une fois que vous avez créé un VCN, vous pouvez modifier, ajouter et supprimer ses blocs CIDR.

    Lorsque vous concevez les sous-réseaux, tenez compte de vos exigences en matière de flux de trafic et de sécurité. Associez toutes les ressources d'un niveau ou d'un rôle spécifique au même sous-réseau, ce qui peut servir de limite de sécurité.

    Utilisez des sous-réseaux régionaux.

  • Liste de sécurité

    Utilisez des listes de sécurité pour définir des règles entrantes et sortantes qui s'appliquent à l'ensemble du sous-réseau.

  • Machine virtuelle

    Les machines virtuelles sont réparties sur plusieurs domaines de pannes pour assurer une haute disponibilité. Utilisez VM.Standard.E3.Flex, une OCPU à quatre cœurs, une mémoire à 64 Go et une bande passante réseau à 4 Gbits/s (Oracle Linux 7).

  • Bastion

    Utilisez la forme VM.Standard.E3.Flex avec 1 OCPU et 2 Go de RAM. Vous pouvez également utiliser le service bastion Oracle Cloud Infrastructure.

  • équilibreurs de charge

    Les équilibreurs de charge distribuent le trafic entrant aux machines virtuelles d'application. Lorsque vous créez l'équilibreur de charge, vous pouvez sélectionner une forme prédéfinie qui fournit une bande passante fixe ou indiquer une forme personnalisée (flexible) dans laquelle vous définissez une plage de bande passante et laisser le service redimensionner automatiquement la bande passante en fonction des modèles de trafic. Avec l'une ou l'autre approche, vous pouvez modifier la forme à tout moment après avoir créé l'équilibreur de charge.

  • Service de base de données

    Utilisez VM.Standard.E2.8, qui fournit suffisamment de CPU et de mémoire pour l'application.

Remarques

  • Evolutivité

    Vous pouvez redimensionner les serveurs d'applications verticalement en modifiant la forme des instances de calcul. Une forme avec un nombre de cœurs plus élevé fournit davantage de mémoire et de bande passante réseau. Si vous avez besoin de plus de stockage, augmentez la taille des volumes de blocs attachés au serveur d'applications.

  • Disponibilité

    Les domaines de pannes offrent la meilleure résilience pour les charges de travail déployées dans un seul domaine de disponibilité. Pour une haute disponibilité dans le niveau d’application, déployez davantage de serveurs d’applications si nécessaire.

  • Coût

    Dans le niveau d'application, sélectionnez la forme de calcul en fonction des coeurs, de la mémoire et de la bande passante réseau dont votre application a besoin. Vous pouvez commencer par une forme à quatre cœurs pour le serveur d'applications. Si vous avez besoin de plus de performances, de mémoire ou de bande passante réseau, vous pouvez passer à une forme plus grande.

  • Sauvegardes

    Oracle Cloud Infrastructure sauvegarde automatiquement la base de données MySQL. Le bucket Oracle Cloud Infrastructure Object Storage que vous créez stocke les sauvegardes manuelles et les conserve pendant 60 jours.

    Oracle Cloud Infrastructure Block Volumes permet de créer des sauvegardes à un point dans le temps de données sur un volume de blocs. Vous pouvez restaurer ces sauvegardes sur de nouveaux volumes à tout moment. Vous pouvez également utiliser le service pour effectuer une sauvegarde cohérente en cas d'incident d'un volume d'initialisation jusqu'à un point dans le temps sans interruption d'application ni temps d'arrêt. Les volumes d'initialisation et de blocs disposent des mêmes capacités de sauvegarde.

  • Sécurité

    Pour le contrôle d'accès, utilisez des stratégies pour limiter les personnes autorisées à accéder à vos ressources dans le cloud et les actions qu'elles peuvent effectuer.

    Pour la sécurité du réseau, les listes de sécurité et les groupes de sécurité réseau utilisent des règles de sécurité pour contrôler le trafic au niveau des paquets. Un groupe de sécurité réseau se compose d'un ensemble de règles de sécurité entrantes et sortantes qui s'appliquent uniquement à un ensemble de cartes d'interface réseau virtuelles de votre choix dans un seul VCN. Par exemple, vous pouvez choisir d'appliquer des règles à toutes les instances de calcul qui agissent en tant que serveurs Web dans le niveau Web d'une application à plusieurs niveaux dans votre VCN.

    Les règles de sécurité des groupes réseau fonctionnent de la même manière que les règles des listes de sécurité. Toutefois, pour la source ou la destination de la règle de sécurité d'un groupe de sécurité réseau, vous pouvez spécifier un groupe de sécurité réseau au lieu d'un bloc CIDR. Ainsi, vous pouvez facilement écrire des règles de sécurité pour contrôler le trafic entre deux groupes de sécurité réseau dans le même VCN ou le trafic au sein d'un même groupe de sécurité réseau. Lorsque vous créez un système de base de données, vous pouvez indiquer des groupes de sécurité réseau. Vous pouvez également mettre à jour un système de base de données existant pour qu'il utilise des groupes de sécurité réseau.

déploiement

Pour déployer cette architecture de référence, créez les ressources requises dans Oracle Cloud Infrastructure, puis installez Spring Boot Framework.

  1. Créez les ressources requises dans Oracle Cloud Infrastructure.

    Le code Terraform pour déployer les ressources dans le cloud est disponible sur GitHub. Vous pouvez extraire le code dans Oracle Cloud Infrastructure Resource Manager en un seul clic, créer la pile et la déployer. Vous pouvez également télécharger le code à partir de GitHub sur votre ordinateur, le personnaliser et déployer l'architecture à l'aide de l'interface de ligne de commande Terraform.

    • Déployez le code Terraform à l'aide d'Oracle Cloud Infrastructure Resource Manager :
      1. Cliquez sur Déploiement sur Oracle Cloud.

        Si vous n'êtes pas déjà connecté, entrez les informations d'identification de la location et de l'utilisateur.

      2. Sélectionnez la région de déploiement de la pile.
      3. Suivez les invites affichées à l'écran et les instructions pour créer la pile.
      4. Après avoir créé la pile, cliquez sur Actions Terraform et sélectionnez Plan.
      5. Attendez la fin du travail, puis passez en revue le plan.

        Pour apporter des modifications, revenez à la page Détails de la pile, cliquez sur Modifier la pile et apportez les modifications requises. Exécutez ensuite à nouveau l'action Plan.

      6. Si aucune autre modification n'est nécessaire, revenez à la page Détails de la pile, cliquez sur Actions Terraform et sélectionnez Appliquer.
    • Déployez le code Terraform à l'aide de l'interface de ligne de commande Terraform :
      1. Accédez à GitHub.
      2. Clonez ou téléchargez le référentiel sur votre ordinateur local.
      3. Suivez les instructions du document README.
  2. Après avoir provisionné l'architecture, vous pouvez installer la structure Spring Boot disponible sur GitHub :
    1. Accédez à GitHub.
    2. Clonez ou téléchargez le référentiel sur votre ordinateur local.
    3. Utilisez les informations du document README pour accéder à des informations et ressources supplémentaires. Suivez les instructions du document Getting Started pour installer Spring Boot.

Journal des modifications

Ce journal répertorie uniquement les modifications importantes :