Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Création de l'infrastructure
La collecte des données suivantes avant de commencer accélérera le déploiement.
LES DONNÉES REQUISES ONT UNE PILE :
AutoScalingGroup:
UserData: Cette valeur est fournie dans ce didacticiel. Il inclut des commandes permettant de configurer la ressource pour l' CodeDeploy agent CodeDeploy et de le démarrer.AMI-ID: Cette valeur détermine le type d' EC2 instances que votre groupe Auto Scaling (ASG) va créer. Assurez-vous de sélectionner une AMI dans votre compte qui commence par « customer- » et qui utilise le système d'exploitation que vous souhaitez. Trouvez l'AMI à l' IDs aide de la référence For the AMS SKMS API, consultez l'onglet Rapports de l'opération AWS Artifact Console (CLI : list-amis) ou sur la page de détails de la console AMS ->. VPCs VPCs Cette procédure pas à pas est destinée aux ASGs personnes configurées pour utiliser une AMI Linux.
Base de données :
Ces paramètres,
DBEngineEngineVersion, etLicenseModeldoivent être définis en fonction de votre situation, bien que les valeurs indiquées dans l'exemple aient été testées.Ces paramètres,
RDSSubnetIds,DBNameMasterUsername, etMasterUserPasswordsont obligatoires lors du déploiement du bundle d'applications. Pour RDSSubnet les identifiants, utilisez deux sous-réseaux privés.
LoadBalancer:
Ces paramètres,
DBEngineEngineVersion, etLicenseModeldoivent être définis en fonction de votre situation, bien que les valeurs indiquées dans l'exemple aient été testées.ELBSubnetIds: utilisez deux sous-réseaux publics.
Application : la
ApplicationNamevaleur définit le nom de l' CodeDeploy application et le nom du groupe de CodeDeploy déploiement. Vous l'utilisez pour déployer votre application. Il doit être unique dans le compte. Pour vérifier les CodeDeploy noms de votre compte, consultez la CodeDeploy console. L'exemple utilise « WordPress » mais, si vous voulez utiliser cette valeur, assurez-vous qu'elle n'est pas déjà utilisée.
Cette procédure utilise le CT à deux niveaux (avancé) à haute disponibilité (ct-06mjngx5flwto) et le CT Create S3 storage (ct-1a68ck03fn98r). À partir de votre compte authentifié, suivez ces étapes sur la ligne de commande.
Lancez la pile d'infrastructure.
Exportez le schéma JSON des paramètres d'exécution pour la pile HA à deux niveaux CT dans un fichier de votre dossier actuel nommé CreateStackParams .json.
aws amscm get-change-type-version --change-type-id "ct-06mjngx5flwto" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateStackParams.jsonModifiez le schéma. Remplacez-le
variablescomme il convient. Par exemple, utilisez le système d'exploitation que vous souhaitez pour les EC2 instances que l'ASG créera. Enregistrez-leApplicationNametel que vous l'utiliserez ultérieurement pour déployer l'application. Notez que vous pouvez ajouter jusqu'à 50 balises.{ "Description": "HA two tier stack for WordPress", "Name": "WordPressStack", "TimeoutInMinutes": 360, "Tags": [ { "Key": "ApplicationName", "Value": "WordPress" } ], "AutoScalingGroup": { "AmiId": "AMI-ID", "UserData": "#!/bin/bash \n REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone/ | sed 's/[a-z]$//') \n yum -y install ruby httpd \n chkconfig httpd on \n service httpd start \n touch /var/www/html/status \n cd /tmp \n curl -O https://aws-codedeploy-$REGION.s3.amazonaws.com/latest/install \n chmod +x ./install \n ./install auto \n chkconfig codedeploy-agent on \n service codedeploy-agent start" }, "LoadBalancer": { "Public": true, "HealthCheckTarget": "HTTP:80/status" }, "Database": { "DBEngine": "MySQL", "DBName": "wordpress", "EngineVersion": "8.0.16 ", "LicenseModel": "general-public-license", "MasterUsername": "admin", "MasterUserPassword": "p4ssw0rd" }, "Application": { "ApplicationName": "WordPress" } }Exportez le modèle CreateRfc JSON dans un fichier de votre dossier actuel nommé CreateStackRfc .json :
aws amscm create-rfc --generate-cli-skeleton > CreateStackRfc.jsonModifiez le modèle RFC comme suit et enregistrez-le, vous pouvez supprimer et remplacer le contenu. Notez que
RequestedStartTimeetRequestedEndTimesont désormais facultatifs ; leur exclusion crée une RFC ASAP qui s'exécute dès qu'elle est approuvée (ce qui se produit généralement automatiquement). Pour soumettre une RFC planifiée, ajoutez ces valeurs.{ "ChangeTypeVersion": "3.0", "ChangeTypeId": "ct-06mjngx5flwto", "Title": "HA-Stack-For-WP-RFC" }Créez la RFC en spécifiant le fichier CreateStackRfc .json et le fichier de paramètres d'exécution CreateStackParams .json :
aws amscm create-rfc --cli-input-json file://CreateStackRfc.json --execution-parameters file://CreateStackParams.jsonVous recevez l'identifiant RFC dans la réponse. Enregistrez l'identifiant pour les étapes suivantes.
Soumettez le RFC :
aws amscm submit-rfc --rfc-id RFC_IDSi la RFC réussit, vous ne recevrez aucune sortie.
Pour vérifier l'état de la RFC, exécutez
aws amscm get-rfc --rfc-idRFC_ID
Notez l'identifiant RFC.
Lancer un compartiment S3
La collecte des données suivantes avant de commencer accélérera le déploiement.
BUCKET S3 DE DONNÉES REQUIS :
VPC-ID: Cette valeur détermine l'emplacement de votre compartiment S3. Utilisez le même ID VPC que celui que vous avez utilisé précédemment.BucketName: Cette valeur définit le nom du compartiment S3, vous l'utilisez pour télécharger votre bundle d'applications. Il doit être unique dans la région du compte et ne peut pas contenir de majuscules. Il n' BucketName est pas obligatoire d'inclure votre identifiant de compte, mais cela permet d'identifier plus facilement le compartiment ultérieurement. Pour voir quels noms de compartiment S3 existent dans le compte, accédez à la console Amazon S3 de votre compte.
Exportez le schéma JSON des paramètres d'exécution pour le stockage S3 create CT dans un fichier JSON nommé CreateS3 StoreParams .json.
aws amscm get-change-type-version --change-type-id "ct-1a68ck03fn98r" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateS3StoreParams.jsonModifiez le schéma comme suit, vous pouvez supprimer et remplacer le contenu. Remplacez
VPC_IDde manière appropriée. Les valeurs de l'exemple ont été testées, mais elles ne vous conviennent peut-être pas.Astuce
Ils
BucketNamedoivent être uniques dans la région du compte et ne peuvent pas inclure de majuscules. Il n' BucketName est pas obligatoire d'inclure votre identifiant de compte, mais cela permet d'identifier plus facilement le compartiment ultérieurement. Pour voir quels noms de compartiment S3 existent dans le compte, accédez à la console Amazon S3 de votre compte.{ "Description": "S3BucketForWordPressBundle", "VpcId": "VPC_ID", "StackTemplateId": "stm-s2b72beb000000000", "Name": "S3BucketForWP", "TimeoutInMinutes": 60, "Parameters": { "AccessControl": "Private", "BucketName": "ACCOUNT_ID-BUCKET_NAME" } }Exportez le modèle JSON CreateRfc pour dans un fichier, dans votre dossier actuel, nommé CreateS3 StoreRfc .json :
aws amscm create-rfc --generate-cli-skeleton > CreateS3StoreRfc.jsonModifiez et enregistrez le fichier CreateS3 StoreRfc .json, vous pouvez supprimer et remplacer le contenu. Notez que
RequestedStartTimeetRequestedEndTimesont désormais facultatifs ; leur exclusion crée une RFC ASAP qui s'exécute dès qu'elle est approuvée (ce qui se produit généralement automatiquement). Pour soumettre une RFC planifiée, ajoutez ces valeurs.{ "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-1a68ck03fn98r", "Title": "S3-Stack-For-WP-RFC" }Créez la RFC en spécifiant le fichier CreateS3 StoreRfc .json et le fichier de paramètres d'exécution StoreParams CreateS3 .json :
aws amscm create-rfc --cli-input-json file://CreateS3StoreRfc.json --execution-parameters file://CreateS3StoreParams.jsonVous recevez RfcId le nouveau RFC dans la réponse. Enregistrez l'identifiant pour les étapes suivantes.
Soumettez le RFC :
aws amscm submit-rfc --rfc-idRFC_IDSi la RFC réussit, vous ne recevrez aucune sortie.
Pour vérifier l'état de la RFC, exécutez
aws amscm get-rfc --rfc-idRFC_ID