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

第107回 雲勉【オンライン】Amazon ECSとCodeシリーズでCICDに入門!

第107回 雲勉【オンライン】Amazon ECSとCodeシリーズでCICDに入門!

下記、勉強会での資料です。
https://youtu.be/HRamhqFDnWk

iret.kumoben

July 07, 2023
Tweet

More Decks by iret.kumoben

Other Decks in Technology

Transcript

  1. 0. 自己紹介 松田 啓佑 • 所属 ◦ クラウドインテグレーション事業部 構築第2セクション •

    業務 ◦ AWSを中心としたインフラ設計/構築/運用 ◦ New Relic/Datadogを利用した監視の設計/実装 • 好きなAWSサービス ◦ Amazon ECS ◦ AWS Step Functions • 認定 ◦ 2023 Japan AWS Top Engineers ◦ iretテクニカルアンバサダー advanced • 趣味 ◦ テニス ◦ 飲酒 2
  2. 本日のゴール 3 ❏ コンテナ、Amazon ECSが何かを理解する ❏ CI/CD、AWS Codeシリーズを何か理解する ❏ AWS

    Codeシリーズを利用したECSのCI/CDパイプライン構成をイメージできるようになる
  3. 本日のアジェンダ 4 - 0. 自己紹介 - 1. 座学(19:05-19:25) - コンテナとは

    - Amazon ECSとは - CI/CDとは - AWS Codeシリーズとは - 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する (19:25-50) - 3. 質疑応答 (19:50-20:00)
  4. [座学] コンテナとは 6 • アプリケーション実行環境 ◦ コンテナ以外の実行環境:仮想マシン(VM)、ベアメタルサーバ • 仮想マシンに比べて容量が少なく、起動時間が短い =>

    軽量 • 軽量という特徴により、構築からデプロイを迅速に行うことができる => アジリティ 開発スピードが求められる昨今において、 コンテナが実行環境の主流になりつつある
  5. 13 AWSのオーケストレーションサービス • ECS(Elastic Container Service) ◦ 小/中規模ワークロード向け ◦ AWS独自ソフトウェアがベース

    • EKS(Elastic Kubernetes Service) ◦ 大規模ワークロード向け ◦ Kubernetesがベース [座学] Amazon ECSとは
  6. 14 [ 起動タイプ:Fargate ] • ECSで利用可能なサーバレスコンテナ実行環境 • ECSの基盤となるインスタンスの管理をオフロードする • つまり管理者はインスタンスの運用から解放される

    • コストは起動タイプEC2よりやや割高 [ 起動タイプ:EC2 ] • EC2インスタンスをコンテナ実行環境とした起動タイプ • EC2インスタンスの運用/保守は利用者の責任範囲 • EC2インスタンスの細かいカスタマイズを行うことができる [座学] Amazon ECSとは
  7. 15 • クラスター : 入れ物 • タスク : アプリケーションを実行するコンテナ群 =

    アプリケーション本体 • タスク定義 : タスク(アプリケーション)の金型 • サービス:タスクの管理人 ECSの構成要素 [座学] Amazon ECSとは
  8. 17 [座学] CI/CDとは • Continuous Integration/Continuous Delivery = 継続的インテグレーション/継続的デリバリー •

    アプリケーション開発の各ステージを自動化することにより、アプリケーション開発を高速/効率化する手法
  9. 20 [座学] CI/CDとは • Continuous Integration/Continuous Delivery = 継続的インテグレーション/継続的デリバリー •

    アプリケーション開発の各ステージを自動化することにより、アプリケーション開発を高速/効率化する手法 CI/CD + コンテナ => 開発の高速化を実現
  10. 21 [座学] CI/CDとは • ソース:ソースコードの更新 • ビルド:コンパイル、単体テスト、コンテナイメージの作成 • テスト:結合テスト、UIテスト、ロードテスト •

    デプロイ:本番環境への適用 CI/CDではこれら各フェーズを自動化する => 自動化した一連のプロセスをCI/CDパイプラインと呼ぶ ソース ビルド テスト デプロイ アプリケーションの一般的なリリースサイクル
  11. 24 [座学] AWS Codeシリーズとは ECSのCI/CDパイプラインをCodeシリーズで構成した際のイメージ ソースコード レポジトリ ① ② ③

    ① Code Commitのレポジトリに変更をPUSH ② Code Buildがソースコードの変更を検知して、ECRに新しいイメージをPUSH ③ Code Deployがタスク定義を更新して、新しいイメージを利用したコンテナを 起動
  12. 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する 28 - 0. 事前準備 - 0.1 事前に作成したリソース説明

    - 0.2 ALBエンドポイントへのリクエスト確認 - 1. 構築 - 1.1 Code Commitレポジトリ作成 - 1.2 Code Build ビルドプロジェクト作成 - 1.3 Code Deploy アプリケーション/デプロイグループ作成 - 1.4 必要なファイルをレポジトリにPUSH - 1.5 Code Pipeline パイプラインの作成 - 1.6 動作確認
  13. 29 - 0. 事前準備 - 0.1 事前に作成したリソース説明 - 0.2 ALBエンドポイントへのリクエスト確認

    - 1. 構築 - 1.1 Code Commitレポジトリ作成 - 1.2 Code Build ビルドプロジェクト作成 - 1.3 Code Deploy アプリケーション/デプロイグループ作成 - 1.4 必要なファイルをレポジトリにPUSH - 1.5 Code Pipeline パイプラインの作成 - 1.6 動作確認 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する
  14. 31 - 0. 事前準備 - 0.1 事前に作成したリソース説明 - 0.2 ALBエンドポイントへのリクエスト確認

    - 1. 構築 - 1.1 Code Commitレポジトリ作成 - 1.2 Code Build ビルドプロジェクト作成 - 1.3 Code Deploy アプリケーション/デプロイグループ作成 - 1.4 必要なファイルをレポジトリにPUSH - 1.5 Code Pipeline パイプラインの作成 - 1.6 動作確認 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する
  15. 32 - 0. 事前準備 - 0.1 事前に作成したリソース説明 - 0.2 ALBエンドポイントへのリクエスト確認

    - 1. 構築 - 1.1 Code Commitレポジトリ作成 - 1.2 Code Build ビルドプロジェクト作成 - 1.3 Code Deploy アプリケーション/デプロイグループ作成 - 1.4 必要なファイルをレポジトリにPUSH - 1.5 Code Pipeline パイプラインの作成 - 1.6 動作確認 2. AWS Codeシリーズを利用してECSのCI/CDパイプラインを実装する
  16. 3