Upgrade to Pro — share decks privately, control downloads, hide ads and more …

re:Invent 2022 reCap Container アップデート

re:Invent 2022 reCap Container アップデート

More Decks by kashinoki38 - Yasuhiro Horiuchi

Other Decks in Technology

Transcript

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

    rights reserved. re:Invent 2022 reCap Container アップデート 堀内 保大 ソリューションアーキテクト AWS Japan G.K.
  2. 自己紹介 堀内 保大 (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
  3. © 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
  4. ECS タスクのスケールイン保護が可能に Amazon ECS タスク タスク タスク ECS サービス スケールイン保護

    処理中のタスクをスケールインやデプロイ時のタスクの終了から保護 7
  5. スケールイン保護を有効にする ECS API / ECS コンテナエージェントエンドポイントを利用 タスク Fargate / コンテナインスタンス

    Amazon ECS $ECS_AGENT_URI/task- protection/v1/state スケールイン保護 ユーザー UpdateTaskProtection API スケールイン保護 ECS コンテナ エージェント 8
  6. © 2022, Amazon Web Services, Inc. or its affiliates. All

    rights reserved. Fargate でエフェメラルストレージの利用状況が 取得可能に 9 タスク Fargate タスク タスクメタデータエンドポイント ECS コンテナ エージェント Amazon ECS Amazon CloudWatch Container Insights
  7. Amazon ECS Service Connect ECS サービス間のアプリケーションネットワークの構築が容易に Amazon ECS service connect

    サービスのデプロイ 分かりやすい ECS サービスの 識別名を設定 サービス間の接続 ECS サービスの識別名で 信頼性のある接続を確立 メトリクスの取得 ECS コンソールや CloudWatch で トラフィックのメトリクスを確認 アプリケーションの定義 タスク定義でアプリケーション のエンドポイントを設定 10
  8. ECS Service Connect service の作成 コンテナインスタンス ユーザー Amazon ECS ECS

    コンテナ エージェント Configure ECS タスク Service Connect エージェント Agent コンテナ AWS Cloud Map Configure Register Fetch 11
  9. 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
  10. 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
  11. 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
  12. 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 クラスターで利用可能
  13. Amazon VPC Lattice 20 • サービス同士をシンプルかつ安全に接続するための アプリケーション層のネットワークサービス ▪ サービスディスカバリ、リクエストルーティング、 ロードバランシング、認証認可、可観測性など

    • クライアントとサービス間の接続を抽象化する サービスネットワークを作成 ▪ サービスの検出と接続は自動的に実行される • AWS Gateway Controller for Kubernetes も提供予定 • 米国西部 (オレゴン) リージョンでプレビューを開始 (現時点で日本のリージョンは未対応)
  14. 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
  15. まとめ 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
  16. Thank you! © 2023, Amazon Web Services, Inc. or its

    affiliates. All rights reserved.