$30 off During Our Annual Pro Sale. View Details »

EKSを動かしてみた話

 EKSを動かしてみた話

2022/03/30
JAWS-UG 名古屋 コンテナを語ろう!! 5分間LT

世良泰明

October 03, 2023
Tweet

More Decks by 世良泰明

Other Decks in Technology

Transcript

  1. EKSを動かしてみた話
    2022/03/30
    JAWS-UG 名古屋 コンテナを語ろう!!
    5分間LT
    世良泰明

    View Slide

  2. 自己紹介
    名前:
    世良 泰明 (せら やすあき)
    職業:
    駆け出しインフラエンジニア (1年目)
    名古屋の某SIer勤め
    経歴:
    COBOLバッチ ⇒ webアプリ(java/javascript) ⇒ AWS
    趣味:
    囲碁, サイクリング, 散歩, etc…
    twitter: @y_sera15
    4/2にクラウドプラクティショナー受験します!

    View Slide

  3. きっかけ
    ・JAWS-UG 名古屋 3月はコンテナ回
    ・kubernetesはいつか触ってみたいと思っていた
    ・”新人”のラベルがついてるうちに何かしておきたい
    ⇒ ちょっと難しそうだけどやってみるか

    View Slide

  4. AWS上でのコンテナ基盤
    データプレーン
    コントロールプレーン
    Amazon EKS
    Amazon ECS AWS Fargate
    EC2

    View Slide

  5. AWS上でのコンテナ基盤
    データプレーン
    コントロールプレーン
    Amazon EKS
    Amazon ECS AWS Fargate
    EC2




    4通りの組み合わせがある

    View Slide

  6. AWS上でのコンテナ基盤
    データプレーン
    コントロールプレーン
    Amazon EKS
    Amazon ECS AWS Fargate
    EC2




    4通りの組み合わせがある 今回構築したのは③

    View Slide

  7. やったこと
    eksctlを使用してEKSを構築. サンプルアプリ(nginx)を動かした
    eksctl : コマンド一つでEKSクラスターとノードを構成してくれるツール
    EKS構築
    1. コマンドを叩くためのEC2構築
    2. kubectl インストール
    3. eksctl インストール
    4. IAMロール作成/EC2にアタッチ
    5. eksctl実行
    サンプルアプリのデプロイ
    1. Fagateプロファイル作成
    2. 名前空間の作成
    3. kubernetesデプロイメントの作成
    4. kubernetesサービスの作成
    5. 動作確認
    公式ドキュメント
    Amazon EKS の開始方法 – eksctl
    サンプルアプリケーションをデプロイする

    View Slide

  8. 結果
    動作確認
    kubectl get all –n eks-sample-app
    動いてる!!!

    View Slide

  9. 結果
    動作確認
    podに入り, サービスに向けてcurl
    nginxが動いてることを確認

    View Slide

  10. 苦労した点
    eksctlを使用してEKSを構築. サンプルアプリ(nginx)を動かした
    eksctl : コマンド一つでEKSクラスターとノードを構成してくれるツール
    EKS構築
    1. コマンドを叩くためのEC2構築
    2. kubectl インストール
    3. eksctl インストール
    4. IAMロール作成/EC2にアタッチ
    5. eksctl実行
    サンプルアプリのデプロイ
    1. Fagateプロファイル作成
    2. 名前空間の作成
    3. kubernetesデプロイメントの作成
    4. kubernetesサービスの作成
    5. 動作確認
    ←その1
    ←その2
    ←番外編

    View Slide

  11. 苦労した点 1
    IAMロールの作成/EC2へのアタッチ
    https://eksctl.io/usage/minimum-iam-policies/
    参考サイト
    https://developer.mamezou-tech.com/containers/k8s/tutorial/infra/aws-eks-eksctl/
    ・どのロールが必要なのか分からない
    EKS, EC2系のロールだけじゃダメ…?
    ・どこにアタッチすればよいか分からない
    EC2なのか…? IAMユーザなのか…?
    eksctlの公式サイトに、EKS構築に最低限必要なロールの記載があった
    ⇒ インラインポリシーを作成してEC2のロールに付与して解決!

    View Slide

  12. 苦労した点 2
    Fargateプロファイルの作成
    公式ドキュメント
    https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/fargate-profile.html
    ・podがいつまでたってもRunningにならない…
    ⇒ yamlを凝視するも間違いは見つけられず…
    前提条件の見落とし
    名前空間を作成した場合, それに応じたプロファイルを作成する必要あり
    ⇒ マネコンからFargateプロファイルを作成して解決!

    View Slide

  13. 苦労した点 番外編
    EC2のssm接続
    ・ロールをアタッチしてるのに繋げない
    ・サブネットもパブリック, IGWもdefaultルートも設定してある…
    ssm接続するインスタンスにはelastic IPが必要
    (プライベートサブネットの場合はNATが必要)

    View Slide

  14. まとめ
    eksctlを使用しEKSクラスターを構築、サンプルアプリをデプロイした
    苦労した点
    ・IAMポリシー
    ⇒ どこにアタッチすればよいか, 何を許可するのかわからなかった
    ・Fagateプロファイルの設定忘れ
    ⇒ 名前空間毎にプロファイルが設定されることを知らなかった
    ・ssm接続はelastic IPがないと繋げない
    感想
    ・意外と躓いたが、最後まで構築できて良かった.
    ・前提条件大事!!
    ・今度はeksctlを使わずに構築してみたい

    View Slide

  15. View Slide