聴きながらとったメモ
登壇者: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でさらに深く学ぶことができる。