Étape 1 : Création d'une pile, d'une couche et d'une instance dans AWS OpsWorks Stacks - AWS OpsWorks

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.

Étape 1 : Création d'une pile, d'une couche et d'une instance dans AWS OpsWorks Stacks

Important

Le AWS OpsWorks Stacks service a pris fin le 26 mai 2024 et a été désactivé tant pour les nouveaux clients que pour les clients existants. Nous recommandons vivement aux clients de migrer leurs charges de travail vers d'autres solutions dès que possible. Si vous avez des questions sur la migration, contactez l' AWS Support équipe sur AWS Re:Post ou via le AWS Support Premium.

Pour utiliser AWS OpsWorks Stacks comme fournisseur de déploiement pour un pipeline, vous devez d'abord disposer d'une pile, d'une couche et d'au moins une instance dans la couche. Bien que vous puissiez créer une pile dans AWS OpsWorks Stacks en suivant les instructions de Getting Started with Linux Stacks ou Getting Started with Windows Stacks, pour gagner du temps, cet exemple utilise un AWS CloudFormation modèle pour créer une pile, une couche et une instance Chef 11.10 basées sur Linux. L'instance créée par ce modèle exécute Amazon Linux 2016.03 et possède c3.large comme type d'instance.

Important

Le AWS CloudFormation modèle doit être stocké et exécuté dans la même région que le compartiment Amazon S3 dans lequel vous téléchargerez ultérieurement votre application et dans la même région dans laquelle vous créerez ultérieurement votre pipeline CodePipeline. Pour le moment, CodePipeline prend en charge le fournisseur AWS OpsWorks Stacks dans la région USA Est (Virginie du Nord) (us-east-1) uniquement. Toutes les ressources de cette procédure pas à pas doivent être créées dans la région de l'est des États-Unis (Virginie du Nord).

Si la création de la pile échoue, il se peut que vous approchiez du nombre maximal de rôles IAM pour votre compte. La création de piles peut également échouer si votre compte ne peut pas lancer les instances avec un type d'instance c3.large. Par exemple, si vous utilisez le niveau AWS gratuit, vous pouvez recevoir un message d'erreur tel queRoot device type: must be included in EBS. Si votre compte comporte des limites quant aux types d'instances que vous êtes autorisé à créer, telles que les limites imposées par le niveau AWS gratuit, essayez de remplacer la valeur du InstanceType paramètre dans le bloc d'instances du modèle par un type d'instance que votre compte peut utiliser.

Pour créer une pile, une couche et une instance à l'aide de AWS CloudFormation
  1. Copiez le AWS CloudFormation modèle suivant dans un nouveau document en texte brut. Enregistrez le fichier à un emplacement approprié sur votre ordinateur local et nommez-le NewOpsWorksStack.template, ou un autre nom qui vous convient.

    { "AWSTemplateFormatVersion": "2010-09-09", "Mappings": { "Region2Principal": { "us-east-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "us-west-2": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "us-west-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "eu-west-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "ap-southeast-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "ap-northeast-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "ap-northeast-2": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "ap-southeast-2": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "sa-east-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" }, "cn-north-1": { "EC2Principal": "ec2.amazonaws.com.cn", "OpsWorksPrincipal": "opsworks.amazonaws.com.cn" }, "eu-central-1": { "EC2Principal": "ec2.amazonaws.com", "OpsWorksPrincipal": "opsworks.amazonaws.com" } } }, "Parameters": { "EC2KeyPairName": { "Type": "String", "Description": "The name of an existing EC2 key pair that allows you to use SSH to connect to the OpsWorks instance." } }, "Resources": { "CPOpsDeploySecGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription" : "Lets you manage OpsWorks instances deployed to by CodePipeline" } }, "CPOpsDeploySecGroupIngressHTTP": { "Type": "AWS::EC2::SecurityGroupIngress", "Properties" : { "IpProtocol" : "tcp", "FromPort" : "80", "ToPort" : "80", "CidrIp" : "0.0.0.0/0", "GroupId": { "Fn::GetAtt": [ "CPOpsDeploySecGroup", "GroupId" ] } } }, "CPOpsDeploySecGroupIngressSSH": { "Type": "AWS::EC2::SecurityGroupIngress", "Properties" : { "IpProtocol" : "tcp", "FromPort" : "22", "ToPort" : "22", "CidrIp" : "0.0.0.0/0", "GroupId": { "Fn::GetAtt": [ "CPOpsDeploySecGroup", "GroupId" ] } } }, "MyStack": { "Type": "AWS::OpsWorks::Stack", "Properties": { "Name": { "Ref": "AWS::StackName" }, "ServiceRoleArn": { "Fn::GetAtt": [ "OpsWorksServiceRole", "Arn" ] }, "ConfigurationManager" : { "Name": "Chef","Version": "11.10" }, "DefaultOs": "Amazon Linux 2016.03", "DefaultInstanceProfileArn": { "Fn::GetAtt": [ "OpsWorksInstanceProfile", "Arn" ] } } }, "MyLayer": { "Type": "AWS::OpsWorks::Layer", "Properties": { "StackId": { "Ref": "MyStack" }, "Name": "MyLayer", "Type": "php-app", "Shortname": "mylayer", "EnableAutoHealing": "true", "AutoAssignElasticIps": "false", "AutoAssignPublicIps": "true", "CustomSecurityGroupIds": [ { "Fn::GetAtt": [ "CPOpsDeploySecGroup", "GroupId" ] } ] }, "DependsOn": [ "MyStack", "CPOpsDeploySecGroup" ] }, "OpsWorksServiceRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ { "Fn::FindInMap": [ "Region2Principal", { "Ref": "AWS::Region" }, "OpsWorksPrincipal" ] } ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "opsworks-service", "PolicyDocument": { "Statement": [ { "Effect": "Allow", "Action": [ "ec2:*", "iam:PassRole", "cloudwatch:GetMetricStatistics", "elasticloadbalancing:*" ], "Resource": "*" } ] } } ] } }, "OpsWorksInstanceProfile": { "Type": "AWS::IAM::InstanceProfile", "Properties": { "Path": "/", "Roles": [ { "Ref": "OpsWorksInstanceRole" } ] } }, "OpsWorksInstanceRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ { "Fn::FindInMap": [ "Region2Principal", { "Ref": "AWS::Region" }, "EC2Principal" ] } ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "s3-get", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": "*" } ] } } ] } }, "myinstance": { "Type": "AWS::OpsWorks::Instance", "Properties": { "LayerIds": [ { "Ref": "MyLayer" } ], "StackId": { "Ref": "MyStack" }, "InstanceType": "c3.large", "SshKeyName": { "Ref": "EC2KeyPairName" } } } }, "Outputs": { "StackId": { "Description": "Stack ID for the newly created AWS OpsWorks stack", "Value": { "Ref": "MyStack" } } } }
  2. Connectez-vous à la AWS CloudFormation console AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/cloudformation.

  3. Sur la page d' AWS CloudFormation accueil, choisissez Create stack.

  4. Sur la page Sélectionner un modèle, dans la zone Choisir un modèle, choisissez Télécharger un modèle sur Amazon S3, puis Parcourir.

  5. Accédez au AWS CloudFormation modèle que vous avez enregistré à l'étape 1, puis choisissez Ouvrir. Sur la page Select Template, choisissez Next.

    Sélectionnez la page Modèle de l'assistant AWS CloudFormation Create Stack.
  6. Sur la page Spécifier les détails, nommez la pile MyStackou tout autre nom de pile propre à votre compte. Si vous choisissez un autre nom pour votre pile, modifiez le nom de la pile tout au long de cette procédure pas à pas.

  7. Dans la zone Paramètres, indiquez le nom d'une paire de clés EC2 que vous souhaitez utiliser pour accéder à votre instance AWS OpsWorks Stacks après sa création. Choisissez Suivant.

  8. Dans la page Options, choisissez Suivant. (Les paramètres de cette page ne sont pas obligatoires pour cette procédure pas à pas.)

  9. Le AWS CloudFormation modèle que vous utilisez dans cette procédure pas à pas crée des rôles IAM, un profil d'instance et une instance.

    Important

    Avant de choisir Créer, choisissez Coût pour estimer les frais que vous pourriez encourir AWS pour créer des ressources avec ce modèle.

    Si la création de ressources IAM est acceptable, cochez la case Je reconnais que ce modèle peut amener AWS CloudFormation à créer des ressources IAM, puis choisissez Create. Si la création de ressources IAM n'est pas acceptable, vous ne pouvez pas poursuivre cette procédure.

  10. Sur le AWS CloudFormation tableau de bord, vous pouvez voir la progression de la création de la pile. Avant de passer à l'étape suivante, patientez jusqu'à ce que CREATE_COMPLETE s'affiche dans la colonne Statut.

    CloudFormation Tableau de bord AWS montrant la création de stack.
Pour vérifier la création d'une pile dans AWS OpsWorks Stacks
  1. Ouvrez la AWS OpsWorks console à l'adresse https://console.aws.amazon.com/opsworks/.

  2. Sur le tableau de bord AWS OpsWorks Stacks, consultez le stack que vous avez créé.

    OpsWorks Tableau de bord AWS montrant la création de stack.
  3. Ouvrez la pile, puis affichez la couche et l'instance. Notez que la couche et l'instance ont été créées avec les noms et autres métadonnées fournis dans le AWS CloudFormation modèle. Vous êtes prêt à télécharger votre application dans un compartiment Amazon S3.