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

2021年コンテナ最前線〜今AWSでコンテナホストするならなにが現実解なのか?〜

 2021年コンテナ最前線〜今AWSでコンテナホストするならなにが現実解なのか?〜

AWSにおけるコンテナをホストする手段は、格段に進化を続けています。ECSからはじまり、EKS、Fargate、App Runner、Proton,Lambdaコンテナー。このセッションでは、それら手段を比較し、今あなたが、コンテナをAWS環境にホストするにあたり必要なものを選択するための羅針盤となる情報をお届けします。

濱田孝治

October 07, 2021
Tweet

More Decks by 濱田孝治

Other Decks in Technology

Transcript

  1. 2021年コンテナ最前線
    今AWSでコンテナホストするなら
    なにが現実解なのか︖
    2021/10/7
    CX事業本部 MAD事業部
    濱⽥孝治(ハマコー)

    View full-size slide

  2. 2
    とりあえず
    いつものアレやりますか

    View full-size slide

  3. 5
    ⾃⼰紹介
    濱⽥孝治(ハマコー)
    • CX事業本部 MAD事業部⻑
    • Japan APN Ambassador 2020
    • JAWS-UG コンテナ⽀部運営
    • 好きなサービス︓ECS, EKS, CloudFormation
    • 好きな⾔葉「わっしょい」
    • @hamako9999
    • 好きなゲームタイトル︓Elder Scrolls Online

    View full-size slide

  4. 6
    MAD
    (Modern Application Development)

    View full-size slide

  5. 7
    MAD(Modern Application Development)
    AWSサービス︓Amazon
    DynamoDB、Amazon API
    Gateway、AWS IoT、AWS
    Step Functions、AWS
    Amplify、AWS AppSync、
    AWS Glue、Amazon Kinesis、
    Amazon Athena
    Google Cloudサービス︓
    Cloud Firestore、Cloud SQL、
    Cloud Pub/Sub
    Infrastructure as Code︓
    AWS CDK、AWS
    CloudFormation、AWS SAM、
    Serverless Framework、
    Terraform
    CI/CD︓
    Codeシリーズ、CircleCI、
    GitHub Actions

    View full-size slide

  6. +"846(ίϯςφࢧ෦
    !LJUUB
    !UPSJDMT
    !TFJZBLVCP
    !IBNBLP
    !NTZ

    View full-size slide

  7. 9
    今⽇お話することの意義

    View full-size slide

  8. 10
    背景
    Amazon ECSのGAが、2015年の4⽉9⽇、そして2017
    年のre:Inventでは、EKSとFargateが発表されました。
    今現在も機能追加の勢いは全く衰えていないです。
    なんかもう、よくわからんの増えましたよね︖すぽっと
    すぽっととか、なんとかぷろばいだーとか、間にスペー
    スいれないと刺されるやつとか、ANYWHEREとかとか
    他の界隈からここに来た⽅は、ぶっちゃけ途⽅にくれる
    のではと⽇々感じてます。

    View full-size slide

  9. 11
    内容について
    対象リスナー
    • これからAWSでコンテナワークロードをホストしようと検
    討されているかた
    • 現在、AWSでコンテナをプロダクション運⽤しているが、
    さらなる最適化に余念が無い⽅
    今⽇のゴール
    • 最初に始めるときに指針としてもらう
    • コンテナワークロード改善のヒントをなにか掴んでもらう

    View full-size slide

  10. 12
    喋らないこと
    今回のセッションは時間の都合もあり、コンテナ実⾏環境とコ
    スト最適化に絞ってお話します。これら合わせて検討が必要な
    内容はほとんど含まれていないので、ご了承ください
    - デプロイ
    - セキュリティ
    - ネットワーク
    - ロギング
    - 監視

    View full-size slide

  11. 13
    リラックスして
    良い時間にできればと思います︕

    View full-size slide

  12. 14
    Agenda(当初想定)
    • 基礎のおさらい
    • ECR、ECR Public
    • ECS、EKS、Fargate
    • インフラ最適化
    • Savings Plans
    • Capacity Provider
    • Graviton Processor
    • バッチ処理系
    • Step Functions + Fargate
    • AWS Batch
    • 次世代系
    • Proton
    • App Runner
    • Lightsail Container
    • Anywhere系
    • EKS Anywhere
    • ECS Anywhere
    • まとめ

    View full-size slide

  13. 15
    Agenda(実際しゃべるやつ)
    • 基礎のおさらい
    • ECR、ECR Public
    • ECS、EKS、Fargate
    • インフラ最適化
    • Savings Plans
    • Capacity Provider
    • Graviton Processor
    • バッチ処理系
    • Step Functions + Fargate
    • AWS Batch
    • 次世代系
    • Proton
    • App Runner
    • Lightsail Container
    • Anywhere系
    • EKS Anywhere
    • ECS Anywhere
    • まとめ

    View full-size slide

  14. 16
    Agenda
    • 基礎のおさらい
    • ECR、ECR Public
    • ECS、EKS、Fargate
    • インフラ最適化
    • Savings Plans
    • Capacity Provider
    • Graviton Processor
    • バッチ処理系
    • Step Functions + Fargate
    • AWS Batch
    • 次世代系
    • Proton
    • App Runner
    • Lightsail Container
    • Anywhere系
    • EKS Anywhere
    • ECS Anywhere
    • まとめ

    View full-size slide

  15. 17
    基礎のおさらい

    View full-size slide

  16. 18
    AWSにおける代表的なコンテナ関連サービス
    Amazon ECS
    Amazon ECR
    Amazon ECR Public
    AWS Fargate
    Amazon EKS

    View full-size slide

  17. 19
    ECR
    ECR Public

    View full-size slide

  18. 20
    説明しよう。そしてこれらは別物です。
    Amazon ECR Amazon ECR Public

    View full-size slide

  19. 21
    別物であることの証
    ユーザーガイドが別
    なので
    APIも別

    View full-size slide

  20. 22
    別物であることの証
    AWS CLIも
    もちろん別

    View full-size slide

  21. 23
    Amazon Elastic Container Registry(ECR)とは
    • AWSが提供する完全マネージド型のDockerコンテナ
    レジストリ
    • ⾃前のコンテナリポジトリの運⽤やインフラ管理が
    不要
    • AWSと完全に統合されているので、従来の⽅法
    (IAM)でアクセス権の管理が可能
    • アクセスするにはAWSアカウントをベースとした認
    証情報が必須

    View full-size slide

  22. 24
    ECR Publicとは
    • 今までAWSの認証情報が必須だったECRに、パブ
    リックで誰でもアクセス可能に︕︕
    • AWSアカウントがあれば、誰でもECRを使ってイ
    メージを公開可能
    • 単純に⾔うとECR PublicはDocker Hubの代替とし
    て利⽤が可能になる

    View full-size slide

  23. 25
    ECR Publicはあなたの⼿元で即動く

    View full-size slide

  24. 26
    ECR Public Galleryもいつでも利⽤可能
    https://gallery.ecr.aws/

    View full-size slide

  25. 27
    ECR Publicの気になるお値段
    イメージホスティング
    • ストレージ $0.10/GB/month
    • 無料で⽉50GBまで
    イメージプル(データ転送)
    • AWS認証なし︓500GB/⽉/source ip
    • AWS認証あり
    • AWS外 0.09 USD/GB
    • AWS内 無料
    Docker Hub
    匿名ユーザ︓
    IPアドレスで6時間100回
    認証ユーザ︓
    ユーザごとに6時間200回

    View full-size slide

  26. 28
    ECS
    EKS
    Fargate

    View full-size slide

  27. 29
    順番に説明しよう
    Amazon ECS AWS Fargate
    Amazon EKS

    View full-size slide

  28. 30
    AWSのコンテナサービスを理解するためには
    「コントロールプレーン」
    「データプレーン」
    この違いを知る必要がある

    View full-size slide

  29. 31
    コントロールプレーンとは
    コンテナの管理をする場所
    • 動く場所の管理
    • VPC、Subnet、Load Balancer、Security Group
    • コンテナ⽣死の管理
    • 監視設定、⾃動復旧
    • コンテナ数の管理
    • 負荷に応じたコンテナ数のオートスケール

    View full-size slide

  30. 32
    データプレーンとは
    実際にコンテナが稼働する場所
    • コントロールプレーンからの指⽰にしたがって起動
    • コンピューティングリソースを消費(従量課⾦対
    象)
    • 状態をコントロールプレーンに通知

    View full-size slide

  31. 33
    AWSのコンテナ関連サービスをまとめた図
    データ
    プレーン
    実際にコンテナが稼働する場所
    コントロール
    プレーン
    コンテナの管理をする場所
    ECS EKS
    EC2 Fargate

    View full-size slide

  32. 34
    現状の呼ばれ⽅とラベリング例
    ECS
    (on EC2)
    ECS
    (on Fargate)
    EKS
    (on EC2)
    EKS
    (on Fargate)
    ECS
    EC2
    EKS EKS
    ECS
    Fargate EC2 Fargate

    View full-size slide

  33. 35
    コントロールプレーン⽐較
    Amazon ECS

    View full-size slide

  34. 36
    Amazon Elastic Container Service(ECS)とは
    AWS完全マネージドのコンテナオーケストレーションツール
    • 簡単なオートスケール設定
    • ロードバランサー統合
    • コンテナのIAM権限管理
    • コンテナのセキュリティグループ管理
    • CloudWatch メトリクス統合
    • CloudWatch Logs統合
    • スケジュール実⾏機能

    View full-size slide

  35. 37
    Amazon Elastic Container Service(ECS)とは
    AWS完全マネージドのコンテナオーケストレーションツール
    • 簡単なオートスケール設定
    • ロードバランサー統合
    • コンテナのIAM権限管理
    • コンテナのセキュリティグループ管理
    • CloudWatch メトリクス統合
    • CloudWatch Logs統合
    • スケジュール実⾏機能
    元がAWSフルマネージドなサービスのため
    他のAWSサービスとの連携が簡単
    (EKSと⽐べて)

    View full-size slide

  36. クラスター
    38
    ECSの構造の階層
    サービス
    タスク定義
    コンテナ定義
    ECSの構造は結構複雑
    😫

    View full-size slide

  37. タスク定義
    39
    ECSの構造解説(タスク定義、コンテナ定義)
    EC2
    Fargate
    タスクメモリ
    タスクCPU
    or
    ⽣成
    コンテナ定義
    イメージのURI
    ポートマッピング
    ヘルスチェック
    エントリポイント
    コマンド
    作業ディレクトリ
    環境変数
    ログ設定
    docker runで利⽤す
    るコマンドは⼀通り
    利⽤可能

    View full-size slide

  38. 40
    ECSの構造解説(1タスク複数コンテナ定義)
    <コンテナを分ける理由>
    ・改修のプロセスが異なる(例︓Nginxの設
    定とアプリケーションの改修)ため、別々
    にデプロイしたい
    ・awslogsにログを区別して出⼒したい(同
    ⼀コンテナ上のログは、CloudWatch Logsの
    グループが同⼀となる)
    同⼀タスク内のコンテナは、同じホストを
    共有しポート番号での通信が可能。同⼀ホ
    ストなので、レイテンシ上の影響は無い。

    View full-size slide

  39. クラスター
    サービス定義
    サービス定義
    サービス
    41
    ECSの構造解説(クラスター、サービス)
    元ネタのタスク定義
    タスクの数
    デプロイ定義
    VPC、サブネット
    セキュリティグループ
    ALB(or NLB)定義
    オートスケール設定
    タスク
    タスク
    タスク
    タスク




    タスク
    定義
    起動
    Amazon ECS
    Application Load
    Balancer

    View full-size slide

  40. 42
    ECSの構造解説(サービスの具体例)
    タスク
    定義
    起動
    443(HTTPS)
    80(HTTP)
    80(HTTP)
    80(HTTP)
    Application Load
    Balancer

    View full-size slide

  41. 43
    コントロールプレーン⽐較
    Amazon EKS

    View full-size slide

  42. 44
    Kubernetesとは
    コンテナ運⽤⾃動化のための
    オープンソースプラットフォーム
    • Googleの⻑年にわたるコンテナ運⽤の知⾒を集約して
    オープンソース化
    • Cloud Native Computing Foundation 配下
    • ⾃動デプロイ、⾃動スケーリング、スケジューリングの⾃

    • 略称は「k8s」

    View full-size slide

  43. 45
    EKSとは
    AWSマネージドなKubernetesサービス
    • 正式名称はAmazon Elastic Container Service for
    Kubernetes
    • Kubernetes正式準拠
    • Kubernetesコミュニティが作成した既存のプラグイ
    ンやツールを利⽤できる

    View full-size slide

  44. 46
    EKSとは
    AWSマネージドなKubernetesサービス
    • 正式名称はAmazon Elastic Container Service for
    Kubernetes
    • Kubernetes正式準拠
    • Kubernetesコミュニティが作成した既存のプラグイ
    ンやツールを利⽤できる
    元がオープンソースプロダクトなため、
    Kubernetes⽤に開発されたツールを
    広く使うことができる

    View full-size slide

  45. 47
    データプレーン⽐較
    AWS Fargate

    View full-size slide

  46. 48
    AWS Fargateとは
    • サーバーを管理することなくコンテナを実⾏
    • 仮想マシンのクラスターのプロビジョニングが不要
    • ECSおよびEKSに対応したコンピューティングエンジ

    →コンソールからEC2が全く⾒えない

    View full-size slide

  47. 49
    AWS Fargateとは(料⾦⾯)
    • コンピューティングリソースに対しての料⾦として
    はEC2より割⾼(1割〜2割)
    • ホストインスタンスの管理が省ける
    • EC2の余剰リソースが不要
    • セキュリティはAWS側で常にカバー

    View full-size slide

  48. 50
    AWS Fargateとは(運⽤メリット)

    View full-size slide

  49. 51
    Fargateの今
    GA後間もない2018年に⽐べてできることは格段に増えた
    →現在では確実にEC2に⽐べてファーストチョイス
    やりたいこと 2018年初頭 現在
    コンテナ内へのログイン 基本無理 ECS Exec
    ログドライバ
    awslogs
    (CloudWatch Logsのみ)
    Firelensでどこでも出せる
    EFS 利⽤不可 利⽤可能
    スポット系 利⽤不可 Capacity Provider
    GPUインスタンス 利⽤不可 利⽤不可
    Windowsコンテナ 利⽤不可 利⽤不可

    View full-size slide

  50. 52
    データプレーンとして何を使うか(ECSの場合)
    特にユースケースで制約がなければ
    EC2ではなくFargateを使うのが
    今のデフォルト

    View full-size slide

  51. 53
    データプレーンとして何を使うか(EKSの場合)
    EKS on Fargateは考慮事項や制約が
    多く有るので慎重に検討したほうが良い
    安パイにふるならEKS on EC2

    View full-size slide

  52. 54
    Agenda
    • 基礎のおさらい
    • ECR、ECR Public
    • ECS、EKS、Fargate
    • インフラ最適化
    • Savings Plans
    • Capacity Provider
    • Graviton Processor
    • バッチ処理系
    • Step Functions + Fargate
    • AWS Batch
    • 次世代系
    • Proton
    • App Runner
    • Lightsail Container
    • Anywhere系
    • EKS Anywhere
    • ECS Anywhere
    • まとめ

    View full-size slide

  53. 55
    インフラ最適化

    View full-size slide

  54. 56
    インフラ最適化とは︖
    EC2もFargateもデフォルトで使うだけではもった
    いない︕購⼊⽅法や設定の⼯夫でコストを下げつつ
    パフォーマンスが出る構成を組むことが可能
    ここでは、以下の3点について改めて説明し、皆さ
    んの現場での採⽤可能性をお伝えします
    • Savings Plans
    • Capacity Provider
    • Graviton Processor

    View full-size slide

  55. 57
    Savings Plans

    View full-size slide

  56. 58
    Savings Plansとは︖
    • 1年または3年の期間で⼀定量のコンピューティングの利
    ⽤を前提に割引できる仕組み。契約量までは、使⽤料⾦が
    割引される
    • Compute Savings Plansであれば、FargateやLambdaに
    も割引が適⽤可能
    • オハイオリージョン、3年、全額払いで、52%OFF︕︕
    • 構成を⼀切変更すること無く対応可能(コンソールでのポ
    チポチのみ)

    View full-size slide

  57. 59
    Savings Plansの計算
    https://aws.amazon.com/jp/savingsplans/
    compute-pricing/
    いつでもカリ
    キュレーターで
    計算可能

    View full-size slide

  58. 60
    実環境での利⽤状況を⾒た試算も可能
    CostExplorer
    →Savings Plans
    →推奨事項

    View full-size slide

  59. 61
    Savings Plansの参考ブログ
    https://dev.classmethod.jp/articles/sp-2020-spring-youtube/

    View full-size slide

  60. 62
    Savings Plansとの付き合い⽅
    ノーリスクでコスト節約できる可能性がある
    まずはコストエクスプローラーの
    Savings Plansの推奨事項
    確認ぐらいはしましょう︕

    View full-size slide

  61. 63
    Capacity Provider

    View full-size slide

  62. 64
    Capacity Providerとは
    • ECSにおけるタスク実⾏のインフラをより柔軟に設
    定する仕組み
    • 元々ECS on EC2でもスポットインスタンスを活⽤で
    きていたが、それをもっと柔軟に簡素にできるよう
    になった
    • それぞれで使い⽅がぜんぜん違う
    • ECS on EC2
    • ECS on Fargate

    View full-size slide

  63. 65
    Capacity Providerの構造(EC2)
    Auto Scaling group
    Capacity Provider
    Auto Scaling group
    Capacity Provider
    Auto Scaling group
    Capacity Provider
    Capacity
    Provider
    Strategy



    • VPC
    • サブネット
    • AMI
    • インスタンスタイプ
    • オンデマンド or スポット
    ECS Cluster
    Auto Scaling group

    View full-size slide

  64. 66
    Capacity Providerの構造(Fargate)
    FARGATE
    Capacity Provider
    FARGATE_SPOT
    Capacity Provider
    Capacity
    Provider
    Strategy
    ECS Cluster
    Fargateで登録できるCapacity Provider
    はFARGATEとFARGATE_SPOTのみ

    View full-size slide

  65. 67
    FARGATE_SPOTとは
    • EC2におけるスポットインスタンスのようにスポッ
    トでFARGATEを使う仕組み
    • オンデマンドとは違うので、リージョンやAZでの利
    ⽤状況に応じて突如終了される
    • Task State Change Events発⾏後SIGTERM
    • お値段70%OFF(⼀律)

    View full-size slide

  66. 68
    Capacity Provider Strategyとは
    • 複数のCapacity Providerの組み合わせ⽐率を決定
    • Base︓最⼩タスク数(1つのみ指定)
    • Weight︓タスク数⽐率

    View full-size slide

  67. 69
    Spot系利⽤における注意点
    中断への対応
    • スポットインスタンスでは、事前に
    ECS_ENABLE_SPOT_INSTANCE_DRAINING=trueに設定
    • コンテナ⾃体もSIGTERM発⽣時にGraceful Shutdownができ
    るように設計
    リソースの再確保
    • 基本的にECS側で適切なサービス設定をしておけば、⾃動的にタ
    スクが起動するが、即時のリソース確保が確約されるわけではな

    View full-size slide

  68. 70
    Spot系を実際導⼊するときのやりやすさ
    Fargate Spotを開発環境にいれる
    • 何も考えずに、該当サービスの全タスクをFargate Spotにしてしまう
    のもあり
    • 定期的に落ちるのも開発環境なら許容できる場合もある
    • コンテナをイミュータブルにしていつ落ちても問題なく使える状態を
    再現する(Graceful Shutdown含めて)にも有⽤
    本番環境への展開は⼗分な検証をもって
    • 概念が多く、ECS on EC2の場合は特に複雑
    • オートスケールFargateサービスを使っているのであれば、スケーリ
    ングタスクをFargate Spotにするのが⽐較的取り組みやすい

    View full-size slide

  69. 71
    スポット関連参考資料
    https://pages.awscloud.com/rs/112-TZM-766/images/20210826-Cloud-Container-Optimization-Keynote.pdf

    View full-size slide

  70. 72
    ECS on EC2での参考事例
    https://pages.awscloud.com/rs/112-TZM-766/images/20210826-Cloud-
    Container-Optimization-Silveregg.pdf

    View full-size slide

  71. 73
    Capacity Providerとの付き合い⽅
    難しい
    まずは開発環境のFargateあたりから
    徐々に試していきましょう

    View full-size slide

  72. 74
    AWS Graviton Processor

    View full-size slide

  73. 75
    Graviton Processorとは︖
    AWSが独⾃に作成したARMアーキテクチャのプロセッサ
    • 第⼀世代はAmazon EC2 A1インスタンスとして動作
    • 第⼆世代のGraviton2プロセッサは第⼀世代に⽐べて⼤幅に改良されたパフォーマン
    スを発揮
    x86ベースインスタンスよりハイコストパフォーマンス
    • 最⼤40%のパフォーマンス向上
    • 20%安い
    • 電⼒あたりのパフォーマンス向上(2〜3.5倍)
    幅広いエコシステムをサポート
    • Amazon Linux2, Red Hat, SUSE, Ubuntu, その他Linux
    • ECS, EKS, ECR, CodeBuild, CodeCommit, CodePipeline, CodeDeploy,
    CloudWatch

    View full-size slide

  74. 76
    コンテナワークロードでGraviton2を使うには︖
    • ARMアーキテクチャでのコンテナビルド
    • コンテナレジストリへの格納
    • Graviton2プロセッサ搭載EC2インスタンス(M6g)
    上でコンテナを起動

    View full-size slide

  75. 77
    参考ブログ
    https://dev.classmethod.jp/articles/docker-on-graviton2/

    View full-size slide

  76. 78
    CI/CD含めた構成要素でのARMコンテナの利⽤
    コンテナビルド(マルチアーキテクチャ)
    • CodeBuild
    • GitHub Actions
    コンテナレジストリへの格納(マルチアーキテクチャ対応)
    • Docker Hub
    • ECR
    • ECR Public
    コンテナコンピューティングリソースの利⽤
    • EC2インスタンス(M6g)
    • Fargateは未対応

    View full-size slide

  77. 79
    コンテナビルド環境でのマルチアーキテクチャ対応
    コンテナビルド環境においてPlatformを設定すること
    で、それぞれのアーキテクチャに応じたコンテナをビル
    ドすることが可能
    CodeBuildの場合
    • コンピューティングタイプにARMを指定
    • ビルド環境のコンピューティングタイプ - AWS CodeBuild
    GitHub Actionsの場合
    • PlatForm指定でビルド可能
    • [DOCKER_TARGET_PLATFORM: linux/arm/v7]

    View full-size slide

  78. 80
    コンテナレジストリへのプッシュ
    コンテナレジストリへマルチアーキテクチャの
    コンテナイメージをプッシュする場合、専⽤の
    Manifestリストを⽤意する必要あり
    • 現状、以下の3種共にマルチアーキテクチャのコンテナイ
    メージをサポート
    • Docker Hub
    • ECR
    • ECR Public

    View full-size slide

  79. 81
    コンテナレジストリへのプッシュ
    実⾏⽅法はそれぞれのマニュアルを参照
    • Docker Hub︓(Multi-arch build and images, the
    simple way - Docker Blog)
    • ECR︓(amazon-ecr-user-guide/docker-push-multi-
    architecture-image.md)
    • ECR Public︓(Pushing a multi-architecture image -
    Amazon ECR Public)

    View full-size slide

  80. 82
    コンピューティングリソースでの利⽤
    ECS、EKS共に、EC2インスタンス(M6g)を
    サポート
    • EKSのマネージドノードグループでARMアーキテクチャ対
    応済み(Amazon EKS 最適化 Amazon Linux AMI -
    Amazon EKS)
    • ECSではAmazon ECS-optimized Amazon Linux2
    (arm64)AMIを利⽤
    FargateはGraviton2未対応

    View full-size slide

  81. 83
    皆さん、先⽇こんな
    アップデートがあったのをご存知ですか︖

    View full-size slide

  82. 84
    LabmdaのランタイムでGraviton2が利⽤可能に
    https://dev.classmethod.jp/articles/lambda-support-graviton2-processor/
    9⽉30⽇ピッ
    チピチのアッ
    プデート

    View full-size slide

  83. 85
    超絶乱暴に予測すると
    FireCracker
    Lambda Fargate

    View full-size slide

  84. 86
    超絶乱暴に予測すると
    FireCracker
    Lambda Fargate
    Graviton2
    対応済み

    View full-size slide

  85. 87
    超絶乱暴に予測すると
    FireCracker
    Lambda Fargate Graviton2絶対来る
    よね︕︖コレ︕︕
    Graviton2
    対応済み

    View full-size slide

  86. 88
    Graviton2がFargateにやってくる⽇も近い︖
    FargateのGraviton2対応はAWSの最近の潮
    流として必然の流れ
    2021年のre:Invent前後で発表されるのでは︖
    おそらく最初は、Fargate Spotが使えなかったりある
    程度の制約はありそうだが、今の内にマルチアーキテク
    チャでのビルドを試してM6gインスタンスで動かして
    みると即利⽤できるのでウォーミングアップしておくと
    良いよ︕

    View full-size slide

  87. 89
    ツイートしよう︕のコーナー
    皆さんが勝⼿に予測する
    FargateのGraviton2対応⽇を
    つぶやきましょう︕
    #devio2021

    View full-size slide

  88. 90
    参考資料(絶対参考になります)
    Dockerの「マルチCPUアーキテクチャ」に対応したイ
    メージをビルドする | DevelopersIO
    [AWS Black Belt Online Seminar] CON437 AWS
    Graviton2 でマルチアーキテクチャのデリバリーパイ
    プラインを作成する

    View full-size slide

  89. 91
    Agenda
    • 基礎のおさらい
    • ECR、ECR Public
    • ECS、EKS、Fargate
    • インフラ最適化
    • Savings Plans
    • Capacity Provider
    • Graviton Processor
    • バッチ処理系
    • Step Functions + Fargate
    • AWS Batch
    • 次世代系
    • Proton
    • App Runner
    • Lightsail Container
    • Anywhere系
    • EKS Anywhere
    • ECS Anywhere
    • まとめ

    View full-size slide

  90. 92
    AWS App Runner

    View full-size slide

  91. 93
    AWS App Runnerとは
    • 2021年5⽉18⽇にリリースされた、AWSの新しいコ
    ンテナホスティング環境(フルマネージド型)
    • ECSでもEKSでもFargateでもない、完全新規の環境
    • 様々なAWSリソースをユーザーから完全に隠蔽する
    ことで、開発者がコンテナのホスティングに注⼒す
    ることを意図したサービス

    View full-size slide

  92. 94
    ECSの場合のAWSリソース
    ECSでコンテナ環境を構築
    するときに、意識する必要
    があるサービス群
    https://speakerdeck.com/iselegant/20210628-jawsug-container-19-final?slide=37

    View full-size slide

  93. 95
    App Runnerの場合のAWSリソース
    App Runnerの時に意識する
    AWSリソース
    もろもろ隠蔽されているた
    め、ユーザーが意識する
    AWSリソースが圧倒的にす
    くない
    https://speakerdeck.com/iselegant/20210628-jawsug-container-19-final?slide=38

    View full-size slide

  94. 96
    AWS App Runnerでできること
    • オートスケール設定(同時実⾏数、最⼤/最⼩サイ
    ズ)
    • カスタムドメイン(含証明書管理)
    • ロギング(CloudWatch Logs)
    • CI/CD(コンテナ or コードベース)
    • 監視(CloudWatch Alarm)

    View full-size slide

  95. 97
    AWS App Runnerでできないこと
    • VPCリソースへのアクセス
    • AuroraなどVPCが必須なサービスに通信する⽅法が無

    • ロードマップに載っている
    • WAFが利⽤できない
    • ALBも⾒えないのでWAFも使えない
    • ロードマップに載っている

    View full-size slide

  96. 98
    AWS App Runnerとの付き合い⽅
    基本的には
    できないことを機能不⾜と捉えるのではなく
    考えなくて良い=メリット
    という付き合い⽅をオススメする

    View full-size slide

  97. 99
    Agenda
    • 基礎のおさらい
    • ECR、ECR Public
    • ECS、EKS、Fargate
    • インフラ最適化
    • Savings Plans
    • Capacity Provider
    • Graviton Processor
    • バッチ処理系
    • Step Functions + Fargate
    • AWS Batch
    • 次世代系
    • Proton
    • App Runner
    • Lightsail Container
    • Anywhere系
    • EKS Anywhere
    • ECS Anywhere
    • まとめ

    View full-size slide

  98. 100
    Amazon ECS Anywhere

    View full-size slide

  99. 101
    Amazon ECS Anywhereとは
    • ⼀般提供開始︓2021年5⽉27⽇
    • ECSのうちコントロールプレーンはAWS環境で利⽤
    し、データプレーンをAWSの外側(いわゆるオンプ
    レミス)でホストすることが可能
    • 無料で使える(︕)ECSオーケストレーターの機能
    を、コンテナ実⾏環境に関わらず展開することで、
    運⽤上のオーバーヘッドを無くす

    View full-size slide

  100. 102
    Amazon ECS Anywhereのアーキテクチャ
    ref:[祝GA︕] ECS Anywhere を「M1 Mac」の仮想マシンを使って動かしてみた |

    View full-size slide

  101. 103
    Amazon ECS Anywhereのアーキテクチャ
    https://aws.amazon.com/jp/blogs/news/building-an-amazon-ecs-anywhere-home-lab-
    with-amazon-vpc-network-connectivity/

    View full-size slide

  102. 104
    Amazon ECS Anywhereのユースケース
    フルマネージドなコントロールプレーンの利⽤
    • 基本的に落ちないECSコントールプレーンをだいたい無料で利⽤可能
    • AWS、オンプレミス、Google Cloudなどで、⼀環したコンテナオー
    ケストレーションを実現可能
    エッジ環境でのデータ処理
    • クラウドに持っていくには⼤変な既存の⼤量データ(TB以上)をエッ
    ジ領域で処理することで、クラウド課⾦や処理実⾏中のレイテンシー
    を削減
    既存環境からの移⾏
    • 既存のオンプレミス環境を利⽤しながら、ECSを導⼊することで導⼊
    の⼿間を減らしながら、将来のAWSへの移⾏を準備する

    View full-size slide

  103. 105
    Amazon ECS Anywhereの実⾏⽅法
    1.ECSクラスターの作成
    • ネットワーキングのみで作成
    2.クラスター専⽤アクティベーションキーの取得
    • ECSクラスターのExternalインスタンス登録ボタンから、専⽤
    コマンドを取得
    3.Externalインスタンスの登録
    • コマンドにはアクティベーションコードが含まれており、イン
    スタンスがインターネット接続できる状態になっていれば、そ
    のコマンドを実⾏するだけで、クラスターにインスタンスとし
    て登録される

    View full-size slide

  104. 106
    Amazon ECS Anywhereのリファレンス
    Amazon VPC と接続可能なおうち Amazon
    ECS Anywhere クラスターの構築 | Amazon
    Web Services ブログ
    Amazon ECS Anywhere のよくある質問– ア
    マゾン ウェブ サービス
    Getting Started with Amazon ECS
    Anywhere – Now Generally Available |
    AWS News Blog

    View full-size slide

  105. 107
    Amazon ECS Anywhereとの付き合い⽅
    ECSのコントロールプレーンとしての
    便利さを利⽤しながら
    オンプレ資産を活かしたい⼈向け
    (いきなりこれでECSデビューするのは
    さすがにやめましょう)

    View full-size slide

  106. 108
    Amazon EKS Anywhere

    View full-size slide

  107. 109
    Amazon EKS Anywhereとは
    • ⼀般提供開始︓2021年9⽉8⽇
    • Amazon EKSのための新しいデプロイオプション
    • AWS関係ないところ(オンプレミスだけ)での利⽤
    が可能
    • EKS Distroを利⽤
    • AWSが開発したKubernetesディストリビューション
    • EKS Connectorを利⽤することで、全ての
    Kubernetesクラスターを確認可能

    View full-size slide

  108. 110
    Amazon EKS Anywhereのドキュメント
    • https://anywhere.eks.amazonaws.com/
    • ドキュメントは既存AWSドキュメントドメイン
    (docs.aws.amazon.com)とは別

    View full-size slide

  109. 111
    Amazon EKS Anywhereのアーキテクチャ

    View full-size slide

  110. 112
    Amazon EKS Anywhereと他のやつのサマリー
    https://anywhere.eks.amazonaws.com/docs/concepts/eksafeatures/

    View full-size slide

  111. 113
    Amazon EKS AnywhereとEKSの⽐較
    • https://anywhere.eks.amazonaws.com/docs/co
    ncepts/eksafeatures/

    View full-size slide

  112. 114
    Amazon EKS Anywhereの全体構成
    https://aws.amazon.com/jp/blogs/news/amazon-eks-anywhere-now-generally-available-
    to-create-and-manage-kubernetes-clusters-on-premises/

    View full-size slide

  113. 115
    Amazon EKS Anywhereの実⾏⽅法
    1.EKS Anywhereのインストーラダウン
    ロード
    2.EKS Anywhereクラスタの検査
    • アップグレード、スケーリング、ネットワーク、リポジト
    リ統合をテスト
    3.EKS Connectorのインストール
    • EKSコンソールを通じて、全ての管理対象Kubernetesクラ
    スターを表⽰し検査

    View full-size slide

  114. 116
    EKS Connectorとは
    • 2021年10⽉7⽇現在、パブリックプレビュー
    • Kubernetes準拠のクラスターをAWSに接続し、EKSコンソールで視覚化可

    • 接続可能なクラスター例
    • EKS Anywhere
    • Anthos
    • GKE
    • AKS
    • OpenShift
    • Tanzu
    • Rancher
    • EC2

    View full-size slide

  115. 117
    EKS Connectorとは

    View full-size slide

  116. 118
    EKS Connectorとは

    View full-size slide

  117. 119
    Amazon EKS Anywhereのリファレンス
    Amazon EKS Anywhere ̶ オンプレミス
    で Kubernetes クラスターの作成と管理が
    広く利⽤可能になりました | Amazon Web
    Services ブログ
    Amazon EKS Connector - Amazon EKS

    View full-size slide

  118. 120
    Amazon EKS Anywhereとの付き合い⽅
    EKSを気にいっている⼈が
    オンプレ環境でKubernetesを
    展開したい⼈向け

    View full-size slide

  119. 121
    まとめ

    View full-size slide

  120. 122
    AWS コンテナ関連サービスの選び⽅(基本)
    App Runnerを触ったこ
    とがある?
    App Runnerを触って何
    ができるか理解する
    No
    Yes
    App Runnerでコンテナ
    ワークロードの要件を
    満たしているか?
    App RunnerでPOCを
    実施、問題ないか?
    App Runnerで
    本番運用する
    ECS on Fargateがコン
    テナワークロードの要
    件を満たしているか?
    Yes
    No
    ECS on Fargateで
    本番運用する
    Kubernetesのエコシス
    テムを利用する必要が
    あるか?
    EKS on EC2/Fargateで
    本番運用する
    No
    Yes
    No
    Yes
    Yes 他の選択肢を探す
    (ECS on EC2など)
    No

    View full-size slide

  121. 123
    AWS コンテナ関連サービスの選び⽅(追加)
    Savings Plans検討した

    いますぐやりなはれ!
    No
    Yes
    今はFargate?
    Capacity Provider検討
    した?
    Fargate Spotを開発環
    境でためしてみよう
    Yes No

    View full-size slide

  122. 124
    AWS コンテナ関連サービスの選び⽅(必須)
    Graviton2 Processor
    興奮する?
    今のうちにARMアーキ
    テクチャビルドを試そ
    う!!
    もういちどこの資料
    最初から読む
    No
    Yes

    View full-size slide

  123. 125
    最後に
    今⽇の私の話が
    皆さんのコンテナ環境の改善に
    少しでも役⽴てば幸いです

    View full-size slide

  124. セッション後は、チャット欄のURL、または下記QRコードより
    アンケートへのご協力をお願いいたします。
    SNS投稿にはこちらをお使いください:#devio2021
    https://forms.gle/LxRfW6GeYWZNmMkx6
    13:05-13:35
    「2021年コンテナ最前線
    〜今AWSでコンテナホストするならなにが現実解なのか?〜」
    Q&A Q&A

    View full-size slide