`'Environment'` Manifest で利用可能なすべてのプロパティのリストです。
Copilot Environment の詳細については、[Environment](../concepts/environments.ja.md) のコンセプトページを参照してください。
???+ note "Environment のサンプル Manifest"
=== "Basic"
```yaml
name: prod
type: Environment
observability:
container_insights: true
```
=== "Imported VPC"
```yaml
name: imported
type: Environment
network:
vpc:
id: 'vpc-12345'
subnets:
public:
- id: 'subnet-11111'
- id: 'subnet-22222'
private:
- id: 'subnet-33333'
- id: 'subnet-44444'
```
=== "Configured VPC"
```yaml
name: qa
type: Environment
network:
vpc:
cidr: '10.0.0.0/16'
subnets:
public:
- cidr: '10.0.0.0/24'
az: 'us-east-2a'
- cidr: '10.0.1.0/24'
az: 'us-east-2b'
private:
- cidr: '10.0.3.0/24'
az: 'us-east-2a'
- cidr: '10.0.4.0/24'
az: 'us-east-2b'
```
=== "With public certificates"
```yaml
name: prod-pdx
type: Environment
http:
public: # 既存の証明書をパブリックロードバランサーに適用します
certificates:
- arn:aws:acm:${AWS_REGION}:${AWS_ACCOUNT_ID}:certificate/13245665-cv8f-adf3-j7gd-adf876af95
```
=== "Private"
```yaml
name: onprem
type: Environment
network:
vpc:
id: 'vpc-12345'
subnets:
private:
- id: 'subnet-11111'
- id: 'subnet-22222'
- id: 'subnet-33333'
- id: 'subnet-44444'
http:
private: # 既存の証明書をプライベートロードバランサーに適用します。
certificates:
- arn:aws:acm:${AWS_REGION}:${AWS_ACCOUNT_ID}:certificate/13245665-cv8f-adf3-j7gd-adf876af95
subnets: ['subnet-11111', 'subnet-22222']
```
=== "Content delivery network"
```yaml
name: cloudfront
type: Environment
cdn: true
http:
public:
ingress:
cdn: true
```
`name` String
Environment の名前。
`type` String
`'Environment'` に設定されている必要があります。
`network` Map
network セクションには、既存の VPC をインポートするためのパラメータ、または Copilot で生成された VPC を設定するためのパラメータが含まれています。
network.`vpc` Map
vpc セクションには、CIDR 設定やサブネットの設定を行うためのパラメータが含まれています。
network.vpc.`id` String
The ID of the VPC to import. This field is mutually exclusive with `cidr`.
インポートする VPC の ID。このフィールドは `cidr` とは排他的です。
network.vpc.`cidr` String
Copilot が生成した VPC と関連付ける IPv4 CIDR ブロック。このフィールドは `id` とは排他的です。
network.vpc.`subnets` Map
VPC にパブリックサブネットとプライベートサブネットを設定します。
例えば、既存の VPC をインポートする場合は、以下のようにします。
```yaml
network:
vpc:
id: 'vpc-12345'
subnets:
public:
- id: 'subnet-11111'
- id: 'subnet-22222'
```
または、Copilot で生成された VPC を構成する場合は、以下のようにします。
```yaml
network:
vpc:
cidr: '10.0.0.0/16'
subnets:
public:
- cidr: '10.0.0.0/24'
az: 'us-east-2a'
- cidr: '10.0.1.0/24'
az: 'us-east-2b'
```
network.vpc.subnets.`public` Array of Subnets
パブリックサブネットに関する設定のリスト。
network.vpc.subnets.`private` Array of Subnets
プライベートサブネットに関する設定のリスト。
network.vpc.subnets..`id` String
インポートするサブネットの ID。このフィールドは、`cidr` および `az` とは排他的です。
network.vpc.subnets..`cidr` String
サブネットに割り当てられた IPv4 CIDR ブロック。このフィールドは `id` とは排他的です。
network.vpc.subnets..`az` String
サブネットに割り当てられた可用性ゾーン名です。`az` フィールドはオプションです。デフォルトでは、Availability Zone はアルファベット順に割り当てられます。このフィールドは、`id` とは排他的です。
network.vpc.`security_group` Map
Environment のセキュリティグループに関するルール。
```yaml
network:
vpc:
security_group:
ingress:
- ip_protocol: tcp
ports: 80
cidr: 0.0.0.0/0
```
network.vpc.security_group.`ingress` Array of Security Group Rules
Environment のインバウンドセキュリティグループに関するルールのリスト。
network.vpc.security-group.`egress` Array of Security Group Rules
Environment のアウトバウンドセキュリティグループに関するルールのリスト。
network.vpc.security_group..`ip_protocol` String
IP プロトコルの名前または番号。
network.vpc.security_group..`ports` String or Integer
セキュリティグループルールのポート範囲またはポート番号。
```yaml
ports: 0-65535
```
または
```yaml
ports: 80
```
network.vpc.security_group..`cidr` String
IPv4 アドレスの範囲を CIDR 形式で指定します。
network.vpc.`flow_logs` Boolean or Map
'true' と指定すると、Copilot は VPC フローログを有効にして、 Environment VPC に出入りする IP トラフィックの情報を取得します。
デフォルトの VPC フローログの保持期間は 14 日(2 週間)です。
```yaml
network:
vpc:
flow_logs: on
```
保持期間をカスタマイズできます。
```yaml
network:
vpc:
flow_logs:
retention: 30
```
network.vpc.flow_logs.`retention` String
ログイベントを保持する日数です。指定可能な値については、[こちらのページ](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-logs-loggroup.html#cfn-logs-loggroup-retentionindays) を確認してください。
`cdn` Boolean or Map
The cdn section contains parameters related to integrating your service with a CloudFront distribution. To enable the CloudFront distribution, specify `cdn: true`.
cdn セクションには、CloudFront のディストリビューションと Service の統合に関連するパラメータが含まれています。CloudFront ディストリビューションを有効にするには、`cdn: true` と指定します。
cdn.`certificate` String
CloudFront ディストリビューションで HTTPS トラフィックを有効にするための証明書。
CloudFront は、インポートした証明書が `us-east-1` リージョンにあることが必須です。
設定例:
```yaml
cdn:
certificate: "arn:aws:acm:us-east-1:1234567890:certificate/e5a6e114-b022-45b1-9339-38fbfd6db3e2"
```
cdn.`static_assets` Map
任意項目。CloudFront の静的アセットに関する設定。
cdn.static_assets.`alias` String
静的アセットに使用する追加の HTTPS ドメインエイリアス。
cdn.static_assets.`location` String
S3 バケットの DNS ドメイン名。(例: `EXAMPLE-BUCKET.s3.us-west-2.amazonaws.com`)
cdn.static_assets.`path` String
S3 バケットに転送するリクエストを指定するパスパターン。(例: `static/*`)
cdn.`terminate_tls` Boolean
CloudFront での TLS ターミネーションを有効化します。
`http` Map
http セクションには、[Load Balanced Web Service](./lb-web-service.ja.md) が共有するパブリックロードバランサーと、[Backend Service](./backend-service.ja.md) が共有する内部ロードバランサーを設定するためのパラメーターが含まれています。
http.`public` Map
パブリックロードバランサーに関する設定。
http.public.`certificates` Array of Strings
[公開されている AWS Certificate Manager の証明書](https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/gs-acm-request-public.html) ARN のリスト。
ロードバランサーにパブリック証明書をアタッチすることで、Load Balanced Web Service をドメイン名と関連付け、HTTPS で到達することができるようになります。[`http.alias`](./lb-web-service.ja.md#http-alias) を使用してサービスを再デプロイする方法の詳細については、[Developing/Domains](../developing/domain.ja.md#%E6%97%A2%E5%AD%98%E3%81%AE%E6%9C%89%E5%8A%B9%E3%81%AA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B) ガイドを参照してください。
http.public.`access_logs` Boolean or Map
[Elastic Load Balancing のアクセスログ](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/application/load-balancer-access-logs.html)を有効にします。
`true` を指定した場合、Copilot が S3 バケットを作成し、そこにパブリックロードバランサーがアクセスログを保存するようになります。
```yaml
http:
public:
access_logs: true
```
ログのプレフィックスをカスタマイズすることができます。
```yaml
http:
public:
access_logs:
prefix: access-logs
```
また、Copilot が作成した S3 バケットを使用するのではなく、自分で作成した S3 バケットを使用することも可能です。
```yaml
http:
public:
access_logs:
bucket_name: my-bucket
prefix: access-logs
```
http.public.access_logs.`bucket_name` String
アクセスログの保存先となる既存の S3 バケット名。
http.public.access_logs.`prefix` String
ログオブジェクトのプレフィックス。
http.public.`ssl_policy` String
任意項目。 パブリックロードバランサーの HTTPS リスナーに対する SSL ポリシーを指定します。
http.public.`ingress` MapModified in [v1.23.0](../../blogs/release-v123.ja.md#move-misplaced-http-fields-in-environment-manifest-backward-compatible)
パブリックロードバランサーの通信を制限する Ingress ルール。
http.public.`security_groups` Map
パブリックロードバランサーに追加するセキュリティグループの設定。
```yaml
http:
public:
ingress:
cdn: true
```
???- note " "http.public.ingress" は、以前は "http.public.security_groups.ingress" でした"
このフィールドは、 [v1.23.0](../../blogs/release-v123.ja.md). までは、 `http.public.security_groups.ingress` でした。
この変更は、子フィールド [`cdn`](#http-public-ingress-cdn)(当時は唯一の子フィールド)にカスケードされ、以前では、`http.public.security_groups.ingress.restrict_to.cdn` でした。
詳細については、[ブログ記事 v1.23.0](../../blogs/release-v123.ja.md#move-misplaced-http-fields-in-environment-manifest-backward-compatible) を確認してください。
http.public.ingress.`cdn` Boolean[v1.23.0](../../blogs/release-v123.ja.md#move-misplaced-http-fields-in-environment-manifest-backward-compatible) で変更されました
パブリックロードバランサーの Ingress トラフィックが CloudFront ディストリビューションから来るように制限するかどうか。
http.public.ingress.`source_ips` Array of Strings
パブリックロードバランサーへの Ingress トラフィックをソース IP に制限します。
```yaml
http:
public:
ingress:
source_ips: ["192.0.2.0/24", "198.51.100.10/32"]
```
http.`private` Map
内部ロードバランサーの設定。
http.private.`certificates` Array of Strings
[AWS Certificate Manager の証明書](https://docs.aws.amazon.com/ja_jp/acm/latest/userguide/gs.html) ARN のリスト。
ロードバランサーにパブリックまたはプライベート証明書をアタッチすることで、Backend Service をドメイン名と関連付け、HTTPS で到達することができます。[`http.alias`](./backend-service.ja.md#http-alias) を使用して Service を再デプロイする方法の詳細については、[Developing/Domains](../developing/domain.ja.md#%E6%97%A2%E5%AD%98%E3%81%AE%E6%9C%89%E5%8A%B9%E3%81%AA%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AB%E5%90%AB%E3%81%BE%E3%82%8C%E3%82%8B%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B) ガイドを参照してください。
http.private.`subnets` Array of Strings
内部ロードバランサーを配置するサブネット ID。
http.private`ingress` Map[v1.23.0](../../blogs/release-v123.ja.md#move-misplaced-http-fields-in-environment-manifest-backward-compatible) で変更されました
内部ロードバランサーを許可する Ingress ルール。
```yaml
http:
private:
ingress:
vpc: true # VPC 内のトラフィックを内部ロードバランサーで受信できるようにします。
```
???- note " "http.private.ingress" は、以前は "http.private.security_groups.ingress" でした"
このフィールドは、 [v1.23.0](../../blogs/release-v123.ja.md) までは、 `http.private.security_groups.ingress` でした。
この変更は、子フィールド [`vpc`](#http-private-ingress-vpc)(当時は唯一の子フィールド)にカスケードされ、以前では、`http.private.security_groups.ingress.from_vpc` でした。
詳細については、[ブログ記事 v1.23.0](../../blogs/release-v123.ja.md#move-misplaced-http-fields-in-environment-manifest-backward-compatible) を確認してください。
http.private.ingress.`vpc` Boolean[v1.23.0](../../blogs/release-v123.ja.md#move-misplaced-http-fields-in-environment-manifest-backward-compatible) で変更されました
VPC 内から内部ロードバランサーへのトラフィックを有効にするかどうか。
http.private.`ssl_policy` String
任意項目。内部ロードバランサーの HTTPS リスナーに対する SSL ポリシーを指定します。
`observability` Map
observability セクションでは、Environment にデプロイされた Service や Job に関するデータを収集する方法を設定します。
observability.`container_insights` Bool
Environment の ECS クラスターで [CloudWatch の Container Insights](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/ContainerInsights.html) を有効にするかどうか。