Amazon Web Services ブログ

Category: General

詳解: Amazon ECSのタスクネットワーク

この記事はECSのSr. Software Dev EngineerのAnirudh Aithalの寄稿です。 2017年11月14日に、AWSはコンテナにElastic Network InterfaceをアタッチできるようにするAmazon ECSのTask Networkingを発表しました。 この記事では、ECSが管理するインスタンス(コンテナインスタンスと呼ばれます)上でContainer Networking Interfaceプラグインを使って、この新しいコンテナネイティブなawsvpcネットワークモードがどのように実装されているかを詳しくご紹介したいと思います。 こちらはAmazon ECSでタスクネットワークが動作するかにdeep diveしたものです。もし自身のコンテナ化したアプリケーションでどうやってタスクネットワークを使い始めれば良いかについて学びたい時には、Amazon ECSコンテナにCloud Native Networkingが登場をご覧下さい。Cloud Native Computing Foundation (CNCF)がContainer Networking Interface (CNI)プロジェクトをホストしており、Linuxコンテナでネットワークインターフェースを設定するためのプラグインを書くための仕様やライブラリが含まれています。AWSのクラウドネイティブコンピューティングについての詳細は、Adrian CockcroftのCloud Native Computingについての投稿をご覧下さい。 コンテナインスタンスのセットアップ コンテナインスタンス上でのタスクネットワーク有効化の詳細をご説明する前に、ECSの典型的なインスタンスがどのようになっているかを見てみましょう。 上の図は典型的なコンテナインスタンスを示しています。ECS agentは自身もコンテナとして実行されているのですが、以下のような責任を負っています: EC2インスタンスをECSのバックエンドに登録 コンテナインスタンスに対してECSバックエンドが発生させたタスク状態の変化を、正しく適応 Dockerデーモンと会話しながら、コンテナの作成、開始、停止、監視 コンテナの状態とタスクの状態の遷移をECSバックエンドにリレー ECS agentはその管理下のコンテナのスーパーバイザーの様に動作するので、Dockerデーモン(Dockerのデフォルトネットワークモードで設定されたコンテナ用)、又はCNIプラグイン達(ネットワークモードがawsvpcで設定されたタスク内のコンテナ)のための、ネットワーク設定をする難しさをオフロードしてくれます。 いずれの場合にも、コンテナのネットワークスタックは、ネットワークのnamespaceを通じて設定されます。ip-netns(8)のマニュアルによると「ネットワークnamespaceは論理的なネットワークスタックのコピーで、自身のルーティング、ファイアウォールルール、ネットワークデバイスを持っています。」 とあります。ネットワークnamespaceの構成によって、ホスト上で動いているプロセスやコンテナ間でのネットワークスタックの隔離を可能としてくれます。 ネットワークnamespaceとCNIプラグイン CNIプラグインとは、CNI仕様を満たしコンテナのネットワーク接続性の設定を行う実行ファイル群です。CNIプロジェクトではプラグインの仕様を定義し、プラグインが利用するライブラリを提供することで、一貫していて信頼でき、かつ簡素なプラグイン用のインタフェースを提供してくれます。 コンテナやネットワークnamespaceを指定してプラグインを呼び出す時に、ADDコマンドでコンテナにネットワークインターフェースを追加したり、DELコマンドでそれを落としたりします。例えばリファレンスのBridgeプラグインは、ホストネットワークnamespaceの中にいるブリッジに対してホスト上の全てのコンテナを追加します。 このプラグインのモデルはECS agentの「コンテナのライフサイクルへの最小限の介入」というモデルと相性が良く、agentはコンテナのネットワーク設定の詳細について考慮する必要がなくなります。また拡張性の高いモデルなので、将来必要になった時には、agentが異なるプラグイン群を利用できるようにスイッチさせることもできます。最後に、これらプラグインは必要な時に呼び出されるだけなので、その死活監視をECS agentがする必要はありません。 ECS agentからCNIプラグインを呼び出す ECSがElastic Network Interfaceをインスタンスにアタッチし、agentに対しそのElastic Network Interfaceをタスク内のコンテナに対してプロビジョンするようにメッセージを送った時には、(任意のネットワークデバイスを使う) そのElastic […]

Read More

Amazon ECSコンテナにCloud Native Networkingが登場

この記事はECSのSr. Software Dev EngineerのAnirudh Aithalの寄稿です。 2017年11月14日に、AWSはAmazon ECSのTask Networkingを発表しました。これによって、Elastic Network Interfaceを使ったAmazon EC2のネットワーク機能をタスクに持ち込むことができるようになります。 Elastic Network InterfaceはVPC内のインスタンスにアタッチすることができる仮想的なネットワークインタフェースです。EC2の仮想マシンを起動する時には、インスタンスにネットワークの機能を提供するために自動的に1つのElastic Network Interfaceがプロビジョンされます。 タスクは実行されるコンテナの論理的なグループです。これまでは、Amazon ECSで実行されるタスクはそれが動くEC2ホストのElastic Network Interfaceを共有していました。これからは、新しいawsvpcというネットワークモードを使うことで、Elastic Network Interfaceが直接タスクにアタッチされます。 これによってネットワークの設定を簡略化することができ、VPCが持っているネットワークの全機能、隔離性、そしてセキュリティの制御を各コンテナにEC2インスタンスと同様のレベルで利用することができます。 この記事では、awsvpcモードがどのように動作し、ECSのタスクでどのようにElastic Network Interfaceを使い始めることができるかをご紹介します。 背景: EC2のElastic Network Interface VPC内にEC2インスタンスを起動する時には、各インスタンスが互いに通信できるようにするために、追加のオーバーレイネットワークを設定する必要はありません。標準で、VPCのルーティングテーブルがインスタンスや他のエンドポイント間での通信をシームレスに実現してくれます。これは、Elastic Network Interfaceと呼ばれるVPC内の仮想的なネットワーク・インタフェースによって可能となっています。全ての起動されるEC2インスタンスは自動的に1つのElastic Network Interface(プライマリネットワークインタフェース)がアサインされます。サブネット、セキュリティグループといった全てのネットワークパラメータは、このプライマリネットワークインタフェースの属性として扱われます。 さらに、各Elastic Network Interfaceは作成時にVPCによってIPv4アドレス(プライマリIPv4アドレス)が割当られます。このプライマリアドレスはユニークでVPC内でルーティング可能なものです。これによって、VPCは実際はフラットなネットワークとなり、ネットワークトポロジを簡潔なものとしてくれます。 Elastic Network InterfaceはVPC上で多様なエンドポイントとの接続を実現するための基本的なビルディングブロックとみなすことができ、そのうえでより高レベルな抽象レイヤを構築することができます。これによってElastic Network Interfacdeは以下の機能を利用することが可能となっています: VPCネイティブなIPv4アドレスとルーティング (VPC上でのインスタンス間や他のエンドポイントとの間) ネットワークトラフィックの隔離 ACLとファイアウォールルール(セキュリティグループ)を使ったネットワークポリシーの強制 (サブネットのCIDRを通じた)IPv4アドレスレンジの強制 なぜawsvpcを使うのか? 以前はECSはDockerが提供する標準のネットワークの挙動が提供するネットワーク機能に依存した形でコンテナ向けのネットワークスタックを構成していました。デフォルトのBridgeネットワークモードでは、インスタンス上のコンテナ達はdocker0ブリッジを使って互いにつながっています。インスタンス外のエンドポイントと通信する時には、コンテナはこのブリッジを利用し、それが実行されているインスタンスのプライマリネットワークインタフェースを使います。コンテナは、ファイアウォールルール(セキュリティグループ)やIPアドレスは、そのプライマリElastic Network Interfaceのネットワーク属性を共有しまた依存しています。 これは、Dockerによって割当られたIPアドレス(ローカルスコープのアドレスプールから割当られます)を使ってもこれらのコンテナに到達できないことと、細かいNetwork ACLやファイアウォールルールを強制できないことを意味します。代わりに、VPCからはインスタンスのプライマリElastic Network […]

Read More

12 月の AWS Black Belt オンラインセミナーのご案内

こんにちは。プロフェッショナル サービスの宮本です。AWS Black Belt オンラインセミナー12月の配信についてご案内させて頂きます。サービスカットは、10/24 に Generally Available を迎えた Amazon Aurora with PostgreSQL Compatibility をはじめ、今月も様々なテーマを取り扱います。また、ソリューションカットは、「AWSサービスを利用したアプリケーション開発を始めよう」と題して、AWSにおけるアプリケーション開発に活用できる様々なサービスについてご紹介や、AWSにおけるIPv6のサポート状況についてご紹介します。                         12月の開催予定 サービスカット 12/6(水) 18:00-19:00 Amazon Elasticsearch Service 12/14(木) 18:00-19:00 Amazon ElastiCache ※ 通常の開催曜日と異なりますのでご注意ください。 12/20(水) 18:00-19:00 Aurora PostgreSQL ソリューションカット 12/1(金) 12:00-13:00 AWS re:Invent 2017 Report  ※ 通常の開催曜日と異なりますのでご注意ください。 12/5(火) 12:00-13:00 […]

Read More

In the Research Spotlight: Zornitsa Kozareva

これは、ドイツのポツダム市にある Hasso-Plattner-Institut の Haojin Yang、Martin Fritzsche、Christian Bartz、Christoph Meinel 各氏によるゲスト投稿です。低パワーデバイスでのディープラーニングの実際の実装に関する研究を見るのはわくわくします。この作業は、強力で知的な機能を毎日の生活に拡大するうえで重要な役割を果たします。 近年、ディープラーニングテクノロジは非常に優れたパフォーマンスと多くのブレークスルーを学会と業界の両方で達成しています。しかし、最新鋭のディープモデルは計算コストが高く、大きなストレージ容量を消費します。ディープラーニングは、モバイルプラットフォーム、ウェアラブルデバイス、自律ロボット、IoT デバイスなどの領域で多数のアプリケーションによって強く要求されています。このような低パワーデバイスにおいてディープモデルをどのように効率的に適用するかが課題となります。 最近提案されたバイナリニューラルネットワーク (BNN) は、標準の算術演算ではなくビット単位演算を提供することで、メモリサイズとアクセスを大幅に減らします。最新鋭のディープラーニングモデルは、実行時に効率を大幅に向上させ、エネルギー消費を低くすることで、低パワーデバイスで実装することができます。この手法を開発者フレンドリーな OpenCL と組み合わせることで (VHDL/Verilog と比較した場合)、FPGA がディープラーニング用の実行可能なオプションとなります。 この投稿では、BMXNet についてご紹介します。これは Apache MXNet に基づくオープンソースの BNN (バイナリニューラルネットワーク) です。開発された BNN レイヤーは他の標準ライブラリコンポーネントにシームレスに適用でき、GPU および CPU モードの両方で機能します。BMXNet は Hasso Plattner Institute のマルチメディア研究グループによって管理、開発され、Apache ライセンスに基づいてリリースされています。このライブラリ、いくつかのサンプルプロジェクト、およびトレーニング済みバイナリモデルのコレクションは、https://github.com/hpi-xnor からダウンロードして入手可能です。 フレームワーク BMXNet は、入力データと重みのバイナリ化をサポートするアクティベーション、畳み込み、および完全に接続されたレイヤーを提供します。これらのレイヤーは、対応する MXNet バリアントに対するドロップインリプレースメントとして設計されていて、QActivation、QConvolution、および QFullyConnected と呼ばれます。さらに、レイヤーによって計算されるビット幅を制御する追加のパラメータ act_bit を提供します。MXNet と比較した、提案のバイナリレイヤーの Python での使用例をリスト 1 およびリスト 2 に示します。当社は、ネットワークの最初のレイヤーおよび最後のレイヤーにバイナリレイヤーは使用しません。使用すると正確性が大幅に低下する可能性があるためです。BMXNet […]

Read More

AWSの自社認証局への移行に備える方法

更新 2017年12月2日: 本記事を初回に公開した2017/11/7の際、AWS CLIやPython SDK は 2015年2月5日 より古いバージョンを使っている場合に更新が必要としていましたが、2013年10月29日より古いバージョンが更新必要と修正させていただきます。 更新 2018年3月28日: Amazon Trust Services の表にある古い値を新しい値に置き換えました。 TLS (Transport Layer Security, 以前は SSL と呼ばれていました) はインターネットでやりとりされる情報を暗号化するために不可欠です。例えば、Amazon.com ではウェブサイト上の全トラフィックに TLS を使用していますし、AWS は AWS サービスへの安全な呼び出しに使用しています。 証明書と呼ぶ電子ドキュメントは、暗号化した接続を行う際にサーバのアイデンティティを証明します。アドレスバーに入力した Web サイトとブラウザが安全に通信しているかを検査するのに証明書は役立ちます。CA としても知られている 認証局 は、特定のドメイン名に対して証明書を発行します。ドメインが信頼された認証局から発行された証明書を提示すると、ブラウザやアプリケーションは通信を行っても安全だとわかります。 2016年 1月、AWS は AWS Certificate Manager (ACM) の提供を開始しました。このサービスは、AWS サービスで使用できる SSL/TLS 証明書を簡単に作成、管理できるようにします。証明書にはアマゾンの自社認証局 Amazon Trust Services から発行されたものを追加料金無しで利用できます。ブラウザやその他のアプリケーションが証明書を信頼するには、証明書の発行者がブラウザなどが信頼している認証局一覧である 信頼ストア に含まれている必要があります。もし信頼ストアに発行した認証局が含まれていない場合は、ブラウザはエラーメッセージ(参考例)を表示したり、アプリケーションは独自のエラーを表示します。AWS は Amazon Trust Services […]

Read More

アプリ内にボイスインターフェースを開発する方法 Astro Technology

今回のブログは Astro Technology, Inc. の CTO である Roland Schemers 氏より寄稿いただきました。Astro は同社について次のように説明しています。「当社はユーザーやチーム向けに開発した人工知能を使用する Mac や iOS および Android 用のメールアプリを製作しています。アプリ内のメールボイスアシスタント、Astrobot Voice を使えば、Astro アプリを終了せずにメールを読んだり返信することができます。」 そして最近では Astrobot Voice という初のアプリに組み込まれているメールボイスアシスタントをリリースしたばかりです。これにより、iOS 向け Astro や Android 向けアプリを終了する必要なく、メールの読み取り、管理、返信が可能になりました。 Astro が 6 月に Amazon Alexa スキルをリリースしてから、我々はより多くのユーザーが音声でメール管理をできるようにしたいと考えました。そこで、今回のブログではなぜ我々がこうした選択を取ったのか技術面から説明し、どのようにこれを実現しどういったテクノロジーを使用したのかご説明します。 アプリ内ボイスを構築する理由は? 当社では Amazon Echo を愛用しています。実際、Astro の新入社員には「ようこそ」という意味はもちろん、我々の Alexa スキルを社内で試験運用することを兼ねて、各自に Echo Dot を提供しています。結果として私達のスキルが上々であることが分かり、より多くのユーザー、そしてさらに様々な場所で取り入れられる方法を新たに見つけることもできました。そこでアプリ内ボイスを構築できるか、その可能性を探ってみることにしたのです。 ソフトウェアの選択 アプリ内ボイスの構築方法を決定する上で、我々はいくつものオプションを検討しましたが、その上でいくつかのポイントを念頭に置きました。 まず、当社のテキストベースアシスタント (api.ai で実行) または Alexa スキルからできるだけ多くのコードやロジックを再使用することです。 […]

Read More

Cost allocation tagsについて

AWS リソースにタグを付け、タグごとにコストの内訳を確認する機能は、以前から提供されていました。コスト配分の機能は 2012 年に開始され (「お客様の請求のための AWS コスト配分」を参照)、当社はその他のサービスのサポートを安定して追加してきました。最も最近では DynamoDB (「Amazon DynamoDB 用のコスト配分タグの概要」)、Lambda (「AWS Lambda がタグ付けとコスト配分をサポート」)、EBS (「新規 – AWS Snapshots 用のコスト配分」) が追加されました。 本日は、Amazon Simple Queue Service (SQS) 用のタグベースのコスト配分を発表いたします。これにより、キューにタグを割り当て、それを使用して、アプリケーション、アプリケーションステージ (キューを介して通信する疎結合アプリケーション用)、プロジェクト、部署、開発者など、目的とするあらゆるレベルでコストを管理できます。キューにタグを付けたら、AWS Tag Editor を使用して、対象のタグが付けられたキューを検索できます。 私のキューの 1 つに 3 つのタグ (app、stage、department) を追加する方法をご覧ください。 この機能はすべての AWS リージョンで今すぐご利用いただけます。タグ付けの詳細については、「Amazon SQS キューにタグを付ける」を参照してください。タグを使用したコスト配分の詳細については、「コスト配分タグの使用」を参照してください。メッセージキューを使用して最新のアプリケーション用の疎結合マイクロサービスを構築する方法については、当社のブログ投稿 (「Amazon SQS および Amazon SNS による疎結合のスケーラブルな C # アプリケーションの構築」) を参照するとともに、当社の最近のウェビナー (「Amazon SQS and […]

Read More

Getting Ready for AWS re:Invent 2017

AWS re:Invent の開催まで後わずか 40 日となったので、私の同僚と私は、お客様がラスベガスでの時間を有効に活用するためのヒントをいくつかご紹介します。いつもどおり、トレーニングと教育に重点を置き、それ以外の時間にはお楽しみイベントやレクリエーションも用意されています。 場所、場所、場所 re:Invent Campus はラスベガス商業地全体にわたって行われ、MGM Grand、Aria、Mirage、Venetian、Palazzo、Sands Expo ホール、Linq Lot、Encore でイベントが開催されます。各施設では、特定のトピック専用のトラックをホストします。 MGM Grand – ビジネスアプリ、エンタープライズ、セキュリティ、コンプライアンス、アイデンティティ、Windows。 Aria – Big Data & Analytics、Alexa、コンテナ、IoT、人工知能 & 機械学習、サーバーレス。 Mirage – ブートキャンプ、認証 & 認定試験。 Venetian / Palazzo / Sands Expo ホール – アーキテクチャ、AWS Marketplace & Service Catalog、コンピューティング、コンテンツ配信、データベース、DevOps、モバイル、ネットワーキング、ストレージ。 Linq Lot – Alexa ハッカソン、Gameday、ジャムセッション、re:Play パーティー、講演者との交流 & 挨拶。 Encore – 予約可能な会議会場。 […]

Read More

AWS JapanがRed Hat Japan CCSP Partner of the Yearを受賞

Partner SAの河原です。10月20日にレッドハット社主催の年次カンファレンス「Red Hat Forum Tokyo 2017」が開催されました。同日に「Red Hat Partner Awards 2017 レセプションパーティー」があり、アマゾン ウェブ サービス ジャパン株式会社は、「CCSP Partner of the Year」を受賞いたしました。本日、レッドハット社より以下のニュースリリースが発行されましたので、授賞式の様子をご紹介します。 レッドハット、「Red Hat Japan Partner Awards 2017」を発表 これは、レッドハット社の認定クラウド&サービスプロバイダー(CCSP)としてクラウド市場の拡大に最も貢献したパートナーに贈られる賞です。レッドハット製品、技術をクラウド上で活用する環境として幅広いお客様層に支持され、継続的に高い売上成長を果たした点を評価いただいています。また、Red Hat Enterprise Linux(RHEL)に限らずRed Hat OpenShift Container PlatformやRed Hat JBoss Middlewareを活用した案件も創出し、ソリューションの拡大にも貢献したことが受賞の理由となっております。 Red Hat Forumでは、「Red Hat on AWS 最新の取り組みご紹介」と題したブレークアウトセッションも行い、AWS上にお客様がお持ちのサブスクリプションを持ち込むことが可能となるRed Hat Cloud Access、AWSと連携したAnsibleおよびOpenShiftによるデプロイメント自動化などをご紹介いたしました。AWS上にAnsible Tower by Red Hatを容易に構築できるAWS Quick Startはこちらから、AWS上にRed Hat OpenShift Container Platformを容易に構築できるAWS […]

Read More

AWS支払の円払いへの切り替え方法について

先日のCloud Roadshow 2017 広島、名古屋、大阪では、KeyNoteの中でAWSの円払い対応および日本準拠法対応についてみなさんにご案内いたしました。本ブログの中で2回連載という形でそれぞれ、支払方法の円対応、日本準拠法切り替えについてご案内をいたします。 実は、AWSの支払い通貨変更機能は、2015年2月にお客様からのご要望受けて実現してる機能ですが、新しくAWSのご利用をご検討いただいている皆様に改めてお伝えしたいこと、また管理者画面のデザイン変更などで過去ブログで記載された手順と少し変更が入っているため、改めてみなさんにその特徴・注意点と手順を共有させていただきます。 [特徴] 管理者画面での変更だけで切り替え作業が完了します 対応しているクレジットカードはVISAとMasterカードです MarketplaceでAMI形式で有償EC2インスタンスを設定している場合、その部分だけ引き続きドルで請求されます AWS内部ではドルで計算され、月末の利用料集計時に、その時点でのAWSが定めるレートをもとに円に自動計算されます 月額のAWSご利用額がドル換算で過去3か月平均が2000ドル以上ある場合は、請求書切り替えも可能となります。 請求書払いもクレジットカードと同様にMarketplaceでAMI形式で有償EC2インスタンスを設定している場合、その部分だけ引き続きドルで請求されます [手順] それでは手順についてみていきましょう。まず管理者画面にログインしてください。トップページがでてきます。 右上のアカント名が、みなさんが設定を行おうとしているアカウント名が正しく表示されていることを確認してください。なお、AWSマネージメントコンソールはアカウント開設時期や設定状態などで異なるデザインが表示される方もいらっしゃいますが、エラーではありませんので安心してください。 右上のアカウント名を選択してください。 アカウントを選ぶと以下の画面が出てきます。 オレンジ色の箇所にはみなさんのアカントに登録された情報が出てきます。左側の「お支払方法」を選択してください。 お支払いに使用されているクレジットカード情報が表示されます。その右上にUSDとなっている箇所がありますのでそちらをクリックしてください。 「お支払通貨の設定」の右側にある「編集」を選んで通貨を選んでください。 全部で13種類の通貨が選べるようになっています。日本円の場合はJPYを選んでください。以上で切り替えは終わりです。作業を行った月のAWS利用分から支払通貨変更が反映されます。 [請求書払いへの切り替えについて] 請求書払いへの切り替えの場合、AWSの月額ご利用額がドル換算で過去三か月の平均が2000ドル以上であれば、サポートセンターで「新規ケースの作成」をクリックし、「アカウントおよび請求サポート」まで変更をご依頼ください。 2000ドルに満たないが、今後ご利用予定がある場合は、担当アカウントマネージャへのご連絡、もしくはこちらからご連絡ください。 -プロダクトマーケティング エバンジェリスト 亀田  

Read More