copilot version: v1.20.0を使用しています。

10.1.0.0/16にVPC コネクタで接続したApp Runerから10.0.0.0/16に配置されたInternal Albにアクセスします。
App Runerからインターネットへのアクセスも可能にします。
VPC に接続すると、AppRunner サービスからすべてのアウトバウンドトラフィックが VPC ルーティングルールに基づいてルーティングされます。NAT ゲートウェイへのルートで許可されない限り、サービスはパブリックインターネット (AWS API を含む) にアクセスできません。また、Amazon Simple Storage Service (Amazon S3)や Amazon DynamoDB などの AWS API に接続するように VPC エンドポイントを設定して、NAT トラフィックを回避することもできます。
-- https://aws.amazon.com/jp/blogs/news/new-for-app-runner-vpc-support/
最新バージョンにアップデートします(2022年08月14日の最新はv1.20.0)。
$ curl -Lo copilot https://github.com/aws/copilot-cli/releases/latest/download/copilot-darwin && chmod u+x copilot && sudo mv copilot /usr/local/bin/copilot && copilot --help
$ copilot app init
Use existing application: No
Application name: sample-app-runner
✔ Created the infrastructure to manage services and jobs under application sample-app-runner..
✔ The directory copilot will hold service manifests for application sample-app-runner.
Recommended follow-up action:
    Run `copilot init` to add a new service or job to your application.
プロジェクトにcopilot/.workspaceが作成されます。
application: sample-app-runner
path: ""
10.1.0.0/16に2つのパブリックサブネットと2つのプライベートサブネットを作成します。
$ copilot env init -n stage -a sample-app-runner \
--override-vpc-cidr      10.1.0.0/16 \
--override-private-cidrs 10.1.2.0/24,10.1.3.0/24 \
--override-public-cidrs  10.1.0.0/24,10.1.1.0/2
CIDRは例では10.1.0.0/16とします。
copilot/environments/stage/manifest.ymlが作成されます# The manifest for the "stage" environment.
# Read the full specification for the "Environment" type at:
#  https://aws.github.io/copilot-cli/docs/manifest/environment/
# Your environment name will be used in naming your resources like VPC, cluster, etc.
name: stage
type: Environment
# Import your own VPC and subnets or configure how they should be created.
network:
  vpc:
    cidr: 10.1.0.0/16
    subnets:
      public:
        - cidr: 10.1.0.0/24
          az: ap-northeast-1a
        - cidr: 10.1.1.0/24
          az: ap-northeast-1c
      private:
        - cidr: 10.1.2.0/24
          az: ap-northeast-1a
        - cidr: 10.1.3.0/24
          az: ap-northeast-1c
# Configure the load balancers in your environment, once created.
# http:
#   public:
#   private:
# Configure observability for your environment resources.
observability:
  container_insights: false
copilot/environments/stage/manifest.ymlの内容をデプロイします。
copilot env deploy --name stage
✔ Proposing infrastructure changes for the sample-app-runner-stage environment.
- Creating the infrastructure for the sample-app-runner-stage environment.          [update complete]  [80.8s]
  - An ECS cluster to group your services                                     [create complete]  [9.5s]
  - A security group to allow your containers to talk to each other           [create complete]  [5.9s]
  - An Internet Gateway to connect to the public internet                     [create complete]  [17.3s]
  - Private subnet 1 for resources with no internet access                    [create complete]  [5.9s]
  - Private subnet 2 for resources with no internet access                    [create complete]  [5.9s]
  - A custom route table that directs network traffic for the public subnets  [create complete]  [15.7s]
  - Public subnet 1 for resources that can access the internet                [create complete]  [5.9s]
  - Public subnet 2 for resources that can access the internet                [create complete]  [5.9s]
  - A private DNS namespace for discovering services within the environment   [create complete]  [46.8s]
  - A Virtual Private Cloud to control networking of your AWS resources       [create complete]  [14.1s]
$ copilot svc init
...
...
copilot/sample-app-runner/manifest.ymlが作成されます。
 The manifest for the "sample-app-runner" service.
# Read the full specification for the "Request-Driven Web Service" type at:
# https://aws.github.io/copilot-cli/docs/manifest/rd-web-service/
# Your service name will be used in naming your resources like log groups, App Runner services, etc.
name: sample-app-runner
# The "architecture" of the service you're running.
type: Request-Driven Web Service
image:
  # Docker build arguments.
  # For additional overrides: https://aws.github.io/copilot-cli/docs/manifest/rd-web-service/#image-build
  build: 
    dockerfile: .docker/app/Dockerfile
    context: .
  # Port exposed through your container to route traffic to it.
  port: 80
# http:
#   healthcheck:
#     path: /
#     healthy_threshold: 3
#     unhealthy_threshold: 5
#     interval: 10s
#     timeout: 5s
# Number of CPU units for the task.
cpu: 1024
# Amount of memory in MiB used by the task.
memory: 2048
# # Connect your App Runner service to your environment's VPC.
# network:
#    vpc:
#      placement: private
# Enable tracing for the service.
# observability:
#   tracing: awsxray
# Optional fields for more advanced use-cases.
#
# variables:                    # Pass environment variables as key value pairs.
#   LOG_LEVEL: info
#
tags:                         # Pass tags as key value pairs.
  project: sample-app-runner
# You can override any of the values defined above by environment.
# environments:
#   test:
#     variables:
#       LOG_LEVEL: debug        # Log level for the "test" environment.
$ copilot svc deploy --name sample-app-runner --env stage
...
...
 
※ 前述しましたが、NATゲートウェイのルートが必要な理由は以下のためです。
VPC コネクトのコネクト先サブネットがパブリックネットワークの場合、NATゲートウェイを使用できないのでApp Runnerからのアウトバウンドトラフィックはインターネットにアクセスできません。
VPC に接続すると、AppRunner サービスからすべてのアウトバウンドトラフィックが VPC ルーティングルールに基づいてルーティングされます。NAT ゲートウェイへのルートで許可されない限り、サービスはパブリックインターネット (AWS API を含む) にアクセスできません。また、Amazon Simple Storage Service (Amazon S3)や Amazon DynamoDB などの AWS API に接続するように VPC エンドポイントを設定して、NAT トラフィックを回避することもできます。
-- https://aws.amazon.com/jp/blogs/news/new-for-app-runner-vpc-support/