Amazon Web Services ブログ

Tag: Amazon ECS

AWS Summit Tokyo 2017でのAmazon EC2 Container Service (ECS) 関連セッションまとめ

5月末〜6月頭に開催されたAWS Summit Tokyo 2017において、を実際にご利用頂いているお客様からの導入事例セッションとAWSからのTechセッションを合わせると、なんと11ものAmazon ECS関連セッションが行われました。Summit全体で130以上のセッションがありましたので、その中で10%程度がAmazon ECS関連だったということになります。Amazon ECSは、2015年4月にGA(東京リージョン含む)して以来、着実にお客様に導入を頂き、スタートアップからエンタープライズまで、新規システムだけでなくオンプレからの移行でも利用される標準的なサービスとなってきたことの表れかと思います。 この投稿では、それらのセッションを一気に見返せる様に情報を集約してお届けしたいと思います。これらの情報をご覧になって、Amazon ECSの利用をぜひご検討下さいませ。 導入事例トラック ナビタイムサービスにおける、Amazon ECS を活用したシステム移行 ~『乗換NAVITIME』での移行事例 ~ 資料 [リコー] サービス全断はダメ、ゼッタイ。途切れないテレビ会議システムを目指して 〜AWS を最大限活用して可用性を高める秘策〜 資料 動画 クックパッドの機械学習を支える基盤のつくりかた 資料 動画 Amazon ECS と SpotFleet を活用した低コストでスケーラブルなジョブワーカーシステム (※株式会社インティメート・マージャー様事例) 資料 動画 [Intelligence] オンプレから移行するので、Amazon ECS でコンテナ化と Terraform でインフラコード化した話 資料 DAU 100 万人突破! 急成長を支える Shadowverse のインフラ技術 資料 DMM における会員基盤プラットフォームへのAWS導入から活用事例の紹介 資料 動画 [ABEJA] IoT / Bigdata / AI […]

Read More

Amazon EC2 スポットインスタンスを利用した Amazon ECSクラスターの起動

この記事は気前よく次の方から寄贈されました。 Chad Schmutzer Solutions Architect Shawn O’Connor Solutions Architect   本日、Amazon EC2 Container Service(Amazon ECS)が、ECSコンソール上から直接 Amazon EC2 Spot Instances上に ECSクラスターを起動させる機能をサポートする事を発表しました。 スポットインスタンスを利用すると、Amazon EC2の余剰コンピュートキャパシティに入札することが出来ます。スポットインスタンスは通常、オンデマンドインスタンスよりも50-90%安い価格です。スポットインスタンス上でECSクラスターを起動することで、既存のコンテナ化されたワークロードの実行コストを削減したり、同じ予算を維持しながら、コンピュートキャパシティを2倍から10倍に増やすことが可能です。もしくは、その両方を実現することもできます! スポットインスタンスを利用する場合、インスタンス時間あたりに支払う価格を指定します。現在のスポットプライスを上回る価格で入札している間、スポットインスタンスは起動します。スポットプライスの上昇によりインスタンスが回収された場合、インスタンスが実行された分の時間は請求されません。 ECSコンソールはスポットインスタンスをデプロイするために、 Spot Fleetを利用します。Spot Fleetは、利用者にとって最も良い価格となる様にスポットインスタンスを起動し、コンテナ化したアプリケーションの為にリクエストしたターゲットキャパシティ(インスタンスやvCPUの数で表現される)をデプロイしようします。スポットプライスや、空き容量の変化によってスポットインスタンスが回収された場合、Spot Fleetはターゲットキャパシティを維持しようとします。 コンテナはSpot Fleetが大きくなる多様なリソースプールに適してします。Spot Fleetを利用すると複数のスポットインスタンスプール(インスタンスタイプとアベイラビリティゾーンの組み合わせ)に渡ってキャパシティをプロビジョニング出来き、アプリケーションの可用性を向上させ、時間経過と共に運用コストを削減できます。ECSが提供する拡張性と柔軟性を備えたコンテナ配置システムとSpot Fleetとの組み合わせはコンテナ化されたワークロードを効率的にデプロイし、わずかなコストであらゆる規模のクラスタを容易に管理できます。 従来は、スポットインスタン上へのECSクラスタのデプロイは手動で行われてました。この記事では、ECSコンソール上からのSpot Fleetとの新しいインテグレーションによって、高い可用性とスケーラビリティをどの様に実現し、コンテナ化したワークロードをどの様にコストを削減するのかを紹介します。また、AWS CloudFormationを利用し、スポットインスタンス上にECSクラスターを構築する方法も紹介します。   スポットインスタンスで実行するECSクラスタの作成 AWS マネージメントコンソールを利用してECSクラスタを作成することが可能です。 Amazon ECSコンソールを開きます。 https://console.aws.amazon.com/ecs/ ナビゲーションパネル上でClustersを選択します。 Clustersページでは、Create Clusterを選択します。 Cluster nameに名前を入力します。 インスタンス設定では、プロビジョニングモデルとしてSpotを選択します。 配置戦略の選択 2つの利用可能なSpet Fleet配置戦略はDiversified戦略かLower price戦略です。 Spot Fleetで選択した配置戦略は、利用可能なスポットインスタンスプールからSpot Fleetをどの様に満たすかを決定します。diversified戦略を使用すると、スポットインスタンスは全てのプールにわたって分散されます。lowest price戦略を選択した場合、リクエストで指定された最低価格のプールから取得されます。 […]

Read More

Amazon EC2 Container Service – リリースに関する要約、お客様事例、コードについて

今回は、去年 に追加したいくつかの機能に関する概要と、お客様事例やコードについてご紹介します。このサービスは EC2 インスタンスのマネージド型クラスターの範囲内で Docker コンテナをいくつでも実行しやすくします。また、同サービスはコンソール、API、CloudFormation、CLI、PowerShell のサポートも備えています。簡単にアクセスできるように、Linux や Windows Docker イメージを EC2 Container Registry に保存できます。 リリースの要約 それでは ECS の最新機能と、その使用方法を説明したブログをいくつか見てみましょう:「アプリケーションの負荷分散 (Application Load Balancing)」- 去年は「アプリケーションロードバランサー (application load balancer)」のサポートを追加しました。この高性能なロードバランシングオプションはアプリケーションレベルで実行され、コンテンツベースのルーティングルールで定義することができます。ダイナミックポートをサポートし、複数のサービスでの共有が可能なため、コンテナ内でマイクロサービスを実行しやすくなります。詳細については「サービスロードバランシング (Service Load Balancing)」をご覧ください。 タスクで使用する IAM ロール – ECS タスクに IAM ロールを割り当てることでインフラストラクチャを安全にできます。これにより、各タスクごとに細かく設定しアクセス許可を付与できるので、各タスクが必要とするアクセス許可を割り当てることが可能です。詳しくは「タスクで使用する IAM ロール (IAM Roles for Tasks)」をご覧ください。 サービス Auto Scaling – 需要の変化に応じるため、サービス (タスク) のスケールダウンやスケールアップに関するスケーリングポリシーを定義できます。お客様は必要なタスクの最小数および最大数を選択し、1 つまたはそれ以上のスケーリングポリシーを作成するのみです。あとはサービス Auto Scaling で処理されます。この機能を活用するには「サービス Auto […]

Read More

AWS Batch上で深層学習

同僚のKiuk ChungがAWS Batchを使って深層学習をするという素晴らしい記事を書いてくれました。 GPUインスタンスは当然のように深層学習とペアになりますが、それはそのニューラルネットワークのアルゴリズムがGPUインスタンスの超並列処理能力を活かすことができるからです。AWSではg2やp2といったGPUインスタンスを提供しており、お客様はスケーラブルなGPUワークロードを実行することができます。AWS Batchを使うことでそのスケーラビリティをもっと効率よく使うことができます。(訳注: 丁度GTC 2017のKeynoteにて次期NVIDIA GPUであるV100に関する情報も発表されましたのでご参考頂ければ幸いです: AWS and NVIDIA Expand Deep Learning Partnership at GTC 2017) AWS Batchは皆さんの代わりに下回りの計算リソースを管理してくれるので、リソース管理のオーバーヘッド無しにモデリングすることに集中できます。AWS Batchにおける計算環境 (すなわちクラスタ)とは、皆さんのアカウント内のインスタンスのプールであり、AWS Batchはジョブの数に応じてインスタンスを起動したり削除したりしながらそれを動的にスケールしてくれます。これによって無駄なインスタンスを最小化でき、コストを最適化することができます。 さらに、AWS Batchは登録されたジョブが適切なインスタンスに配置されるように確実にスケジュールしてくれるので、ジョブのライフサイクルが管理されます。お客様独自のAMI利用の機能追加によって、AWS Batchの利用者はGPUが必要とされるジョブのためにもこの弾力性や利便性を活用することができるようになりました。 この記事ではGPUベースの深層学習ワークロードをAWS Batch上でどのように動かせばよいかをお見せします。Apache MXNetを使ってMNISTデータセットから手書きの数字を認識するための、畳み込みニューラルネットワーク(LeNetアーキテクチャ)の学習を例として使います。 MXNetのジョブをAWS Batchで実行する Apache MXNetは機能が豊富で、柔軟にプログラムが書け、高いスケーラビリティをもった深層学習フレームワークで、畳み込みニューラルネットワーク (CNNs)やlong short-term memory networks (LSTMs)を含む最新の深層モデルをサポートしています。 AWS Batchでジョブを実行するには3つのステップがあります: カスタムAMIを作成 AWS Batchのリソースを作成 学習ジョブを登録 カスタムAMIを作成 まず、NVIDIAドライバとAmazon ECSエージェントを含むAMIを作成するところから始めます。AWS Batchでは、計算環境を作成する時にimage_idを指定することで特定のAMIからインスタンスを起動させることができます。GPUが必要なジョブを実行しようとしているので、NVIDIAドライバが含まれたAMIが必要となります。 Launch Stackを選択して、あなたのアカウント上でus-east-1にCloudFromationテンプレートを起動します:  下にある様に、CloudFormationスタックのOutputsタブの中にあるAMIという値をメモしておきます。次のセクションで計算環境を作成する時にこれをimage_idの値として使います。 または、AWS BatchのドキュメンテーションのGPU有効なAMIを作成するに従っても良いです。 AWS Batchのリソースを作成 AMIを作成したら、以下のリソースを作成します: […]

Read More

AWSでの疎結合データセットの適合、検索、分析

あなたは刺激的な仮説を思いつきました。そして今、あなたは、それを証明する(あるいは反論する)ためにできるだけ多くのデータを見つけて分析したいと思っています。適用可能な多くのデータセットがありますが、それらは異なる人によって異なる時間に作成され、共通の標準形式に準拠していません。異なるものを意味する変数に対して同じ名前を、同じものを意味する変数に対して異なる名前を使用しています。異なる測定単位と異なるカテゴリを使用しています。あるものは他のものより多くの変数を持っています。そして、それらはすべてデータ品質の問題を抱えています(例えば、日時が間違っている、地理座標が間違っているなど)。 最初に、これらのデータセットを適合させ、同じことを意味する変数を識別し、これらの変数が同じ名前と単位を持つことを確認する方法が必要です。無効なデータでレコードをクリーンアップまたは削除する必要もあります。 データセットが適合したら、データを検索して、興味のあるデータセットを見つける必要があります。それらのすべてにあなたの仮説に関連するレコードがあるわけではありませんので、いくつかの重要な変数に絞り込んでデータセットを絞り込み、十分に一致するレコードが含まれていることを確認する必要があります。 関心のあるデータセットを特定したら、そのデータにカスタム分析を実行して仮説を証明し、美しいビジュアライゼーションを作成して世界と共有することができます。 このブログ記事では、これらの問題を解決する方法を示すサンプルアプリケーションについて説明します。サンプルアプリケーションをインストールすると、次のようになります。 異なる3つのデータセットを適合させて索引付けし、検索可能にします。 事前分析を行い、関連するデータセットを見つけるために、データセットを検索するための、データ駆動のカスタマイズ可能なUIを提示します。 Amazon AthenaやAmazon QuickSightとの統合により、カスタム解析やビジュアライゼーションが可能です

Read More

タスクIAMロールとパラメータストアを利用したAmazon ECSアプリケーションの秘密情報管理

同僚のStas Vonholskyが、Amazon ECSアプリケーションの秘密情報管理に関する素晴らしいブログを寄稿してくれました。 —– コンテナ化されたアプリケーションとマイクロサービス指向のアーキテクチャが普及するにつれて、アプリケーションデータベースにアクセスするためのパスワードなどの秘密情報を管理することは、より困難かつ重要になっています。 いくつか課題の例を挙げます: dev、test、prodなどのさまざまなアクセスパターンをコンテナ環境全体でサポートしたい ホストレベルではなくコンテナ/アプリケーションレベルで秘密情報へのアクセスを隔離したい サービスとしても、他サービスのクライアントとしても、アクセスが必要である疎結合なサービスが複数存在する この記事では、上で動作するコンテナアプリケーションの秘密情報管理をサポートする、新しくリリースされた機能に焦点を当てています。同僚のMatthew McCleanもAWSセキュリティブログに、S3とDockerを使用してECSベースのアプリケーションの秘密情報を管理する方法についての素晴らしい記事を公開しています。この記事では、コンテナパラメータ変数を使って秘密情報を受け渡し/保存する際の制限について説明しています。 多くの秘密情報管理ツールは、次のような機能を提供しています。 高セキュアなストレージシステム 集中管理機能 セキュアな認証と認証メカニズム 鍵管理および暗号化プロバイダとの統合 アクセスのための安全な導入メカニズム 監査 秘密情報のローテーションと失効 Amazon EC2 Systems Manager パラメータストア パラメータストアは、Amazon EC2 Systems Managerの1機能です。秘密情報のための集中化/暗号化されたデータストアを提供し、Run CommandやステートマネージャーなどのSystems Managerの他の機能と組み合わせることで多くの利点をもたらします。このサービスはフルマネージドで、高い可用性・セキュリティを持っています。 System Manager API、AWS CLI、およびAWS SDKを使用してパラメータストアにアクセスできるため、汎用の秘密情報管理ストアとして使用することができます。秘密情報は簡単にローテートしたり取り消したりすることができます。パラメータストアはと統合されているため、デフォルトまたはカスタムのKMSキーを使用して特定のパラメータを暗号化できます。 KMSキーをインポートすることで、独自のキーを使用して機密データを暗号化することも可能です。 パラメータストアへのアクセスはIAMポリシーによって実現にされ、リソースレベルのアクセス許可をサポートします。特定のパラメータまたは名前空間にアクセス権を持つIAMポリシーを使用して、これらのパラメータへのアクセスを制限することができます。 CloudTrailログを有効にすると、パラメータへのアクセスを記録することも可能です。 Amazon S3も上記の機能の多くを持つので、集約秘密情報ストアの実装にも使用できますが、パラメータストアにはさらに次のような利点があります。 アプリケーションライフサイクルのさまざまなステージをサポートするためのネームスペースを簡単に作成できる インスタンスまたはコンテナからKMSキーにアクセスし、ローカルメモリ内で復号化を実行することで、アプリケーションからパラメータの暗号化を抽象化するKMS統合機能を提供する パラメータの変更履歴を保管できる 他の多くのアプリケーションで使用されるS3とは別に制御できる 複数システムを実装する際のオーバーヘッドを削減する構成情報ストアとなる 使用料がかからない 注:本記事の公開時点では、Systems ManagerはVPCプライベートエンドポイント機能をサポートしていません。プライベートVPCからのパラメータストアエンドポイントへのより厳密なアクセスを強制するには、限られたIPアドレスセットからのみにアクセスを制限するIAMポリシーConditionとともに、Elastic IPアドレスを持つNATゲートウェイを使用します。 タスクIAMロール Amazon ECSタスク用のIAMロールを使用すると、タスク内のコンテナが使用するIAMロールを指定することができます。 AWSサービスと対話するアプリケーションは、AWSクレデンシャルでAPIリクエストに署名する必要があります。ECSタスクIAMロールは、Amazon EC2インスタンスプロファイルがEC2インスタンスにクレデンシャルを提供するのと同じように、コンテナアプリケーションのクレデンシャルを管理する方法を提供します。 AWSクレデンシャルを作成してコンテナに配布したり、EC2インスタンスロールを使用する代わりに、IAMロールをECSタスク定義またはRunTask […]

Read More

Amazon ECS におけるコンテナ インスタンス ドレイニングの自動化方法

同僚のMadhuri Periが素晴らしい記事を書いてくれました。AutoScalingグループのクラスタをスケールダウンする際にインスタンスからタスクを事前に削除するために、コンテナ インスタンス ドレイニングを利用する方法です。 —– Amazon ECSクラスタでは、クラスタからインスタンスを削除する必要があるタイミングというのがいくつかあります。例えば、システムを更新するとき、Dockerデーモンを更新するとき、あるいはクラスタのサイズをスケールダウンするときなどです。コンテナ インスタンス ドレイニング機能によって、クラスタ上のタスクに影響を与えることなく、コンテナインスタンスを削除することができます。この機能により、コンテナインスタンスがDRAINING状態である間はそのインスタンスに対して新しいタスクの配置がスケジュールされないようになり、利用可能なリソースがあればサービスがタスクをクラスタ上の他のコンテナインスタンスに移動してくれ、インスタンスを削除する前にタスクの移動が成功したことを待機できるようになります。 コンテナインスタンスの状態は、手動でDRAININGに変更することが可能です。しかしこの記事では、これらのプロセスを自動化するためにAutoScalingグループとAWS Lambdaを利用してコンテナ インスタンス ドレイニングを行う方法を説明します。 Amazon ECS オーバービュー Amazon ECSはコンテナ管理サービスです。クラスタやEC2インスタンスの論理グループ上でDockerコンテナの実行、停止、そして管理を容易にしてくれます。ECSを使ってタスクを実行するとき、タスクはクラスタに配置されます。Amazon ECSは指定されたレジストリからコンテナイメージをダウンロードし、そしてそのイメージをクラスタ内のコンテナインスタンス上で実行します。 コンテナ インスタンス ドレイニングの状態を扱う AutoScalingグループはライフサイクルフックをサポートしています。ライフサイクルフックは、インスタンスの起動や削除の前に独自の処理を完了するために呼び出されます。今回の例では、ライフサイクルフックは、2つの処理を実行するLambdaファンクションを呼び出します。 ECSコンテナインスタンスの状態をDRAININGに変更します。 コンテナインスタンス上にタスクが1つも残っていないことを確認します。もしドレイニング中のタスクがまだ存在する場合は、Lambdaファンクションを再度呼び出すためにSNSにメッセージを送信します。 コンテナインスタンス上で実行中のタスクがなくなるか、あるいはライフサイクルフックのハートビートタイムアウト(サンプルのCloudFormationテンプレートではTTL15分に設定)に達するか、どちらかの状態になるまでLambdaによってステップ2が繰り返されます。その後、制御はオートスケーリングのライフサイクルフックに戻され、そのインスタンスは削除されます。このプロセスを次の図に示します。 試してみましょう! この記事で説明した一連のリソースをセットアップするためにCloudFormationテンプレートを使用します。このCloudFormationテンプレートを使用するには、あなたのアカウントのS3バケットにLambdaデプロイメントパッケージをアップロードする必要があります。このテンプレートは次のリソースを作成します。 VPCと関連するネットワーク要素(サブネット、セキュリティグループ、ルートテーブルなど。) ECSクラスタ、ECSサービス、そしてサンプルのECSタスク定義 削除のライフサイクルフックと2つのEC2インスタンスが設定されたAutoScalingグループ Lambdaファンクション SNSトピック Lambdaを実行するために必要なIAMロール CloudFormationスタックを作成し、インスタンスの終了イベントをトリガーすることによってどのようにこのスタックが機能するのか見ていきます。 Amazon EC2のコンソールにおいて、AutoScalingグループを選択し、CloudFormationによって作成されたAutoScalingグループの名前(CloudFormationテンプレートのリソースのセクションから)を選択します。 操作、編集を選択し、インスタンスの希望の数を “1” に減らすようにサービスを更新します。これによって、2つのインスタンスのどちらか一方で終了プロセスが開始されます。 AutoScalingグループのインスタンスタブを選択します。1つのインスタンスのライフサイクルの状態が “Terminating:Wait” という値を示すはずです。 この状態になると、ライフサイクルフックが発火してSNSにメッセージが送信されます。そして、SNSメッセージトリガーに反応してLambdaファンクションが実行されます。 Lambdaファンクションによって、ECSコンテナインスタンスの状態がDRAININGに変更されます。その後、ECSサービススケジューラによってこのインスタンス上のタスクは停止され、利用可能なインスタンス上でタスクが起動されます。 ECSのコンソールに移動すれば、コンテナインスタンスの状態がDRAININGになっていることを確認できます。 タスクが全て完了すると、AutoScalingグループのアクティビティ履歴でEC2インスタンスの削除を確認できます。 どのように動作しているか 少しLambdaファンクションの内部的な動作を見てみましょう。ファンクションはまず最初に、受け取ったイベントのLifecycleTransitionの値が autoscaling:EC2_INSTANCE_TERMINATING にマッチするかをチェックします。 # もし受け取ったイベントがインスタンス終了中ならば・・・ if ‘LifecycleTransition’ […]

Read More

Amazon ECS Task Placement Policyのご紹介

本日、Amazon ECSはクラスタ上にどのようにしてタスクを配置するかを汎用的に制御することのできる機能を発表しました。以前は、特定のリソースの要求(例えば、特定のインスタンスタイプ)を満たすコンテナインスタンス上にタスクを配置する必要がある時は、カスタムスケジューラを作成してリソースをフィルタし、発見し、グループ化する必要がありました。 次の図は、新しいタスク配置処理の概要を示しています: これによって、コードを一切書かずともタスクがどのように配置されるかをカスタマイズすることができます。ECSは、インスタンスタイプやアベイラビリティゾーンの様な組み込み済の属性を付与していますし、加えてカスタムの属性もサポートしています。例えば、environment=productionといった属性でコンテナインスタンスをラベル付することができ、これらのリソースを見つけるためにList APIで操作することや、RunTaskとCreateService API操作でこれらのリソース上にタスクを配置することができます。 また、bin packやspreadといったplacement strategy (配置戦略)を使って、タスクがさらにどこに配置されるかを定義することもできます。ポリシーを連鎖させて洗練された配置を達成することもできます。例えば、g2.*のインスタンス上にのみタスクを配置し、アベイラビリティゾーンに渡って幅広く(spread)配置し、そして各ゾーンではメモリを基準にタスクをなるべく詰め込む(bin pack)というポリシーを作成できます。 はじめに、attribute (属性)を見てましょう。インスタンスタイプ等の組み込み済の属性を使って、コンテナインスタンスを見つけ、その上にタスクを配置することができます。以下の例では、クラスタ上の全てのt2インスタンスを見ることができます: aws ecs list-container-instances –filter “attribute:ecs.instance-type matches t2.*” { “containerInstanceArns”: [ “arn:aws:ecs:us-east-1:123456789000:container-instance/40f0e62c-38cc-4cd2-a28e-770fa9796ca1”, “arn:aws:ecs:us-east-1:123456789000:container-instance/eb6680ac-407e-42a6-abd3-1bbf57d7401f”, “arn:aws:ecs:us-east-1:123456789000:container-instance/ecc03e17-6cbd-4291-bf24-870fa9796bf2”, “arn:aws:ecs:us-east-1:123456789000:container-instance/fbc03e17-acbd-2291-df24-4324ab342a24”, “arn:aws:ecs:us-east-1:123456789000:container-instance/f9a69f54-9ce7-4f1d-bc62-b8a9cfe8e8e5” ] } 続いて、us-east-1aのアベイラビリティゾーンにあるt2インスタンスのみをリストしています: aws ecs list-container-instances –filter “attribute:ecs.instance-type matches t2.* and attribute:ecs.availability-zone == us-east-1a” { “containerInstanceArns”: [ “arn:aws:ecs:us-east-1:123456789000:container-instance/40f0e62c-38cc-4cd2-a28e-770fa9796ca1”, “arn:aws:ecs:us-east-1:123456789000:container-instance/eb6680ac-407e-42a6-abd3-1bbf57d7401f”, “arn:aws:ecs:us-east-1:123456789000:container-instance/ecc03e17-6cbd-4291-bf24-870fa9796bf2” ] } カスタム属性はECSのデータモデルを自身のカスタムメタデータ用にキーバリューのペアを使って拡張します。以下の例では、stack=prodという属性を特定のコンテナインスタンスに追加しています: aws ecs put-attributes –attributes […]

Read More

Amazon ECS – Windows コンテナ (ベータ版) のサポート

お客様がコンテナベースのコンピューティングについて習熟していて、コンテナ化の価値について少なくとも基礎的な理解があることを心から願っています。私が 2014 年に述べたように、クラウドベースのアプリケーションをコンテナのコレクションとしてパッケージ化し、それぞれを宣言により指定することで、開発環境と本稼働環境の一貫性、アーキテクチャベースとしての分散アプリケーションプラットフォーム、開発効率、運用効率など、数多くの利点が得られます。当社は 2014 年後半に、Linux コンテナのサポートを含む をリリースしました。今年は、これまでにアプリケーションの負荷分散のサポート、ECS タスクの IAM ロール、サービスの Auto Scaling、Amazon Linux コンテナイメージ、Blox オープンソーススケジューラを追加しました。 Windows コンテナのサポート 本日は、ECS の一連のリリースを継続し、Windows コンテナのベータレベルのサポートを追加します。当社が本稼働環境での使用に向けてこの機能を最終的に完成させる間、お客様は Windows アプリケーションのコンテナ化とテストを今すぐ開始できます。使用を開始するには、クラスターの作成時に Windows Server 2016 Base with Containers AMI を指定するだけです (同じクラスターに Linux と Windows を混在させることはできません)。また、Windows コンテナ AWS CloudFormation テンプレートを開始点として使用することもできます。テンプレートは VPC で実行され、コンテナインスタンスの設定可能な数で Windows を利用するクラスターが作成されます。また、IAM ロール、Application Load Balancer、セキュリティグループ、Amazon ECS タスク定義、Amazon ECS サービス、および Auto Scaling ポリシーも作成されます。テンプレートはそのままで使用することも、お客様独自の使用に合わせて変更することもできます。私はすべてのパーツの連携を示すために、CloudFormation Designer でテンプレートを公開しました。その構造をもう少し明確にするため、項目を再配置しました。それを次に示します。 […]

Read More

Blox – Amazon EC2 Container Serviceのための新しいオープンソーススケジューラ

2014年、私はについてお話して、Dockerベースのアプリケーションをビルドし実行し、そしてスケールさせることを如何に手助けしてくれるかをご紹介しました。そこでは3つのスケジューリングの選択肢(自動、手動、そしてカスタム)について話をし、スケジューラがインスタンスにどの様にタスクを割り当てるかを説明しました。 その時書いた記事では、カスタムスケジューラは現在のクラスタの状態を見るためにListContainerInstancesとDescribeContainerInstancesを定期的に呼び出す必要があると記しました。数週前、のサポートを追加することで各クラスタの状態を追跡する処理を簡素化しました。(これについて詳しくは、Amazon ECSイベントストリームで、クラスタの状態を監視をご覧下さい) この新しいイベントストリームが出たので、我々はカスタムスケジューラの作成をもっと簡単にしたいと思います。 本日、我々はBloxを開始します。この新しいオープンソースプロジェクトには、イベントストリームを処理してクラスタの状態を追跡し、状態をREST APIで利用可能にするサービスが含まれています。また、クラスタ内の各コンテナインスタンスにタスクを1つだけ実行するデーモンスケジューラも含まれています。このコンテナを1つずつ配置するモデルで、ログ処理やメトリクス収集のワークロードをサポートします。 こちらが”ブロック図”です (ダジャレじゃありません ※訳注 BloxとBlockをかけています): これはオープンソースのプロジェクトです; プルリクエストや機能要望を楽しみにしています。詳しい情報は、Amazon EC2 Container Serviceより、Bloxをご紹介をご覧下さい。 — Jeff; 原文: Blox – New Open Source Scheduler for Amazon EC2 Container Service (翻訳: SA岩永)

Read More