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

EKS勉強会

世良泰明
February 27, 2024

 EKS勉強会

2024/2/27 JAWS-UG名古屋の勉強会資料
セッション発表資料
- EKS入門
- ハンズオン解説

世良泰明

February 27, 2024
Tweet

More Decks by 世良泰明

Other Decks in Technology

Transcript

  1. タイムテーブル 時刻 内容 発表者 19:00 開始挨拶 19:05~19:35 ハンズオン環境構築1 ~EKS構築まで 19:15~19:35

    EKS入門 世良泰明 19:35~19:50 ハンズオン環境構築2 ~ GitOps環境構築 19:40 ~ 19:50 ハンズオン概要説明 世良泰明 19:50~20:15 GitOpsハンズオン実施 20:15~20:35 後片付け1 GitOps環境削除 20:20:~20:35 (仮)AWSにおけるコンテナ AWS 川路さん 20:35~20:45 後片付け2 EKSクラスター削除 20:45~20:50 告知 20:50~20:55 撤収
  2. 自己紹介 名前: 世良 泰明 (せら やすあき) 職業: ひよっこインフラエンジニア (3年目) 名古屋の某SIer所属

    AWS上でインフラ構築・運用 趣味: 囲碁, 散歩, etc… twitter: @y_sera15 自宅K8sクラスター
  3. 目次 自己紹介 今日の話 Kubernetesとは(概要) Kubernetesの世界観 AWSとの世界のつなぎ目 EKSの嬉しいところ、つらいところ 乗り越えなければならない壁 まとめ 今日のゴール:

    - Kubernetesの世界観を知ってもらう - AWSとのつなぎ目を理解してもらう - 乗り越えるべき壁を雰囲気だけ知ってもらう
  4. EKS/Kubernetesとは Amazon Elastic Kubernetes Service (Amazon EKS) EKSとは? Amazon Elastic

    Kubernetes Service (Amazon EKS) は、 Amazon Web Services (AWS) 上で、独自の Kubernetes コントロールプレーンをインストール、運用、保守 する必要がないマネージド型サービスです。 Kubernetesとは? コンテナ化されたアプリケーションの管理、スケーリング、 デプロイを自動化するオープンソースシステムです。 -> ECSと何が違うの?
  5. Kubernetesの世界観 Kubernetesは、リソースを抽象化して扱う - AWSにあるような諸々リソースはKubernets上にも存在する - 標準で存在しないリソースも, カスタムリソースとして定義できる 要するに、Kubernetesは小さなクラウドみたいなもの 種類 Kubernetes

    AWS コンテナ Pod ECSタスク コンテナ(上位概念) deployment ECSサービス ストレージ PersistentVolume EBS アカウント ServiceAccount IAMロール パラメータ Configmap パラメータストア
  6. AWSとKubernetesの世界のつなぎ目 KubernetesがAWSリソースを活用する場合 -> AWSの認証認可を挟む必要がある 例: - パラメータストアから値を引っ張りたい - RDSのデータを参照したい ⇒

    IAMロールが必要 一方, Kubernetesにもサービスアカウント(無人格ユーザー)が存在する. これらを紐づけてやる必要がある. AWS Cloud OIDCプロバイダーを作成し, CLI等でロールとサービスアカウントで関連付けることにより, EKS内のリソースでもAWSサービスが利用できる
  7. EKSの嬉しいところ, つらいところ 嬉しいところ - 各種リソースが同じ形式のyamlファイル(マニフェスト)で扱える - IaCが簡単 - どんなアプリでも同じような形に落とし込める -

    他クラウドへの移行が楽 - 抽象化されているので、ほぼそのままお引越し可能 - スケールメリットが大きい - ECSだとアプリ単位. EKSは基盤色が強い つらいところ - 学習コストが高い - AWS, EKSの両方の世界観を理解する必要がある - OSSのエコシステム(流行り廃りが激しい) - バージョンアップ対応 - 数か月に1度は上げる必要あり - 手動運用だと逆にしんどい
  8. 乗り越えなければならない壁 この2つができないと, 余計に苦しくなる - マニフェスト管理 Kubernetesの各種リソースが記載されたyamlをgit等で管理する - 自動化(GitOps) Git管理されたリソースのマニフェストが更新されたら, 自動でクラスターが追従する

    逆に, - マニフェストを適用しておしまい - コマンド操作でリソース変更/編集 だと, 運用オペレーションが余計に煩雑になってしまう. (それならECSのマネコンぽちぽちの方がまだ楽でよい) 今日はこの後これ(自動化)を体感してもらいます!!!
  9. タイムテーブル 時刻 内容 発表者 19:00 開始挨拶 19:05~19:35 ハンズオン環境構築1 ~EKS構築まで 19:15~19:35

    EKS入門 世良泰明 19:35~19:50 ハンズオン環境構築2 ~ GitOps環境構築 19:40 ~ 19:50 ハンズオン概要説明 世良泰明 19:50~20:15 GitOpsハンズオン実施 20:15~20:35 後片付け1 GitOps環境削除 20:20:~20:35 (仮)AWSにおけるコンテナ AWS 川路さん 20:35~20:45 後片付け2 EKSクラスター削除 20:45~20:50 告知 20:50~20:55 撤収
  10. 使用する主なコンポーネント AWS CodeCommit - Gitリポジトリとして使用. - アプリソース用とマニフェスト用の2つ存在. - アプリソース用はlambdaでCIパイプラインへトリガー通知 Amazon

    ECR - ビルドしたアプリ用コンテナを格納. アプリソース用 マニフェスト用 Tekton - Kubernetes上で動くCIツール. - lambdaのwebhookをトリガーに, CIパイプラインを実行する - アプリソースをビルドし, ECRへpushおよびマニフェストリポジトリの更新を行う. ArgoCD - Kubernetesで動くデプロイツール - マニフェスト用のリポジトリを監視し, 変更があればそれに従ってデプロイを行う
  11. タイムテーブル 時刻 内容 発表者 19:00 開始挨拶 19:05~19:35 ハンズオン環境構築1 ~EKS構築まで 19:15~19:35

    EKS入門 世良泰明 19:35~19:50 ハンズオン環境構築2 ~ GitOps環境構築 19:40 ~ 19:50 ハンズオン概要説明 世良泰明 19:50~20:15 GitOpsハンズオン実施 20:15~20:35 後片付け1 GitOps環境削除 20:20:~20:35 (仮)AWSにおけるコンテナ AWS 川路さん 20:35~20:45 後片付け2 EKSクラスター削除 20:45~20:50 告知 20:50~20:55 撤収