EC2 Container Registry – 一般利用可能に
私の同僚のAndrew Thomasが新しいEC2 Container Registryを紹介するゲスト投稿を書いてくれました!
— Jeff;
Amazon EC2 Container Registry (ECR)が本日一般利用可能となったことをお知らせできてとてもうれしいです。Amazon ECRは完全マネージドなDockerコンテナレジストリで、開発者はDockerコンテナイメージを保存し管理しデプロイすることが簡単にできます。我々はこのサービスをAWS re:Inventで事前アナウンスを行い、それ以来開発者からの多数の興味と熱気を受け取ってきました。
我々がAmazon ECRを開発した理由は、多くのお客様から、自身でプライベートDockerイメージレジストリを立てており、インフラの管理や一度に何百ものイメージのpullが走るといった大規模なデプロイを捌く必要があるなど、多くの課題を持っていると伺ったためです。セルフホストと言われるやり方は2つ以上のAWSリージョンにまたがるクラスタにコンテナイメージをデプロイするのが特に難しいです。加えて、証明書や認証情報を管理せずとも、レポジトリやイメージのアクセスを細かく制御したいということもよく言われました。
Amazon ECRはこれらの要求全て、そしてそれ以上の要求に合う様に設計されました。もうコンテナレジストリのインフラのためにインストールや運用、スケールをする必要はありません。Amazon ECRはお客様もイメージを高い可用性とスケーラブルな仕組みで保管し、アプリケーションのコンテナとして安定してデプロイできるようにしてくれます。またAmazon ECRはとても安全です。イメージはHTTPSで経路暗号化されてレジストリに転送されますし、自動的に暗号化されてS3に保存されます。AWS Identity and Access Management (IAM)のユーザとロールを使って、EC2インスタンス上で直接認証情報を管理する必要もなく、権限管理のポリシーやイメージへのアクセス制御を設定することができます。これによって特定のユーザや、ひいては特定のAWSアカウントとイメージを共有することができます。
Amazon EC2 Container RegistryはAmazon ECSとDocker CLIとも連携をしているため、 開発や本番でのワークフローをシンプルにできます。開発機からはDocker CLIを使ってAmazon ECRにコンテナイメージを簡単にpushでき、本番デプロイではAmazon ECSで直接pullできます。
それでは、Amazon ECRとAmazon ECSを使ってDockerコンテナの保存、管理、デプロイがどの程度簡単にできるかを見てみましょう。
Amazon ECRコンソール
Amazon ECRのコンソールではイメージの管理とレポジトリの権限設定を簡単に行えます。コンソールにアクセスするには、Amazon ECSコンソールの中にある”Repositories”セクションをクリックします。ここでは例として、単純なPHPのコンテナイメージをAmazon ECRにpushし、権限を設定し、Amazon ECSクラスタにイメージをデプロイしてみます。
Amazon ECRのコンソールに着いたら、”Get Started”を選択します。すると以下の様にシンプルなウィザードでレポジトリを作成し設定することができます。
レポジトリの名前を入力すると、Amazon ECRにアクセスする時に使うエンドポイントURLを見ることができます。デフォルトではこのレポジトリへのアクセス権を持っているので、今は権限を心配する必要はなく、後でECRコンソールで設定できます。
Next stepをクリックすると、今作ったレポジトリにDockerイメージをターミナルからbuildしpushするために必要なコマンドを見ることができます。DockerfileはECS Docker basics tutorialのものを使ってみましょう。ここにあるコマンドはAWS Command Line Interface (CLI)とDocker CLIが開発機にインストールしてあることか必要です。次に一つ一つのコマンドをコピーして実行することで、loginし、ECRのURIでイメージにtagをつけ、レポジトリにイメージをpushします。
これらのステップが完了したら、Doneをクリックしイメージを管理できるレポジトリの画面に遷移します。
権限の設定
Amazon ECRはAWS Identity and Access Managementを使って、誰が/何が(例えばEC2インスタンス)コンテナイメージにアクセスできるのかを制御し監視しています。 我々はAmazon ECRコンソールでレポジトリに対するリソースベースのポリシーを簡単に作成できるように権限ツールを開発しました。
このツールを使うには、レポジトリのページでPermissionsのタブをクリックしAddを選択します。するとIAMステートメントに対応したフォームのフィールドが出てきます。ステートメントIDを入力した後に、明示的にアクセスの拒否か許可をすべきかどうかを選択します。次にAWSアカウント番号を入力するか、エンティティテーブルのユーザやロールを選択することで誰にこのステートメントを適応すべきかを設定できます。
必要なエンティティを選択したら、ステートメントに適応すべきアクションを設定できます。便利なので、ここでは左側のトグルを使って、push、push/pull、そして管理者権限のために必要なアクションを簡単に選択します。
Amazon ECSとの連携
レポジトリを作成し、イメージをpushし、権限を設定したら、ECSにイメージをデプロイする準備が整いました。
ECSコンソールのTask Definitionsを選択し、新しいTask Definition作成ページでImageフィールドにAmazon ECRレポジトリを指定します。Task Definitionが設定できたら、コンソールのClustersのページに行き、そのTask Definitionのための新しいServiceを作成します。Serviceを作成すると、ECS Agentが自動的にECRからイメージをpullしてきて実行を開始してくれます。
First-Runも更新
Amazon ECSのチュートリアルウィザードも、Amazon ECRにイメージをpushしそのイメージをECSにデプロイできるように更新しました。
ECSのパートナーサポート
re:InventでECS上にコンテナのデプロイ自動化を助けてくれる多数のCI/CD提供者とのパートナーシップを発表しました。本日、我々のパートナーがAmazon ECRのサポートを追加してくれ、イメージをAWS上で自動的にビルドし保存しデプロイするためのエンドツーエンドのコンテナパイプラインを、開発者が簡単に作成し協調させられるようにしてくれたことを発表できて興奮しています。我々のローンチパートナーであるShippable、Codeship、Soolano Labs、CloudBees、そしてCircleCIのソリューションを確認してみてください。
また、ECRに保存されたイメージの脆弱性スキャンを提供するために、TwistLockとのパートナーシップを発表できることにも興奮しています。これによって開発者はAmazon ECRにpushする前に可能性のあるセキュリティ脅威をより簡単に評価でき、本番環境で実行されているコンテナを監視することもできます。我々のパートナーシップについてより詳しい情報はContainer Partners Pageをご覧下さい。
リージョン
本日から、Amazon ECRはUS East(Northern Virginia)で利用可能です。追加のリージョンもすぐです!
価格
Amazon ECRは、イメージが使っているストレージ課金と、Amazon ECRからインターネットや他のリージョンへのデータ転送料のみがかかります。詳しくはECR Pricing pageをご覧下さい。
今日から始めてみましょう
EC2 Container ServiceのチュートリアルページでAmazon ECRを今日から始めてみましょう!
— Andrew Thomas, Senior Product Manager
原文: https://aws.amazon.com/blogs/aws/ec2-container-registry-now-generally-available/ (翻訳: SA岩永)
コメント