AWSのコンテナサービスとは
コンテナとは、プログラムの実行環境を隔離する仕組み。
Virtual BoxやVMwareなどの仮想マシンは、OS全部を仮想環境に含む。
しかし、コンテナでは、アプリケーションプロセスのみをコンテナ内に隔離し、それに必要なライブラリとデータのみを含む。そのため、とても軽量で、管理も容易。コンテナの形式としてはDockerが有名。AWSではDocker形式のコンテナをサポートする。
一般にコンテナサービスには、コンテナを配置・管理するための「レジストリサービス」と、コンテナ化されたアプリケーションの実行やコンテンナ同士の調整を行う「オーケストレーションサービス」が必要。
AWSのレジストリサービスにはAmazon Elastic Container Registry(ECR) がある。
オーケストレーションサービスには、AWSの各サービスから成るAmazon Elastic Container Service(ECS) と最近脚光を浴びているKubernetes(クーベネティス)があると互換性があるAmazon Elastic Kubernetes Serviceがある。
コンテナサービスの用語
項目 | 内容 |
---|---|
コンテナ | プログラム一式をまとめて隔離して実行するシステムのこと |
Dockerイメージ | コンテナを構成するプログラムや設定などの一式をさす |
Docker Hub | Dockerイメージを登録できるサービス。AWSでは、私的なDocker HubとしてECRを使用する。 |
Amazon EC2 Container Registory(ECR) | Dockerイメージを登録できるサービス |
Amazon ECS | Dockerイメージから、EC2やAWS Fargate上にコンテナを作って実行するサービス |
Kubernetes | コンテナを総合管理する仕組み。 |
Amazon Elastic Container Service for Kubernetes(EKS) | KubernetesをAWSに載せたサービス |
AWS Fargate | コンテナを実行するEC2を自動管理するための仕組み |
AWS Fargateの仕組み
AWS Fargateは、必要に応じてEC2インスタンスを起動し、その中にコンテナを割り当てて実行する仕組み。
コンテナサービスの料金
EC2起動タイプの場合は、EC2料金のみで、追加料金がない。
Fargateタイプの場合は、割り当てCPUごとの実行単価 × 稼働時間 × コンテナ数 + メモリ単価 × 稼働時間 × コンテナ数 + データ転送料金。
余談
AWSの注目されるサービス
- Amazon SageMakerとAWS Deep Learning AMI
AWSで機械学習を使用するにはAmazon SageMakerを使う方法とAWS Deep Learning AMIを使う方法がある。
Amazon SageMakerは機械学習モデルを簡単かつ迅速に構築・トレーニング、ホスト環境にデプロイするための、完全マネージドサービス。機械学習法に各種アルゴリズムや学習フレームワークを組み込んだJupyter Notebookのインスタンスを用いてモデルの構築とトレーニングを行う。
一方で、AWS Deep Learning AMIは、深層学習用のフレームワークとインターフェースを有するAmazon EC2インスタンス。SageMakerより環境や手法の選択幅が広く、カスタマイズ可能で、機械学習の詳細な研究に向く。 - AWS IoT Core
AWS IoT CoreはIoTデバイスとAWS、またはIoTデバイス間のインターネット接続・通信を行うためのマネージド型クラウドサービス。数十億個のIoTデバイスと数兆件のメッセージを取り扱える。
HTTTPなどの標準通信プロトコルをサポートしており、TLS暗号化と認証により通信の安全を守りる。AWS SDKおよびAWS IoT Device SDKを用いて、IoTデバイスから送信されたデータの処理、IoTデバイスを操作するアプリケーションの開発と実行ができる。 - Amazon Lumberyard
Amazon Lumberyardはゲームエンジン。付属のゲームエディタでゲームを作成する。
入手のしようも無料で、運用のためにAWSを利用するときに料金がかかるだけで、ゲーム収益からの支払い義務もない。
ライブゲームやマルチプレイヤーゲームの運営、動的コンテンツの利用にはクラウドコンピューティング・ネットワークリソースやストレージを使用する事になるため、そのときにAWSクラウドと統合されたLumberyardの特徴が活かされる。
ライブストリーミング配信のプラットフォームのTwitchとも連携でき、動画付きのチュートリアルやドキュメント、フォーラムなどのでゲーム開発を取得できる。