Slide 1

Slide 1 text

Tokyo 2023/02/02

Slide 2

Slide 2 text

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved. re:Invent 2022 reCap Container アップデート 堀内 保大 ソリューションアーキテクト AWS Japan G.K.

Slide 3

Slide 3 text

自己紹介 堀内 保大 (Yasuhiro Horiuchi) • Solutions Architect, DNB-IM • コンテナ バックグラウンド • 前職:SIerで多岐にわたるシステムへの性能関連の技術支援 (性能試験、監視、チューニング、非機能設計 etc) 好きなAWSサービス コンテナ関連が好きです!! • Amazon Elastic Kubernetes Service (EKS) • AWS Fargate • Amazon Managed Service for Prometheus (AMP) 趣味 • 馬の削蹄の動画を見ること @ka_shino_ki [email protected] 3

Slide 4

Slide 4 text

© 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. アジェンダ • Amazon Elastic Container Service (Amazon ECS) • Amazon Elastic Kubernetes Service (Amazon EKS) • その他 • Red Hat OpenShift Service on AWS (ROSA) • Finch 5

Slide 5

Slide 5 text

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Slide 6

Slide 6 text

ECS タスクのスケールイン保護が可能に Amazon ECS タスク タスク タスク ECS サービス スケールイン保護 処理中のタスクをスケールインやデプロイ時のタスクの終了から保護 7

Slide 7

Slide 7 text

スケールイン保護を有効にする ECS API / ECS コンテナエージェントエンドポイントを利用 タスク Fargate / コンテナインスタンス Amazon ECS $ECS_AGENT_URI/task- protection/v1/state スケールイン保護 ユーザー UpdateTaskProtection API スケールイン保護 ECS コンテナ エージェント 8

Slide 8

Slide 8 text

© 2022, Amazon Web Services, Inc. or its affiliates. All rights reserved. Fargate でエフェメラルストレージの利用状況が 取得可能に 9 タスク Fargate タスク タスクメタデータエンドポイント ECS コンテナ エージェント Amazon ECS Amazon CloudWatch Container Insights

Slide 9

Slide 9 text

Amazon ECS Service Connect ECS サービス間のアプリケーションネットワークの構築が容易に Amazon ECS service connect サービスのデプロイ 分かりやすい ECS サービスの 識別名を設定 サービス間の接続 ECS サービスの識別名で 信頼性のある接続を確立 メトリクスの取得 ECS コンソールや CloudWatch で トラフィックのメトリクスを確認 アプリケーションの定義 タスク定義でアプリケーション のエンドポイントを設定 10

Slide 10

Slide 10 text

ECS Service Connect service の作成 コンテナインスタンス ユーザー Amazon ECS ECS コンテナ エージェント Configure ECS タスク Service Connect エージェント Agent コンテナ AWS Cloud Map Configure Register Fetch 11

Slide 11

Slide 11 text

ECS Service Connect のトラフィックフロー Amazon ECS AWS Cloud Map Service Connect エージェント Service Connect エージェント コンテナ コンテナ Elastic Load Balancing クライアント Frontend サービス Backend サービス http://elb-endpoint ECS タスク 10.1.2.1 ECS タスク 10.1.2.2 http://10.1.2.1:8080 http://0.0.0.0:8080 http://backend:8080 http://10.1.2.2:8080 http://0.0.0.0:8080 12

Slide 12

Slide 12 text

ECS Service Connect のコンセプト namespace ECS クラスター ECS クラスター namespace client service client-server service endpoint client-server service が公開する URL client service client-server service endpoint http://blog:80 13

Slide 13

Slide 13 text

ECS Service Connect の考慮事項(抜粋) • (2022.12.20 時点) その後のアップデートで利用可能に https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html#service-connect-considerations 14

Slide 14

Slide 14 text

ECS Service Connect の利用料金 15

Slide 15

Slide 15 text

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Slide 16

Slide 16 text

AWS Marketplace for containers から EKS クラスターへの直接デプロイが可能に EKS add-ons を経由した管理 Amazon EKS ISVs • サードパーティソフトウェアの 検索やデプロイが容易に • EKS add-ons で管理可能 • 2023.1.25 時点で以下をサポート ➢ Dynatrace Container Agent ➢ Kpow for Apache Kafka (SE-LM) ➢ Kubecost ➢ Teleport OSS ➢ Tetrate Istio Distro ➢ Upbound Universal Crossplane (UXP) ➢ Datree 18

Slide 17

Slide 17 text

Nitro Enclaves Kubernetes Device Plugin がリリース 19 aws/aws-nitro-enclaves-k8s-device-plugin: Nitro Enclaves Kubernetes Device Plugin https://github.com/aws/aws-nitro-enclaves-k8s-device-plugin apiVersion: apps/v1 kind: Deployment metadata: name: unique_deployment_name spec: replicas: 1 selector: matchLabels: app: application_name template: metadata: labels: app: application_name spec: containers: - name: unique container_name image: docker_image_name:image_tag command: ["docker_image_entry_point"] resources: limits: aws.ec2.nitro/nitro_enclaves: "1” hugepages-2Mi: 768Mi cpu: 250m requests: aws.ec2.nitro/nitro_enclaves: "1” hugepages-2Mi: 768Mi • Nitro Enclaves を利用する Pod の 管理が容易に • Device Plugin を OSS で提供 • EKS やセルフマネージドな Kubernetes クラスターで利用可能

Slide 18

Slide 18 text

Amazon VPC Lattice 20 • サービス同士をシンプルかつ安全に接続するための アプリケーション層のネットワークサービス ▪ サービスディスカバリ、リクエストルーティング、 ロードバランシング、認証認可、可観測性など • クライアントとサービス間の接続を抽象化する サービスネットワークを作成 ▪ サービスの検出と接続は自動的に実行される • AWS Gateway Controller for Kubernetes も提供予定 • 米国西部 (オレゴン) リージョンでプレビューを開始 (現時点で日本のリージョンは未対応)

Slide 19

Slide 19 text

EKS アドオンで柔軟な設定変更が可能に 21 • PRESERVE パラメーターの追加 ➢ アドオンの更新時、ユーザーが変更した フィールドの値を保持したままアップデート Corefile: ---- .:53 { cache 15 } Corefile: ---- .:53 { cache 15 } resolveConflicts: PRESERVE • configurationValues パラメーターの追加 • アドオンの作成時や更新時、EKS API で アドオンの設定変更が可能に • アドオンごとに変更可能なフィールドは JSON schema で確認 { "env": { "ENABLE_PREFIX_DELEGATION": "true" } } Containers: aws-node: Environment: ENABLE_PREFIX_DELEGATION: true configurationValues: file://example.json example.json coredns coredns

Slide 20

Slide 20 text

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Slide 21

Slide 21 text

クラスター作成が容易に 23

Slide 22

Slide 22 text

Control Plane をサービス側でホスティング 24

Slide 23

Slide 23 text

© 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.

Slide 24

Slide 24 text

Finch 26 Linux コンテナをビルド、実行、公開するための新しいコマンドラインクライアント runfinch/finch: The Finch CLI an open source client for container development https://github.com/runfinch/finch

Slide 25

Slide 25 text

Linux 外でコンテナを開発、実行するスタック 27 VM 管理、イメージ管理、コンテナランタイム、クライアントツールなど多くの要素が必要

Slide 26

Slide 26 text

コンテナを開発するための様々なツール 28 OSS、商用問わず多数存在する

Slide 27

Slide 27 text

Finch - AWS が提供するコンテナ開発ツールのディストリビューション 29 Lima の config と ネイティブクライアント、インストーラーのセット

Slide 28

Slide 28 text

まとめ 30 ECS • ECS タスクのスケールイン保護が可能に • Fargate でエフェメラルストレージの 利用状況が取得可能に • Amazon ECS Service Connect EKS • Amazon EKS が Kubernetes 1.24 のサポートを開始 • AWS Marketplace for containers から EKS クラスターへの直接デプロイが可能に • Nitro Enclaves Kubernetes Device Plugin がリリース • Amazon VPC Lattice • EKS アドオンで柔軟な設定変更が可能に Other • [ROSA] クラスター作成が容易に • [ROSA] Control Plane をサービス側で ホスティング • Finch

Slide 29

Slide 29 text

Thank you! © 2023, Amazon Web Services, Inc. or its affiliates. All rights reserved.