Posted at

AWS Summit Tokyo 2019(6/14 Kubernetes on AWS)

聴きながらとったメモ

登壇者:AWS ソリューションアーキテクト 河野慎吾


コンテナ


  • コンテナとはOS内の独立した環境で実行する技術(コンテナ ~= Docker)

  • 依存関係をパッケージング

  • Dockerにはビルド・シェア・ランの3つのフェーズがある。

  • Dockerfileに全てのビルド手順を書く。

  • 出来上がったイメージをイメージレジストリに登録する。

  • コンテナホストで(自分のPCやEC2上など)でDockerイメージを走らせる。

  • コンテナユースケース


    • マイクロサービス

    • ジョブ実行

    • CI/CD

    • 機械学習



  • RUN(コンテナ実行)フェーズでの課題。


    • コンテナホストが停止したら、その上で走ってたコンテナ全滅する。

    • スケールをどのようにするか?




Kubernetes


  • Kubernetes(k8s)はオープンソースのコンテナオーケストレーションツール。

  • Kubernetesで動かせるように設計すれば、場所を変えても同様に動作する(Runs anywhare)

  • Kubernetesの最小単位はPod。Podの中に関係性の深いコンテナを複数入れることがある。


EKS


  • Serviceでロードバランス等の機能を提供する。

  • DeploymentでPodを配置し、ローリングアップデート等を行う。

  • EKSを使うとkubernetesのコントロールプレーンをマネージドサービスとして使用できる。

  • 既存のエコシステムがそのまま動く。

  • Kubernetesの運用(バージョンアップ等)をAWS側でやってくれる。

  • EKSのロードバランサーはElastic Loadbarancer。SSL証明書やRoute53との連携もできる。

  • つまり、KubernetesマニフェストでAWSのサービスをコントロールできる。

  • Podレベルとノードレベルの2種類のオートスケールがある。ノードレベルはAWSのオートスケール機能と連携。

  • Podは負荷が上がると自動的に増えていくが、EC2のキャパシティ限界に達して増殖が停止する。

  • その状態になるとEC2インスタンスが追加され、新しいノードでPodのオートスケールが行われる。

  • Codeシリーズによりデプロイメントパイプラインを構築して運用する。

  • Amazon ECRはフルマネージド型のコンテナイメージレジストリ。

  • EKSからデータストアとしてAurora DynamoDB、ElastiCacheなどが使える。

  • EKSWorkshopで手を動かしながら学べる。AWS BlackBeltでさらに深く学ぶことができる。