Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Programming

/

Devops & Infra

99%J型エンジニアとのAWS EKSとGitLab CI / CDベースの完璧な征服

理論的な内容だけを学習するより、現業CI/CD業務の全体的な大きな枠組みを直接構成してみながら、本質を見る能力を育てることができる講義です。

  • meik0
강의자료
실습 중심
eks
AWS
Kubernetes
gitlab
CI/CD

学習した受講者のレビュー

こんなことが学べます

  • Gitlab CI / CDパイプラインの構成に必要なコンポーネントを提供することをそのまま書かずに直接カスタマイズしてプロジェクトに適用する方法

  • キューバネティス環境でプロジェクト単位で気にする重要な環境変数の値を.envではなくIRSAで安全かつスマートにセキュリティを向上させる方法

  • キューバネティス環境でプロジェクトのログ記録を監視し、特定のログが発生したときにスラック通知を送信する方法

  • キューバネティス環境でノードのリソースを監視し、しきい値を超えるとスラック通知を送信する方法

  • Nest.jsプロジェクトにCI / CDを適用する方法

  • パイプライン監視


自己紹介

こんにちは。

デブオプス、インフラ、クラウドパート初講義を制作することになったMeikoといわれています。

現在、EKSクラスタとGitlabが統合されたクラウドネイティブ環境で実サービスを展開する環境を構築、管理、運営する業務、そしてDevOps組織の拡張に備えた業務要請統合計画を立て、プラットフォームエンジニアリング面の自動化業務を しています。


講義に関する注意事項(技術を理解する最速の方法は直接実装してみること)

私が考える核心理論を除いた残りの説明は最小化し、実習中心に進みます。

レシピだけを伝えて終了するのではなく、自分で作ったアーキテクチャ構成図やシーケンス図をもとに、インフラストラクチャの構造と動作フローの本質をできるだけ簡単に理解できるように講義を準備しました。

EKSプロビジョニング、EKS Best Practiceドキュメントに基づいて構成することに焦点を当てました。

AWS、K8S、Git、Docker についての知識や実用的な経験がない場合は、少し後退することができます。

また、AWS サービスを通じて実践を進めるため、やむを得ず課金が発生するしかありません。

ぜひ講義紹介映像をご覧になってから受講の有無を判断していただければ幸いです。


講義の受講にヘルパーとして役立つ、自ら作ったノッションテンプレートを提供

さまざまなCLIツールのインストール、Gitlab、Slack、DB、Domainの購入など、練習前にインストールや準備が必要なことも多く、取り扱う内容も多いでしょう。
だから!パワーJ性向を持つ人として講義を受講する際にヘルパーとして役立つノッションテンプレートを用意しました!

それぞれのテンプレートをコピーしてプライベートに使用してください。

(講義資料を参照)

上記のテンプレートと一緒に講義を聞き、一度整理しながらインフラストラクチャの作業を計画しましょう!

そして今後、それぞれ個人のブログにまとめて、自分だけの知識で作ってみることをおすすめします。

講義を見ながら練習をする前に、どこまで準備が必要なのか、指定された該当チケットが完了処理になったら、AWSインフラストラクチャを構築できるように準備しました。


練習の順序

  1. 練習に必要な必要なツールのインストールと設定を進めます。

  2. AWS Elastic Kubernetes Service (EKS)クラスターと必要な AWS service を eksctl コマンドで提供された yaml ファイルを実行しながら迅速にプロビジョニングする 練習を進めます。

    1. AWS コンソールでの作成は最小限に抑えられました。

  3. kubectl、helm、aws-cliなどのコア命令を習得しながらクラスタに不可欠な設定を進める

  4. Gitlab Pipeline カスタム

    1. Gitlab Runner(shared runnerを使用)

    2. Gitlab AutoDevOps

    3. Gitlab AutoDeploy Image

    4. Gitlab Kubernetes Agen t

  5. NestJS プロジェクトを 4 番で構成したGitlab Pipelineを通じて直接provisioning しEKSにデプロイ

  6. NestJS プロジェクトでIRSA と AWS Secrets Managerによるセキュリティを強化した環境変数を扱う実践


まず、クラスタに基本的な設定と基本的なオープンソースプロジェクト( Loki、Grafana、Prometheus、Istioなど)を直接展開してから、 AnsibleTerraformなどのIACの概念と実践を進めてみると、なぜ便利なのか、なぜ使用するのかがわかります。 (今回の講義がうまくいけば(?)引き続き後続の深化講義を作ろうと思います)


Slackにパイプライン監視通知を送信する


扱えるAWSサービス


アーキテクチャ構成図


パイプラインフロー


上記のように、EKSクラスターとパイプラインの構築だけでなく、Cubernetes環境での重要な監視も構成し、CubernetisからIAMをどのように注入するか、およびトラフィックフローについても説明します。

講義を聞いたら、デブオプスの仕事の流れについて深く理解することができます。


今回の講義で取り上げない内容



実際の運用で必要なAutoScaling設定、バックアップ戦略、HPAの構成と動作原理、そしてアプリケーション負荷テストについては、本講義の目標であるクラスターを良好な構造に構成し、運用段階の前に必須のセッティングまで試すことを達成するために取り上げず、次の深化講義で取り上げようとします。


また、インフラストラクチャのプロビジョニングと設定の設定に必要なIACであるテラフォームやアンサーブルも使用しません。


最後に、コスト面と実践の複雑さを考慮して、以下のAWSサービスは使用しません。高価ではないものもありますが、できるだけ不可欠なサービスだけを考慮しました。

  1. Bastion-Host(EC2)をパブリックサブネットに配置し、そのインスタンスにSSH接続してクラスターにアクセスすることは正しいですが、インフラストラクチャの構成に焦点を当てているため、不要と判断して構成せずに、ローカルでIAMを介してクラスターコントロールプレーンのAPIサーバーに要求を送信するように進めます。

  1. DBはRDSを使用せずにSuperbaseが提供する無料のDB(Postgres)を使用します

    1. このDBエンドポイントに関する情報をenvではなく、AWS Secrets ManagerにSecretとして1つだけ作成し、アプリケーション・パードが浮かんだときに値を受け取り、使用する方法の実習を行います。

  2. RegistryもECRを使用せず、Gitlab Registryを使用します。

このようなことを学びます。

Gitlab CI/CD パイプラインのカスタマイズについて

Gitlabが基本的に提供するコンポーネント(Gitlab auto devops、auto deploy)をそのまま使用せずに直接カスタマイズして、要件に合わせてパイプラインを構成できる方法について学習し、適用してみる実習ができます。

キューバネティスの監視と通知システムの構築に関する内容

クバネティス環境のObsabilityの代表的なPLG stack ( Prometheus, Loki, Grafana )をセッティングしてみます。

EFS CSIドライバを使用してAmazon EFS(EFS)Persistent Volume(PV)に設定した後、 Persistent Volume Claim(PVC)を介して作成されたPVにバインドしデータの損失を防ぐための練習をすることができます。

プロジェクト内のエラーまたは重要なログを監視し、すぐに対応が必要なようにスラック通知を設定、ノードのコンピューティングリソースを監視します。 設定したしきい値を超えると、スラック通知設定などの実習ができます。

環境変数管理をenvファイルではなく秘密値を安全に管理する方法について

まず、AWS で重要な内容である長期認証情報一時的な認証情報について学習します。

AWS SecretsManager秘密を作成し、キューバネティスリソースの 1 つであるService Accountを活用して、最小特権の原則を適用し、パード固有の役割を安全に分離する 練習ができます。


受講前の注意

練習環境

  • オペレーティングシステムとバージョン(OS):MacOS M2 Pro 14


  • IDE: Webstorm

  • インフラストラクチャ環境: AWS、AWS EKS、GItlab

学習資料

  • 提供する学習資料の種類:Notionテンプレートに講義資料を提供する

  • 分量と容量:各セクションでデータを提供する

選手の知識と注意事項

  • AWS、NestJS、k8s、docker

    基本的な理解


  • AWSを使用しているので、練習後にリソースをうまく削除して課金に注意してください


  • コードの不正な配布と複製を禁止します。学習資料も著作権があり、個人的な学習目的以外の使用を禁じます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Gitlab CI / CDパイプラインをプロジェクトに適用したい人

  • インフラストラクチャの文書化に多くの時間を費やすために、より効率的に時間を費やしたい開発者

  • 現業でよく使われるCI/CDパイプライン構築が何なのか気になる人

  • 手動展開体験による自動展開のニーズを持つ人

  • 既存のCI/CD環境改善を通じて会社に貢献したい人

前提知識、
必要でしょうか?

  • Kubernetes

  • NestJS

  • AWS

  • Linux basic command

  • Docker

  • Git

こんにちは
です。

65

受講生

4

受講レビュー

3

回答

4.8

講座評価

1

講座

자기소개

 

백엔드 엔지니어로 근무할 때부터 자동화를 통해 업무 프로세스를 효율화하고 개선 하는 것 에 관심이 많았습니다. 업무 생산성을 향상시키고 보다 효율적인 업무 환경에 기여하다보니 데브옵스 엔지니어로 일할 수 있는 기회를 얻었습니다. 저는 좋은 사수분들 밑에서 성장하고 있습니다. 그 과정에서 얻은 경험과 지식을 함께 나누고자 강의를 찍게 되었습니다.

경력

[前] Blockchain Backend / Contract Developer

[] Blockchain Mainnet DevOps Engineer

 

カリキュラム

全体

70件 ∙ (4時間 20分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

4件

4.8

4件の受講レビュー

  • 유쾌한 캥거루님의 프로필 이미지
    유쾌한 캥거루

    受講レビュー 14

    平均評価 4.9

    5

    64% 受講後に作成

    취준생으로서 이론은 어느 정도 공부했지만 실제 구현 경험이 부족해 고민이었는데, 이 강의를 통해 많은 것을 배웠습니다. 특히 EKS 클러스터 구축부터 Gitlab 파이프라인 구성, 모니터링 시스템 구축까지 전반적인 흐름을 경험할 수 있어 좋았어요.

    • Meiko
      知識共有者

      안녕하세요, 수강평 감사합니다! 실제 구현 경험을 쌓을 수 있는 기회를 제공해드릴 수 있어 기쁘네요!! 혹시 강의를 들으시면서 추가로 궁금하신 점이나 더 자세히 다뤄줬으면 하는 부분이 있다면 언제든 피드백 주세요. 앞으로도 더 나은 강의 컨텐츠를 만들기 위해 노력하겠습니다. 감사합니다!

  • Roles님의 프로필 이미지
    Roles

    受講レビュー 7

    平均評価 5.0

    5

    60% 受講後に作成

    실무에서 자주 사용되는 기술들을 핵심적으로 다루시면서, 실제로 실습을 통해 배울 수 있어서 좋았습니다. IRSA를 통한 보안 강화, PLG 스택을 이용한 모니터링 구축 등 실무에서 꼭 필요한 스킬들을 배울 수 있어 취업 준비에 큰 도움이 되었습니다. 제공해주신 노션 템플릿도 학습 정리에 매우 유용했고, 앞으로도 자주 참고할 것 같아요.실제 클라우드 환경에서의 경험을 쌓을 수 있어 충분히 가치 있었다고 생각합니다. 데브옵스에 관심 있는 분들께 강력 추천합니다!

    • Meiko
      知識共有者

      취업 준비에 큰 도움이 되셨다니 다행입니다! 노션 템플릿도 유용하시다니 기분이 좋습니다~~ 앞으로 강의는 계속 이런 식으로 제공해드리려고 합니다. 더 알찬 후속 강의 만들 수 있도록 노력하겠습니다 감사합니다!

  • 김의중님의 프로필 이미지
    김의중

    受講レビュー 9

    平均評価 4.6

    4

    100% 受講後に作成

    강의자료를 노션으로 제공해준 점이 좋았습니다. 다만 강의 시간대비 가격이 다소 있는편이라 그 점은 아쉬웠습니다.

    • Meiko
      知識共有者

      노션으로 제공해드린 게 마음에 드셔서 다행이네요 감사합니다. 강의 가격 같은 경우는 gitlab cicd와 k8s를 실무 느낌으로 함께 다루는 강의가 없어 경쟁력이 있다고 판단했었습니다. 다음에 계획 중인 istio 강의는 좀 낮춰서 올려보겠습니다.

  • ericserra님의 프로필 이미지
    ericserra

    受講レビュー 92

    平均評価 4.9

    5

    30% 受講後に作成

    AWS EKS 구성에 대해 차근히 준비해가는 과정을 보여주셔서 좋았습니다. 후속 강의로 AWS 보안에 대해서도 AWS Network Firewall 이 포함된 새로운 강의를 만들어주시면 감사하겠습니다. 강사님 화이팅!!!

    • Meiko
      知識共有者

      안녕하세요! 정성 가득한 후기 정말 감사드립니다! 지금 후속 강의도 준비하고 있는 것은 istio입니다! 추후 도움이 되었으면 좋겠습니다. 말씀하신 AWS 보안에 대해서도 제가 현업에서 경험하고 공유하게 되면 말씀드리겠습니다. 감사드립니다.

¥11,791

似ている講座

同じ分野の他の講座を見てみましょう!