Slide 1

Slide 1 text

第85回 雲勉【オンライン︓初⼼者向け】 EKSを触ってみよう 〜Kubernetes知らない⼈⼤集合〜 2022/09/29

Slide 2

Slide 2 text

0.講師⾃⼰紹介 2 n 来⾺ ⼤介 • プロジェクト企画推進セクション インフラ技術グループ • 8年間調理師をしていました。 • アイレット歴 9ヶ⽉ • IT業界に来て20キロ太りました。⾛ると膝にきます。

Slide 3

Slide 3 text

アジェンダ 3 0. ⾃⼰紹介 1. 今回EKSにフォーカスした理由 (19:00~19:10) 2. コンテナとは︖ (19:10~19:20) 3. クラウドで問題解決 (19:20~19:40) 4. EKS作成 (19:40~19:50) 5. demo (19:50~19:55) 6. 質疑応答 (19:55~20:00)

Slide 4

Slide 4 text

1. 今回EKSにフォーカスした理由 4

Slide 5

Slide 5 text

1.EKSにフォーカスした理由 5 n Kubernetesの需要 IDC Japanは2021年2⽉、国内の企業・組織420社を対象に、コンテナ仮想化技術(以下、コンテナ) とコンテナオーケストレーションツールのKubernetesの導⼊状況に関する調査を実施した。 コンテナを本番環境で使⽤する企業は16.9%で、2020年調査から2.7ポイント上昇した。導⼊構築、 テスト、検証段階にある企業は23.3%で、2020年調査から4.7ポイント上昇した。この2つを合わせ た40.2%の企業がコンテナを導⼊済みもしくは導⼊準備中であることになる。 IDC Japanは、「国内はコンテナの本格的な普及期に⼊った」と⾒ている。 引⽤ https://it.impress.co.jp/articles/-/21377

Slide 6

Slide 6 text

1.EKSにフォーカスした理由 6 n Kubernetesの需要 企業が、デジタル変⾰を進める中でアプリケーションのクラウドネイティブ化に取り組んでおり、コン テナ環境の採⽤が進んでいる Kubernetesについては、使⽤している種類(ベンダー)を調査している。コミュニティ版の Kubernetesが32.0%で最も使⽤率が⾼いが、2020年調査よりもその率は低下している。ベンダーの ディストリビューションや、マネージド型のクラウドサービスの導⼊が依然として⾼い。 ユーザーがKubernetesの商⽤版を選択する理由としてIDCは、Kubernetesの導⼊・運⽤のしやすさや 導⼊後のサポートを重視している点を挙げる。マネージドサービスでは「Amazon Elastic Kubernetes Service(EKS)」の使⽤率が⾼かった。 引⽤ https://it.impress.co.jp/articles/-/21377

Slide 7

Slide 7 text

1.EKSにフォーカスした理由 7 そもそもKubernetesをよく知らないし、 EKSも何がいいのかよくわかんない

Slide 8

Slide 8 text

2. コンテナとは︖ 8

Slide 9

Slide 9 text

2.コンテナとは 9 n コンテナとは ίϯϐϡʔλͷԾ૝ԽͷํࣜͷҰͭͰɺՔಇதͷΦϖϨʔςΟϯάγεςϜʢOSʣͷҰ෦Λ ෼཭ͯ͠ଞͱִ཭͞ΕͨྖҬΛ༻ҙ͠·͢ɻ ͦͷ্Ͱιϑτ΢ΣΞΛಈ࡞ͤ͞ΔํࣜΛίϯςφܕԾ૝Խͱ͍͍·͢ɻ·ͨ෼཭͞Εͨྖ Ҭͷ͜ͱΛίϯςφͱ͍͍·͢ɻ

Slide 10

Slide 10 text

2.コンテナ作成の流れ 10 n コンテナ作成の流れ Dockerfile コンテナイメージ コンテナ化 build/push run

Slide 11

Slide 11 text

2.コンテナのメリット 11 n コンテナのメリット ⼀度、 Dockerfileを作成すれば Docker が⼊っている環境であれば どこでも環境作成を⾏うことができます。 そのため環境の引っ越しなどがしやすかったり、他のエンジニアへの配布がしやすかったり します。 またコード管理されているのでCI/CDにも向いています。

Slide 12

Slide 12 text

2.コンテナ運⽤での問題点 12 ‥‥‥ ‥‥‥ アプリの拡⼤など n コンテナ運⽤での問題点 Ұ୆ͷϗετͰશ෦ͷίϯςφΛಈ͔͢͜ͱ͸ɺ؆୯ͳͷͰ͕͢ϗετʹ͸༰ྔͷݶք͕͋ Γ·͢ɻ ͦͷͨΊɺΞϓϦͷ֦େͳͲʹԠͯ͡ϗετଆΛ૿΍ͯ͠ίϯςφΛͨ͘͞Μӡ༻͢ΔΑ͏ ʹͳΓ·͢ɻ ෳ਺ͷϗετͷ্ʹ༷ʑͳछྨͷίϯςφ͕ಈ࡞͍ͯ͠Δঢ়ଶʹͳͬͯ͠·͍·͢ɻ

Slide 13

Slide 13 text

2.コンテナ運⽤での問題点 13 ホストの障害起きたら アプリは⽌まってしまう ホスト間の通信の 運⽤設定が⼤変 負荷に応じた コンテナをスケールしたい

Slide 14

Slide 14 text

3. クラウドで問題解決 14

Slide 15

Slide 15 text

3. クラウドの良いところ 15 問題解決 n 問題解決してくれる ・ホストの障害起きた場合 ・負荷に応じたコンテナをスケールしたい → ホストをスケールできる → 負荷に応じたコンテナをスケールができる

Slide 16

Slide 16 text

3. AWSコンテナサービス 16 nAWSでのコンテナサービス

Slide 17

Slide 17 text

3. Amazon Elastic Container Service(ECS)とは 17 n ECSとは Amazon Elastic Container Service (Amazon ECS)は、⾮常にスケーラブルで⾼速なコンテナ管理サー ビスです。これを使⽤して、クラスター上のコンテナを実⾏、停⽌、管理できます。 Amazon ECS で、コンテナは、個々のタスクやサービス内のタスクを実⾏するために使⽤するタスクで定 義されます。タスクとサービスは、AWS Fargate で管理されるサーバーレスインフラストラクチャで実⾏ できます。または、インフラストラクチャをより詳細に制御するために、管理する Amazon EC2 インス タンスのクラスターでタスクとサービスを実⾏できます。

Slide 18

Slide 18 text

3. Amazon Elastic Kubernetes Service(EKS)とは 18 n EKSとは EKSはオーケストレーションツールのKubernetesをクラウド上で利⽤可能なマネージドサービスです。 コンテナを稼働するサーバーとしては、EC2、Fargateを選択できます。 ECSとの違いとしては、オーケストレーションツールが異なります。 ECSはAWS独⾃のオーケストレーションツールを利⽤しておりAWS上でのみ利⽤できますが、EKSは Kubernetesを利⽤しているため、オンプレミスでKubernetesを利⽤していた⽅はクラウド上で同⼀の ものを使える利点があります。

Slide 19

Slide 19 text

3. Kubernetesとは 19 n Kubernetesとは Dockerなどのコンテナ仮想化ソフトウェアを管理、および⾃動化するためのオープンソースソフト ウェア(OSS)のことです。 Kubernetesはコンテナオーケストレーションツールのひとつです。 コンテナオーケストレーションとは、複数あるコンテナを管理する技術のことです。 複数のコンテナを運⽤する場合、ネットワークやストレージなどの連携管理を⾏う必要があります。 コンテナオーケストレーションツールは、これらの管理を⾏ってくれるため、コンテナがダウンした り、アプリケーションに⾼負荷がかかったりした場合もスムーズに運⽤できるのです。

Slide 20

Slide 20 text

3. Kubernetes構成図 20 コントロールプレーン データプレーン クラスターの情報を保持する etcd や、どのノードで Pod を動かすかをコントロールする kube-scheduler 、 API を提供する kube-apiserver などが含まれます。 耐障害性が必須になってきます。 実際にコンテナが稼働するワーカーノード群を データプレーンといいます。

Slide 21

Slide 21 text

3. Kubernetesマニフェスト 21 n マニフェストとは Kubernetesの構成を定義するファイルになります。 この定義ファイルの内容をKubernetesにアップロードすると、その定義ファイルを元に Kubernetesに「望ましい状態」が書き込まれ 「望ましい状態」を保つためにKubernetesが動作をします。 マニフェストファイル

Slide 22

Slide 22 text

3. EKS構成図 22 データプレーンに専念できる︕︕ コントロールプレーンの 運⽤も気にしなくていい︕︕

Slide 23

Slide 23 text

3. ECS EKSそれぞれのユースケース 23 どういった時に、ECS/EKSの 使い分けをすれば良いの︖

Slide 24

Slide 24 text

3. ECS EKSそれぞれのユースケース 24 既存システムがKubernetesで運⽤されている場合、 EKSの⽅が既存の運⽤⽅法と差が少なくなったり、他の環境への移管もしやすい また、マルチプラットフォーム使⽤して運⽤⽅法をKubernetesにまとめたい。

Slide 25

Slide 25 text

3. ECS EKSそれぞれのユースケース 25 EKSの場合、3ヶ⽉に⼀度のアップデートがあり学習コストは⾼い。 学習する時間(コスト)を考慮するとECSがシンプルで使いやすくなっています。 学習コストは考慮するべきポイント

Slide 26

Slide 26 text

3. ECS EKSそれぞれのユースケース 26 複数環境(サービス)における運⽤管理はEKSでは Nanespace という概念があるため 1クラスターを論理的に分割することができる。 そのため各環境(サービス)における通信がEKSのみで完結可能となります。 サービス A サービス B サービス C

Slide 27

Slide 27 text

3. ECS EKSそれぞれのユースケース 27 対象としているサービスが、開発途中で今後サービスの拡⼤が⾒込まれ より複雑な構成になる場合、ECSでは他のAWSサービスを増やすことになり その分利⽤料の考慮が必要となってくる。 「コンテナを動かすためのサービス」 「コンテナも含めたインフラ周りを まとめて管理するサービス」

Slide 28

Slide 28 text

3. ECS EKSそれぞれのユースケース 28 学習コスト 低い ⾼い マルチプラット フォーム ✖ AWSに依存 ○ K8s環境があれば どこでも 複数環境 (サービス) シングルテナント向き マルチテナント向き 運⽤ ○ ✖ アップデートが頻繁

Slide 29

Slide 29 text

4. EKS作成 29

Slide 30

Slide 30 text

3. EKS作成 30 EKS 命令 EKS クラスターで多くの個別のタスクを⾃動化するために使⽤するコマンドラインツール。 他にもEKSのコンポーネントを作成するために使⽤できる⽅法として ɾTerraform ɾeksctl ɾAWSίϯιʔϧ ɾ CloudFormation ͳͲ…

Slide 31

Slide 31 text

3. EKS作成(eksctl) 31 eksctl n 使い分けとして どの⽅法で構築していくか問題なのですが、これはEKSを作成する上での 要件によって異なってくる部分があります。 Cloud formation Terraform カスタマイズ性が低い・簡単に作成可能 例)コンテナを⽴てるだけなど検証等 カスタマイズ性が⾼い 例)AWSサービス連携が多い環境 運⽤環境

Slide 32

Slide 32 text

eksctlやってみよう 32

Slide 33

Slide 33 text

2. EKS作成(eksctl) 33 n 公式URL https://eksctl.io/ n kubectl⼊⼿URL https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/install-kubectl.html n eksctl⼊⼿URL https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/eksctl.html

Slide 34

Slide 34 text

5. EKS学習してみて 34

Slide 35

Slide 35 text

4. EKS学習してみて 35 n 学習してみて 適材適所が⼤事︕︕

Slide 36

Slide 36 text

質疑応答 36