Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Upcoming SlideShare
What to Upload to SlideShare
Next

Share

202109 AWS Black Belt Online Seminar Docker 入門

AWS Black Belt Online Seminarの最新コンテンツ: https://aws.amazon.com/jp/aws-jp-introduction/#new
過去に開催されたオンラインセミナーのコンテンツ一覧: https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/

Related Books

Free with a 30 day trial from Scribd

See all

Related Audiobooks

Free with a 30 day trial from Scribd

See all

202109 AWS Black Belt Online Seminar Docker 入門

  1. 1. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS 公式 Webinar https://amzn.to/JPWebinar 過去資料 https://amzn.to/JPArchive Docker ⼊⾨ AWS Black Belt Online Seminar Amazon Web Services Japan K.K. Solutions Architect ⻩ 光川 2021-September
  2. 2. © 2021, Amazon Web Services, Inc. or its Affiliates. このセッションで扱うこと・学べること o コンテナの歴史と Docker 登場以来の急速な発展 o Docker の主要な構成要素 o コンテナのオーケストレーション o コンテナ開発・運⽤のベストプラクティス 注︓本セッションで扱う内容は、コンテナとしての Docker 技術になります。 Docker 社提供の各種ツールについての内容は含まれません。 2
  3. 3. © 2021, Amazon Web Services, Inc. or its Affiliates. コンテナ技術の歴史 1982 Unix chroot 2005 Solaris Zone OpenVZ Parallels 2007 Linux Cgroups 2008 Linux LXC 2013 Docker コンテナ = “リソース隔離を実現する技術” 2000 FreeBSD jail 3
  4. 4. © 2021, Amazon Web Services, Inc. or its Affiliates. Dockerとは uアプリケーションをすばやく構築、テスト、デプロイする為の プラットフォーム ü Docker 社 (旧dotCloud社) が開発、2013年にオープンソース化 ü 現在は OCI (Open Container Initiative) で管理・標準化 uDocker の⾰新 ü OS仮想化ではなく、アプリケーションをパッケージングし、 ツールのエコシステムを通じて、スムーズな開発者 エクスペリエンスを提供する分野にある uDocker のメリット ü ソフトウェア出荷の数と速度を向上 ü オペレーションの標準化 ü シームレスに移動 ü コスト削減 4
  5. 5. © 2021, Amazon Web Services, Inc. or its Affiliates. Docker 周りのエコシステムの急速な発展 Docker 登場以来の急速な発展 2013 Docker OSS化 5 OCI 発⾜ CNCF 発⾜ Amazon ECS Amazon ECR 2015 Amazon EKS 2018 Moby Project 発表 AWS Fargate 2017 AWS App Runner AWS Proton EKS Anywhere 2021 EKS Distro ECS Anywhere Amazon Lightsail AWS App2Container AWS Copilot 2020 2014 Docker1.0 Docker Hub Kubernetes OSS化
  6. 6. © 2021, Amazon Web Services, Inc. or its Affiliates. 仮想マシンと Docker ( Linux の例 ) Docker - Linux の機能を利⽤してコン テナを分離 (isolation) - Linux カーネルを共有 - 迅速なスタート、最⼩限の オーバーヘッド - 柔軟な分離 仮想マシン (KVM) - ハードウェアの仮想化 - 完全に分離されたカーネル - Guest OS の起動が遅く、カーネ ルを起動してハードウェアをセッ トアップする必要がある https://en.wikipedia.org/wiki/Kernel-based_Virtual_Machine https://en.wikipedia.org/wiki/Docker_(software) 6
  7. 7. © 2021, Amazon Web Services, Inc. or its Affiliates. Docker のアーキテクチャ 7 https://docs.docker.com/get-started/overview/ ・Dockerは client-server アーキテクチャ ・Docker client は Docker daemon と通信 ( ソケット or REST API ) して各種指⽰ ・Docker daemon がコンテナのビルド、実⾏、配布などを⾏う
  8. 8. © 2021, Amazon Web Services, Inc. or its Affiliates. Docker の主要な構成要素 Docker デーモン Docker クライアント dockerdをリッスンし、イメージ、コンテナ、ネットワーク、 ボリュームなどの Docker オブジェクトを管理 Docker レジストリ Docker イメージを格納するレジストリ、 パブリック/プライベートで構築可能 ユーザが Docker と会話する主要⽅法、 Docker デーモンと通信するクライアント Docker オブジェクト ・Docker イメージ︓OS やアプリを含むコンテナのテンプレート、 Docker レジストリに格納し、そこから取得 ・Docker コンテナ︓プロセスとして起動するアプリの実⾏環境 Docker イメージから起動 ・Dockerfile ︓ベース OS のイメージからアプリまでの 動作環境が記述されたテキストファイル ・ネットワーク、ボリューム、プラグイン、etc 8
  9. 9. © 2021, Amazon Web Services, Inc. or its Affiliates. 9 Docker コンテナの主なライフサイクル 実⾏ 停⽌ Docker イメージ ⼀時停⽌ 作成 削除 pause unpause start run stop rm start create Dockerfile build rm
  10. 10. © 2021, Amazon Web Services, Inc. or its Affiliates. PID:7777 PID:7777 PID:8888 PID:9999 10 Docker コンテナのプロセス systemd PID:1 Docker コンテナA Docker コンテナB Docker コンテナC dockerd PID:2345 nginx PID:1 nginx PID:1 nginx PID:1 aaa PID:2348 bbb PID:3523 worker PID:17 ・namespace により、ファイルシステム、ネットワーク、プロセスツリーなどが分離 ・cgroups により、CPU, memory, disk I/O, network などが制限される PID:7777 worker PID:17 PID:7777 worker PID:18
  11. 11. © 2021, Amazon Web Services, Inc. or its Affiliates. 11 Docker のネットワーク l none l 外部と接続しない l host l ホストのネットワークスタックを 共有 l Bridge (デフォルト) l ブリッジインターフェスと veth ペア経由で、ブリッジの IP アド レスでNATされる l container:<name|id> l <name|id>で指定したコンテナ のネットワークスタックを共有 docker0 (ブリッジ) bridge vethペア host veth1 eth0 192.168.1.1 :80 192.168.1.1:32770 eth0 container:<name|id> <name|id>で 指定したコンテ ナのネットワー クを共有 eth0 192.168.1.1:80 192.168.1.1 172.17.0.1/16 172.17.0.2 :80 lo none lo 4種類のネットワークモード lo lo
  12. 12. © 2021, Amazon Web Services, Inc. or its Affiliates. Base image Image Image 親イメージ の参照 a d d c o d e a d d n o d e j s U b u n t u Docker イメージ ・読み取り専⽤で、コンテナを起動するテンプレートとして利⽤される ・⼀般的に「ベースイメージ」と呼ばれる基本イメージの上に依存物やアプリケーションコードを 含めてレイヤー構造を持つ1つのイメージを作る ・create, commit, build などのイメージ作成⽅法がある ・⼀般的には再現性の為 Dockerfile を参照して build コマンドで作成し Docker レジストリに保存 Docker イメージ Dockerfile $ docker run -id ubuntu /bin/bash $ docker exec –it <container> bash <container># apt-get install nodejs <container># git clone … Docker レジストリ コンテナ内で各種設定 FROM ubuntu:18.04 RUN apt-get update && ¥ apt-get install -y nodejs COPY ./index.js . EXPOSE 8080 CMD [“/usr/bin/node”, “index.js”] 12 commit build pull push create
  13. 13. © 2021, Amazon Web Services, Inc. or its Affiliates. 13 ③ ④ ⑤ a d d c o d e a d d d e p s a d d p a c k a g e . j s o n ② a d d n o d e j s ① U b u n t u 1 8 . 0 4 ⑥ d e f i n e c o m m a n d --- ① --- ② --- ③ --- ④ --- ⑤ --- ⑥ ・Docker イメージはユニオンファイルシステム(Union file system)で、 複数のファイルやディレクトリ同⼠を透過的に重ねる ・イメージ作成を簡単かつ再現性⾼く⾏うために Dockerfile を書く Dockerfile Docker イメージ FROM ubuntu:18.04 RUN apt-get update && ¥ apt-get install -y nodejs COPY ./package.json . COPY ./node_modules ./node_modules COPY ./index.js . EXPOSE 8080 CMD [“/usr/bin/node”, “index.js”] Dockerfile と Docker イメージ
  14. 14. © 2021, Amazon Web Services, Inc. or its Affiliates. 14 Docker のデータ管理 Base image Image Image a d d c o d e a d d n o d e j s U b u n t u Container W r i t a b l e ・デフォルトでは、コンテナ内で作成されたすべてのファイルは、書き込み可能な コンテナレイヤーに保存される ・コンテナレイヤーは、コンテナの停⽌と共に無くなる ・書き込みレイヤーは、Linux のユニオンファイルシステムを使うので、データボリュームより オーバーヘッドが⼤きい ・Docker ボリュームを使うことでデータの永続化が可能 Docker コンテナ 読み取り専⽤ 読み書き可能 (永続化出来ない) Docker ボリューム 永続化ストレージ
  15. 15. © 2021, Amazon Web Services, Inc. or its Affiliates. 15 Docker ボリューム データ永続化が可能なのは2種類 l bind マウント l ホストの任意のディレクトリをマウント可能 l 例︓ホスト上のファイルを参照、依存させる場合 l volume (推奨) l Docker の管理領域配下にディレクトリが⽣成され る ( Linux の場合 /var/lib/docker/volumes/ ) l 複数のコンテナ間のデータ共有も可能 l tmpfs マウント l メモリ領域を使⽤、データの永続化は出来ない l 例︓秘密情報など⼀時的な展開領域、⾼いIO処理 l named pipes l コンテナからDocker Engineにアクセスする時に 使⽤ (Windowsのみ) /opt/source /app bind mount /var/lib/dock er/volumes/d ata/_data/ /secret tmpfs mount /data volume
  16. 16. © 2021, Amazon Web Services, Inc. or its Affiliates. コンテナオーケストレーション
  17. 17. © 2021, Amazon Web Services, Inc. or its Affiliates. Docker を利⽤した基本的ワークフロー - コンテナ実⾏ - 17
  18. 18. © 2021, Amazon Web Services, Inc. or its Affiliates. 思っていたよりも⼿作業︖ • Docker の責務は同⼀サーバ上のコンテナライフサイクル管理 • 複数サーバやコンテナを束ねた概念に対するオペレーションはスコープ外 18
  19. 19. © 2021, Amazon Web Services, Inc. or its Affiliates. 19
  20. 20. © 2021, Amazon Web Services, Inc. or its Affiliates. 「このEC2インスタンスの クラスタでコンテナを 実⾏したいです」 「このコンテナを3つのAZに 分散させて10個デプロイして、 このロードバランサーに つないでください」 Amazon ECS 20
  21. 21. © 2021, Amazon Web Services, Inc. or its Affiliates. Amazon ECS Anywhere Amazon Elastic Kubernetes Service (Amazon EKS) Amazon Elastic Container Service (Amazon ECS) AWS でのコンテナ運⽤ コンテナ関連サービス・ツール コンテナオーケストレーションサービス Amazon Elastic Container Registry (Amazon ECR) AWS Fargate Amazon EKS Anywhere Amazon EKS Distro Red Hat OpenShift AWS Batch Copilot CLI AWS App Mesh Amazon CloudWatch Container Insights AWS Proton Amazon Elastic Compute Cloud (Amazon EC2)
  22. 22. © 2021, Amazon Web Services, Inc. or its Affiliates. ベストプラクティス コンテナにフィットする開発・運⽤指針
  23. 23. © 2021, Amazon Web Services, Inc. or its Affiliates. https://12factor.net/ja/
  24. 24. © 2021, Amazon Web Services, Inc. or its Affiliates. コンテナにフィットする開発・運⽤指針 - https://12factor.net/ja/ The Twelve-Factor App 24
  25. 25. © 2021, Amazon Web Services, Inc. or its Affiliates. コンテナにフィットする開発・運⽤指針 - https://12factor.net/ja/ The Twelve-Factor App 1. コードベース: バージョン管理されている1つのコードベースと複数のデプロイ 2. 依存関係: 依存関係を明⽰的に宣⾔し分離する 3. 設定: 設定を環境変数に格納する 4. バックエンドサービス: バックエンドサービスをアタッチされたリソースとして扱う 5. ビルド、リリース、実⾏: ビルド、リリース、実⾏の3つのステージを厳密に分離する 6. プロセス: アプリケーションを1つもしくは複数のステートレスなプロセスとして実⾏する 7. ポートバインディング: ポートバインディングを通してサービスを公開する 8. 並⾏性: プロセスモデルによってスケールアウトする 9. 廃棄容易性: ⾼速な起動とグレースフルシャットダウンで堅牢性を最⼤化する 10.開発/本番⼀致: 開発、ステージング、本番環境をできるだけ⼀致させた状態を保つ 11.ログ: ログをイベントストリームとして扱う 12.管理プロセス: 管理タスクを1回限りのプロセスとして実⾏する 25
  26. 26. © 2021, Amazon Web Services, Inc. or its Affiliates. まとめ o コンテナの歴史と Docker 登場以来の急速な発展 o アプリケーションとインフラを “分離” する事でアプリケーションのデリバリー が素早くできる様になり、CI/CD, IaC, マイクロサービスへの取り組みなどの障 壁を下げた o CNCF を主体として多くの⼤⼿ベンダーが開発・サポートに関わり、コンテナ周 りのエコシステムが開発されている o Docker の主要な構成要素 o コンテナ、ネットワーク、イメージ、Dockerfile、ボリューム o コンテナのオーケストレーション o Amazon ECS、 Amazon EKS、他多数のコンテナ関連サービス・ツール o コンテナ開発・運⽤のベストプラクティス o The Twelve-Factor App 26
  27. 27. © 2021, Amazon Web Services, Inc. or its Affiliates. 本セッションの担当︓⻩ 光川(コウ コウセン) o 所属︓ アマゾンウェブサービスジャパン 株式会社 ソリューションアーキテクト o 経歴︓ ・SIer -> iDC事業者 -> AdTech系企業 -> AWS o 趣味︓ ・サッカー、卓球、アクアリウム、酒、海 o 好きなAWSサービス︓ ・Amazon EKS, Amazon Route 53
  28. 28. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS Black Belt Online Seminar とは o 「サービス別」 「ソリューション別」 「業種別」のそれぞれのテーマに 分け、アマゾン ウェブ サービス ジャパン株式会社が主催する オンラインセミナーシリーズです。 • AWSの技術担当者が、AWSの各サービスについてテーマごとに動画を公開します • お好きな時間、お好きな場所でご受講いただけるオンデマンド形式です • 動画を⼀時停⽌・スキップすることで、興味がある分野・項⽬だけの聴講も可能、 スキマ時間の学習にもお役⽴ていただけます
  29. 29. © 2021, Amazon Web Services, Inc. or its Affiliates. 内容についての注意点 • 本資料では2021年6⽉時点のサービス内容および価格についてご説明しています。最新の情報は AWS公式ウェブサイト(http://aws.amazon.com)にてご確認ください。 • 資料作成には⼗分注意しておりますが、資料内の価格とAWS公式ウェブサイト記載の価格に相違が あった場合、AWS公式ウェブサイトの価格を優先とさせていただきます。 • 価格は税抜表記となっています。⽇本居住者のお客様には別途消費税をご請求させていただきます。 • AWS does not offer binding price quotes. AWS pricing is publicly available and is subject to change in accordance with the AWS Customer Agreement available at http://aws.amazon.com/agreement/. Any pricing information included in this document is provided only as an estimate of usage charges for AWS services based on certain information that you have provided. Monthly charges will be based on your actual use of AWS services, and may vary from the estimates provided.
  30. 30. © 2021, Amazon Web Services, Inc. or its Affiliates. 本資料に関するお問い合わせ・ご感想 o 技術的な内容に関しましては、有料のAWSサポート窓⼝へお問い合わせくだ さい o https://aws.amazon.com/jp/premiumsupport/ o 料⾦⾯でのお問い合わせに関しましては、カスタマーサポート窓⼝へお問い合 わせください(マネジメントコンソールへのログインが必要です) o https://console.aws.amazon.com/support/home#/case/create?issueTy pe=customer-service o 具体的な案件に対する構成相談は、後述する個別技術相談会をご活⽤ください ご感想はTwitterへ︕ハッシュタグは以下をご利⽤ください #awsblackbelt
  31. 31. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS の⽇本語資料の場所「AWS 資料」で検索 https://amzn.to/JPArchive
  32. 32. © 2021, Amazon Web Services, Inc. or its Affiliates. AWS のハンズオン資料の場所「AWS ハンズオン」で検索 https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-hands-on/
  33. 33. © 2021, Amazon Web Services, Inc. or its Affiliates. で[検索] AWS イベント 毎週”W-A個別技術相談会”を実施中 oAWSのソリューションアーキテクト(SA)に 対策などを相談することも可能 o申込みはイベント告知サイトから (https://aws.amazon.com/jp/about-aws/events/) AWS Well-Architected 個別技術相談会 34
  34. 34. © 2021, Amazon Web Services, Inc. or its Affiliates. ご視聴ありがとうございました
  • guangchuanhuang

    Sep. 21, 2021

AWS Black Belt Online Seminarの最新コンテンツ: https://aws.amazon.com/jp/aws-jp-introduction/#new 過去に開催されたオンラインセミナーのコンテンツ一覧: https://aws.amazon.com/jp/aws-jp-introduction/aws-jp-webinar-service-cut/

Views

Total views

349

On Slideshare

0

From embeds

0

Number of embeds

76

Actions

Downloads

0

Shares

0

Comments

0

Likes

1

×