Amazon Web Services ブログ

Category: AWS Fargate

Amazon EFS を利用して AWS Fargate 上の Amazon EKS でステートフルなワークロードを実行する

この記事は、Running stateful workloads with Amazon EKS on AWS Fargate using Amazon EFS を翻訳したものです。 本投稿は、Container Specialist Solutions Architect の Re Alvarez-Parmar と Sr Technical Account Manager の Vikram Venkataraman により寄稿されました。 Amazon Elastic Kubernetes Service (EKS) では、EC2インスタンスまたは AWS Fargate で Kubernetes ポッドを実行することができます。コンテナ用のサーバーレスコンピューティングエンジンである AWS Fargate を使用すると、サーバーの作成と管理、データプレーンのスケーリング、EC2 インスタンスの適切なサイズ設定、ワーカーノードのアップグレードの処理を行うことなく、Kubernetes ワークロードを実行できます。今のところ Fargate は、ステートレスなコンテナ化されたワークロードを安全で費用対効果の高い方法で実行するのに理想的です。Fargate は VM で分離された環境で各ポッドを実行し、ノードに自動的にパッチを適用するため安全です。Fargate では、ポッド用に構成したコンピューティングリソースに対してのみ課金されるため、費用対効果が高まります。最近リリースされた Amazon Elastic File System […]

Read More

Amazon ECS 上の Linux コンテナでの Windows 認証の使用

この記事は、Using Windows Authentication with Linux Containers on Amazon ECS を翻訳したものです。 本投稿は、Sr Solutions Architect の Matt Cline により寄稿されました。 統合 Windows 認証 (または統合認証) は、クライアントおよびアプリケーションが SQL Server データベースに接続するための推奨メカニズムですが、コンテナ化されたワークロードを実行する場合、統合 Windows 認証の使用は複雑な場合があります。一般的に統合 Windows 認証クライアントは SQL Server データベースと同じドメインに参加しますが、個々のコンテナは恒久的な実行ではないためにドメインに参加することは適切ではありません。 この記事は、Amazon Elastic Container Service (Amazon ECS) で実行されている Linux コンテナを設定して、コンテナをドメインに参加させることなく、統合 Windows 認証を使用して SQL Server データベースに接続する方法を示します。この例では AWS Fargate を使用してコンテナを実行しますが、このソリューションを少し変更して別のコンテナランタイムまたはコントロールプレーンにデプロイすることもできます。 概要 この例は Microsoft Active Directory 用のAWS […]

Read More

AWS Batch が大阪リージョンでもご利用可能になりました

みなさん、こんにちは。アマゾン ウェブ サービス ジャパン、シニアエバンジェリストの亀田です。 2021年3月2日に日本で2番目となるリージョン、大阪リージョン が開設されました。その翌日3月3日にはフルマネージドなファイルシステムである Amazon EFSが利用可能となり、サービスラインナップの拡充が続けられています。 本日、バッチ処理をあらゆる規模で行うことの可能なフルマネージドサービスである、AWS Batch が大阪リージョンでご利用可能となりましたのでお知らせいたします。 バッチ処理とは、コンピュータでひとまとまりのデータを一括して処理する方式のことをさし、AWS Batchを用いることで、数十万件のバッチコンピューティングジョブを簡単かつ効率的に実行することができます。必要な特に大量のコンピュートリソースを確保し計算を行った後は、計算リソースが解放され、なおかつ、コンピューティングリソース (CPU やメモリ最適化インスタンスなど) の最適な数量とタイプを、送信されたバッチジョブの量と具体的なリソース要件に基づいて動的にプロビジョニングするため、Amazon EC2をベースとしたバッチ処理基盤より効率的な運用が可能となります。 AWS Batchの利用料金は無料であり利用した計算リソースに対してのみ発生します。2020年12月にはAWS Fargateに対応し、コンテナをベースとしたサーバレスなバッチ処理基盤を作れるようになりました。またスポットインスタンスの活用があらかじめ組み込まれており、よりコスト効率性の高い処理が可能となっています。 AWS Batchの詳細はこちらをご覧ください。 – シニアエバンジェリスト 亀田  

Read More

EKS と Fargate、AWS Compute Savings Plans で Pod の料金を節約する

この記事は、Saving money a pod at a time with EKS, Fargate, and AWS Compute Savings Plans を翻訳したものです。 re:Invent 2019 では、Amazon Elastic Kubernetes Service (Amazon EKS) で、Kubernetes の Pod を AWS Fargate にデプロイできるようになったことが発表されました。その発表以降、多くのお客様が実際に Fargate 、つまりコンテナを実行するためのサーバーレスインフラストラクチャーに Kubernetes の Pod をデプロイしています。Fargate を利用することで、クラスターの管理やパッチの適用、セキュリティやアイソレーション、スケーリングといった様々な運用業務、「差別化にならない重労働( undifferentiated heavy lifting )」から解放されます。 Amazon EKS と Fargate の詳細については、re:Invent のブレイクアウトセッションでも掘り下げられています。 AWS Fargate は AWS Compute Savings Plans […]

Read More

Amazon ECS Fargate/EC2 起動タイプでの理論的なコスト最適化手法

この記事は、 Theoretical cost optimization by Amazon ECS launch type: Fargate vs EC2 を翻訳したものです。 本ブログは Julia Beck, Thomas Le Moullec, Kevin Polossat, and Sam Sanders によって投稿されました。 お客様から、 Amazon Elastic Container Service (Amazon ECS) のベストプラクティスについてご質問をいただくことがよくあります。特に、 Well-Architected Framework の コスト最適化 の柱に注目されるケースがあります。こちらに関する大きな要因の 1 つには、お客様が EC2 もしくは Fargate 起動タイプという選択肢をとることができるという点が考えられます。2019年には Fargate 起動タイプについて 最大50%の値下げ が発表され、また現在は Fargate Spot や Savings Plan も発表されており、大きく節約することが可能です。これらの考慮事項を踏まえて、 2 […]

Read More

AWS Fargate for Amazon ECS のアップデート

先日、AWS Fargate for Amazon ECS 経由でデプロイされたタスクの設定とメトリクスの収集体験を向上させる機能を発表しました。お客様からのフィードバックに基づき、以下の機能を追加しました。 環境ファイルのサポート シークレットバージョンと JSON キーを使用した、AWS Secrets Manager とのより深い統合 より詳細なネットワークメトリクスと、タスクメタデータエンドポイントを介して利用可能な追加データ この記事を通して、これらのアップデートについて深く掘り下げ、Amazon ECS for AWS Fargate にコンテナをデプロイすると、どこに価値をもたらすことができるかを説明します。まず、簡単なデモアプリケーションのデプロイから始めて、これらの各機能を説明します。

Read More

Amplify CLIを使い、労力ゼロでGraphQL/REST APIやウェブホスティング用にコンテナをデプロイする

この記事は、Zero-effort Container deployment for GraphQL and REST APIs and Web Hosting with Amplify CLIを翻訳したものです。 AWS Amplifyを使うことで、最速かつ簡単に、AWSでクラウド対応のモバイルアプリケーションやウェブアプリケーションを構築することができます。Amplifyは、フロントエンドのウェブ開発者やモバイル開発者が AWSの豊富なサービス群を活用して、革新的で多機能なアプリケーションを構築できるよう、ツール類や各種サービスを一通り備えています。 本日リリースしたAmplify CLIをお使いになることで、フロントエンドのウェブ開発やモバイル開発に携わるお客様は、コンテナを使ってAPI(GraphQL/REST)をデプロイしたり、ウェブアプリケーションをホスティングできるようになります。お客様ご自身のDockerfileまたは Docker Composeを持ち込むことで、Amplify CLIは、AWS Fargateを使用してコンテナを自動的にビルド、パッケージ、デプロイします。 メリット: 移植性の高いバックエンドの構築 – Amplify CLIは、シンプルなコンテナテンプレートを用意しているためすぐに始められます。または、お客様のチームがAPIやホスティング用のコンテナを既に使用している場合は、そのコンテナを利用することができます。 コンテナのデプロイパイプラインがすぐに使えるインフラ構成 – Amplify CLIは、VPC、サブネット、NACL、IAMポリシー、およびその他のセキュリティなどのインフラを管理するため、AWSに関する事前知識やインフラの実務経験は全く必要ありません。コンテナ間のネットワーキングは自動的に処理され、ホスティングされたサイトのSSL生成も自動的に処理されます。 ビルド&デプロイパイプラインを労力をかけることなく作成 – Amplify CLIはCodePipelineを作成し、イメージをビルド、デプロイします。パイプラインには、ビルドアーティファクトやイメージに対するライフサイクルポリシーなど、コスト最適化のベストプラクティスが備わっています。ビルドしてAWSにデプロイするためにDockerをお使いのシステムにインストールする必要すらありません。 構築するもの : 初めに、乱数を返すExpressJSサーバーを構築 次に、Python/Flask乱数生成サーバーでFizzBuzzアルゴリズムを実行する、ExpressJSを構築。 前提条件: 最新のAmplify CLIをインストール ターミナルを開き、 npm install -g @aws-amplify/cli を実行し、最新のAmplify CLIに更新。 Amplify CLIの設定 Amplify CLIをまだ設定していない場合は、ドキュメントページのこちらのガイド に従ってください。 […]

Read More

Fluent Bit for Amazon EKS on AWS Fargate をリリース

本投稿は、Akshay Ram, Prithvi Ramesh, Michael Hausenblas による寄稿を翻訳したものです。   Container roadmap 上の issue 701 では、 EKS on Fargate 利用時の CNCF Fluent Bit を利用したログルーターのサポートについて議論していました。このブログ記事では、EKS on Fargete利用時におけるいくつかの設定ステップによってCloudWatch へ直接ログを送信する事が出来る新しい機能とそれを利用する流れをみていきましょう。 以前は、AWS Fargate 上で動くAmazon EKS の Pod から コンテナログを送信するためには サイドカーコンテナを動かす必要がありましたが、組み込みのログルーターを利用出来るようになりました。これはサイドカーをインストールしたり維持する必要が無いという事を意味しています。ユーザーはデータの送信先を選択するだけで、ログは選択した送信先にルーティングされます。 私たちは、2つの設計原則を維持しながらこの機能を構成しました。 一貫性:必要に応じて、ネイティブの Kubernetes オブジェクトを利用して、コンピューティングタイプ(EC2、マネージドノードグループ、Fargate)に渡った一貫したインターフェイスをお客様に提供する シンプル:お客様のインフラストラクチャーや add-ons をさらに管理する この設計原則に従う事で、Fluent Bit 設定言語と Kubernetes Config Map を、プライマリインターフェイスとして選択し、 Kubernetes クラスターにおける標準的な方法としてロギングを設定する様にしました。Fluent Bit をプラットフォームの中に含める事で、Fluent Bit のライフサイクル管理をシンプルにしました。ログを何処に送るかを指定するだけで、後はAWSによって管理されます。   […]

Read More

re:Invent 2020: AWS Containers Track

re:Inventは11月30日 (月) 〜12月18日 (金) の3週間を通して開催される無料かつ完全オンラインのカンファレンスです。 今週より、登録済みのお客様は多岐に渡るAWSサービスに関するライブ及びオンデマンドのセッションへアクセスすることができます。本記事ではコンテナサービスのトラック、例えば Amazon ECS、Amazon EKS、AWS Fargate、Amazon ECR、AWS App Meshに関連するセッションについてご紹介させていただきます。また、お客様のフィードバックに基づき、今年は過去人気の高かった“Getting Started”セッションやリーダシップトーク、お客様事例のセッションを復活させました。 去年のre:Invent 2019からの進化をお客様へご共有できること、心より嬉しく思います。是非ご登録いただき、アジェンダよりご覧になりたいセッションをカレンダーへ追加してください。 ローンチセッション An introduction to Amazon ECS Anywhere, Massimo Re Ferre, Principal Technologist Amazon ECS キャパシティプロバイダーは、コンテナ化されたワークロードをさまざまなタイプのコンピュートキャパシティで実行できるようにする柔軟なルール定義機能およびそのキャパシティのスケーリング管理機能を提供するものです。本セッションでは、“オンプレミス”キャパシティプロバイダーがどのようにして多種のキャパシティ上で起動するAmazon ECSタスクやサービスを統一されたAPIを使って、コントロールプレーンの追加的ソフトウェアが必要なく管理できるかを見ていきます。オンプレミス、或いは別のクライド上でコンテナをAmazon ECSからオーケストレーションする方法についてご案内します。 セッション詳細 12月9日 2020 | 7:30 AM – 8:00 AM JST 12月9日 2020 | 3:30 PM – 4:00 PM JST 12月9日 2020 | […]

Read More

AWS Copilot によるコンテナアプリケーションの自動デプロイ

本投稿は Nathan Peck による記事を翻訳したものです アプリケーションをアイデアから人々に触ってもらえる実装に落とし込むのは複数のステップを含むプロセスです。設計が固まりコードが書かれると、どうやってそのアプリケーションをデプロイし、ユーザーのもとに届けるかというのが次のチャレンジとなります。その実現方法の1つが Docker コンテナを利用することであり、AWS Copilot のようなコンテナを実行するためのインフラストラクチャを自動的に構築してくれるようなツールです。もしあなたがまだ AWS Copilot のことをよく知らない場合は、以前のブログ記事「AWS Copilot のご紹介」をお読みいただくとその全体概要を掴んでいただけるかもしれません。 Copilot を利用すると copilot svc deploy のような CLI コマンドを実行することでアプリケーションのビルドやデプロイを実行することができますが、例えば複数の開発者が複数のサービスからなる規模のアプリケーションについて長期的な視点で考えた時には理想的な使い方とは言えません。この記事では、Copilot の基礎的な使い方に基づいてアプリケーションリリースの自動化を進める方法を紹介していきます。そこで、まずはコード変更をリポジトリにプッシュする度にコンテナアプリケーションをビルド、プッシュ、デプロイするという基本的なリリースパイプラインを動かすところから始めます。その後、複数のステージやテストを備え、プロダクションへのリリース前にそのアプリケーションが動作することを確認できるようなベストプラクティスをパイプラインを実装していきます。『本番環境で発見されたバグを修正し、それをユーザーに向けてリリースする』という現実世界のシナリオのウォークスルーが本記事のフィナーレです。 本日のアプリケーション あなたは “String Services” というオンライン文字列操作 API 界のトッププロバイダになることを狙っているスタートアップで働いているとしましょう。ある日、あなたの会社は “reverse.” と呼ばれる文字列操作のサービスを提供していくことを決めます。このサービスはどんな文字列もそのインプットとして受け入れ、逆向きの(reversed)文字列をその結果として返します。あなたの仕事はこの新しいサービスをデプロイし、この API を熱望するお客さまに届けることです。まずは Node.js で書かれたコードを見ていきましょう。 var getRawBody = require(“raw-body”); var http = require(“http”); var server = http.createServer(function (req, res) { getRawBody(req) .then(function (buf) { […]

Read More