Skip to content

How to deploy service with Aurora Serverless to custom environment? #2257

@shgtkshruch

Description

@shgtkshruch

Hi! I think AWS Copilot is a great tool that makes containers easy to use.
Thank you for developing such a useful and wonderful tool.

When I create a service with Aurora Serverless, I get an error message and cannot deploy the service.

# create application with name `chronos`
$ copilot app init
Application name: chronos
✔ Created the infrastructure to manage services and jobs under application chronos.

✔ The directory copilot will hold service manifests for application chronos.

Recommended follow-up actions:
- Run `copilot init` to add a new service or job to your application.

# create environment with name `dev`
$ copilot env init
What is your environment's name? dev
Which credentials would you like to use to create dev? [profile default]
Would you like to use the default configuration for a new environment?
    - A new VPC with 2 AZs, 2 public subnets and 2 private subnets
    - A new ECS Cluster
    - New IAM Roles to manage services and jobs in your environment
 Yes, use default.
✔ Linked account 123456789101 and region ap-northeast-1 to application chronos.

✔ Proposing infrastructure changes for the chronos-dev environment.
...

# create Rails service with Load Balanced Web Service
$ copilot svc init
Note: It's best to run this command in the root of your workspace.
Service type: Load Balanced Web Service
Service name: rails
Dockerfile: ./Dockerfile.prod
no EXPOSE statements in Dockerfile ./Dockerfile.prod
Port: 3000
✔ Manifest file for service rails already exists at copilot/rails/manifest.yml, skipping writing it.
Your manifest contains configurations like your container size and port (:3000).

✔ Created ECR repositories for service rails.

Recommended follow-up actions:
- Update your manifest copilot/rails/manifest.yml to change the defaults.
- Run `copilot svc deploy --name rails --env test` to deploy your service to a test environment.

# create storage with Aurora Serverless
$ copilot storage init
Only found one workload, defaulting to: rails
Storage type: Aurora Serverless
Storage resource name: rails-cluster
Database engine: MySQL
Initial database name: app_production

# Deploy service
$ copilot svc deploy
Only found one service, defaulting to: rails
Only found one environment, defaulting to: dev
Environment dev is already on the latest version v1.3.1, skip upgrade.
...
# build docker image
# push docker image to ECR
...
✘ Proposing infrastructure changes for stack chronos-dev-rails
✘ deploy service: change set with name copilot-6012e83b-fa5a-4c90-a93d-b9f1e616b9ab for stack chronos-dev-rails has no changes

After deleting the addons directory, I can deploy Rails service.

rm -rf copilot/rails/addons

# successfully deploy
copilot svc deploy

But, i can deploy test environment that created by copilot init instruction even if not delete addons directory.
How can i deploy service to custom environment (ex. dev, staging) with Aurora Serverless.

Metadata

Metadata

Assignees

Labels

guidanceIssue requesting guidance or information about usage

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions