オンラインセッション「はじめてのコンテナワークロード」個人的まとめ
(今更ながら)AWS Innovate オンラインカンファレンスに参加しました
昨日、AWS Innovate オンラインカンファレンスに参加してみました。
昨年からUdemyやらBlackbeltでAWSの学習はすすめていたのですが
オンタイムでAWSのカンファレンスに参加するのは初めてです。
様々なセッションが容易されている中で、以前から
「名前は知っているけどよく知らない」状態だった
Dockerコンテナ技術のセッションがあったので
「はじめてのコンテナワークロード」のセッションを拝聴させて頂きました。
セッション自体はPart1~Part3まであり、すべて見させて頂いたのですが
(スピーカーの原さんが息切れするほど笑)かなり濃密な内容で
特にPart2,3についてはビジネスでコンテナ技術を導入するにあたっての
障壁やケーススタディ的な要素が多かったため今回はPart1の内容で
学びとなった内容をまとめていきたいと思います。
セッションのゴール
- コンテナを持つ技術的な特徴と価値を整理
- 単一環境でコンテナを動かせるようになる
コンテナ仮想化とは
ひとつのホストOSの上に、アプリケーション実行に必要な要素を一通りそろえた
「仮想的なユーザー空間(コンテナ)」を 複数作成することができる技術
通常のサーバー仮想化と比較
- サーバ仮想化では
ひとつのホストOSの上にさらに仮想OSを作り、アプリケーション実行環境を構築する
→OS起動しアプリケーションが利用可能になるまでのオーバーヘッドが長くなりがち
- コンテナ仮想化では
「コンテナ」は実質的にはホストOSのプロセスを切り出して独立させているだけ
→アプリケーション実行までの待ち時間が短くてすむ
コンテナ技術導入で解決できる課題
- 環境差異によるアプリケーション実行時の障害やそれを防止するための環境移動時のコード修正/設定変更
- 開発/本番環境の環境差異(ランタイムのバージョンや環境変数)などが起因とされる障害
コンテナ技術がどのように解決するか
アプリケーションの
- ランタイム/エンジン
- 依存ライブラリ/パッケージ
- コード
をまとめて「コンテナイメージ化」し、各環境間でイメージを簡単にデリバリすることが可能
まとめ
Dockerコンテナの技術的特性
- アプリケーションの依存物すべてをひとつにパッケージングが可能
- パッケージの統一的なデリバリ方法を実現するコマンド群(イメージレジストリとのやり取り)
- コンテナを実行するための統一的なコマンド群
期待できる効果
- アプリケーション実行環境の再現容易性向上
→環境依存要素の考慮不要 - アプリケーションの可搬性向上
→push/pullでアプリケーションを動かせる - (上記によって)高速な開発とリリースサイクルが実現できる
セッションを受講してみて
これまで「名前を聞いたことがあるけど、よく知らない技術」だったコンテナ技術について
技術的な特性や利点を整理して理解することができました。
今後も気になっているけど参入障壁高い(そう感じてしまいがち)技術については
軽い気持ちでWebinarやセッションを聞いて、やってみるというサイクルを活用していきたいと思います。
また、少し調べてみると個人開発レベルでもDockerコンテナを利用して開発している方もいるようです。
確かに「ローカルで開発した環境をまるごとイメージ化してAWSの仮想サーバにDocker環境作ってローンチ」は
かなり開発スピード上りそうで魅力的ですね。
参考
注目を浴びる「Dockerコンテナ」、従来の仮想化と何が違うのか? | 新野淳一コラム | 東京エレクトロンデバイス株式会社