Amazon Web Services ブログ

Category: Containers

Amazon EKS 上の AWS App Mesh での SPIFFE/SPIRE による mTLS の使用

本記事は、Efe Selcuk、Apurup Chevuru、Michael Hausenblas による Using mTLS with SPIFFE/SPIRE in AWS App Mesh on Amazon EKS を翻訳したものです。 AWS では、セキュリティを最優先事項と考え、責任共有モデルの観点から、お客様の責任部分をケアするためのコントロールを提供しています。サービスメッシュの一般的な使用例の 1 つは、通信経路のセキュリティ対策を強化することが挙げられますが、これは AWS App Mesh でも重点的に取り組んでいます。また、mTLS を安全かつ正しく利用するという課題は、実務者の間でも議論の対象となっています。AWS は App Mesh roadmap からの mTLS (mutual TLS、相互 TLS) の要望に応え、この機能のサポートを開始しました。このブログ記事では、mTLS の背景を説明し、Amazon Elastic Kubernetes Service (EKS) クラスターを使用したエンドツーエンドの例を紹介します。 背景 mTLS にあまり詳しくない場合は、このセクションをご覧ください。そうでない場合は、ウォークスルーに進んでください。 SPIFFE (Secure Production Identity Framework for Everyone) プロジェクトは、CNCF (Cloud Native […]

Read More

AWS Copilot を使用して、AWS Fargate で実行されるコンテナのインタラクティブシェルに接続する

この記事は、Connecting to an interactive shell on your containers running in AWS Fargate using AWS Copilot を翻訳したものです。 2017 年に AWS Fargate をローンチしてから、多くの開発者の方がコンテナにサーバーレスコンピューティングモデルを採用しています。これらの開発者は、コンテナを実行するための EC2 インスタンスを管理する代わりに、コンテナサイズとコンテナの数の観点からスケーリングについて考えることができます。EC2 で実行可能なワークロードと同じものを AWS Fargate で実行できるように、AWS Fargate はローンチ以降も多くの機能拡張を実施してきました。それらの新機能の一つが “ECS exec” です。ECS exec では、コンテナに対してインタラクティブシェルを開くことができます。ECS exec のさらなる詳細については、ローンチブログを参照してください。 ECS の主要なゴールの一つは、あらゆる規模でお客様のニーズに応えることができるような基盤となる機能を備えた、パワフルな API を提供することです。また、API が使いやすくなるように、基盤となる API の上にユーザーフレンドリーなツールを構築しています。AWS Copilot もその一つで、ECS on Fargate におけるデベロッパーフレンドリーなコマンドラインのエクスペリエンスを提供します。AWS Copilot は、コンテナアプリケーションの構築、リリース、運用までのすべてのプロセスを通じて開発者をガイドします。AWS Copilot は、上記で紹介した “ECS exec” をすでにサポートしています。Copilot […]

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

New – Amazon ECS Exec による AWS Fargate, Amazon EC2 上のコンテナへのアクセス

この記事は、 NEW – Using Amazon ECS Exec to access your containers on AWS Fargate and Amazon EC2 を翻訳したものです。 本日、開発者、運用者を含むすべての Amazon ECS ユーザに向けて、 Amazon EC2 もしくは AWS Fargate にデプロイされたタスク内のコンテナに “Exec” する機能を発表しました。この新しい機能は、 ECS Exec と名付けられ、コンテナに対して対話型のシェル、あるいは一つのコマンドを実行できるようになります。これは AWS コンテナロードマップ上で最も要望の多かった機能の一つであり、一般公開できることを大変嬉しく思います。 ユーザが個々のコンテナに SSH 接続すべきでなく、監視やデバッグ、ログ分析のために適切な可観測性の仕組みを導入することは、コンテナ利用においてよく知られるセキュリティのベストプラクティスです。この発表は、ベストプラクティスを変更することなく、アプリケーションのセキュリティを改善するのに役立ちます。アプリケーション開発サイクルの初期段階においては、迅速なフィードバックループを回す必要がある場面がしばしばあります。例えば、あなたがローカル環境で開発とテストを行っていて、 docker exec を利用している場合、この新しい ECS の機能はきっと役に立つでしょう。またこの機能は、本番環境で重要度の高い問題をデバッグするために、コンテナへの “緊急用アクセス” が必要になる場合にも役立ちます。ここで、コンテナに対して “Exec” する時に利用できるツールと機能は、コンテナ内にインストールされているもののみであることに注意が必要です。つまり、例えば netstat や heapdump コマンドがコンテナのベースイメージにインストールされていない場合、それらを使用することはできません。 この機能をアナウンスするまでは、 ECS ユーザが EC2 […]

Read More

Docker Hub による AWS Container Services の認証

本投稿は Nathan Arnold による記事 Authenticating with Docker Hub for AWS Container Services を翻訳したものです。 Docker Hub は最近利用規約を更新し、コンテナイメージ Pull の rate limits を導入しました。これらの制限は Pro や Team プランのアカウントには適用されませんが、匿名ユーザーは IP アドレスごとに6時間あたり 100 Pull まで、認証済みの無料アカウントは6時間あたり200 Pull までと制限されています。この記事では、新たに設けられた制限による運用の混乱を回避し、プライベートコンテナイメージへのアクセスを制御するために、Amazon ECS と Amazon EKS の両方を使用してプライベートリポジトリからイメージを Pull するために Docker Hub で認証する方法を学びます。まだ Docker Hub を使用していない場合は、AWSクラウド環境とネイティブに統合されたフルマネージドの代替手段としてAmazon Elastic Container Registry (Amazon ECR) を検討してみてはいかがでしょうか。 Amazon ECS による Docker […]

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 EKS での Kyverno によるワンツースリーのように簡単なポリシー管理

本記事は、Easy as one-two-three policy management with Kyverno on Amazon EKS を翻訳したものです。 この投稿は、Raj Seshadri と Jimmy Ray によって寄稿されました。 クラウドネイティブな本番環境でコンテナが使用されるようになると、DevOps やセキュリティチームは、コンテナのアクティビティをリアルタイムで可視化し、ホストやネットワークリソースへのコンテナアクセスを制限し、実行中のコンテナに対する脆弱性の悪用に代表されるような攻撃を検出して防止する必要があります。 Kyverno は、ユーザーがプログラミング言語を習得する必要のない Kubernetes 用のポリシーエンジンです。Kyverno は、Kubernetes クラスターにポリシー対応のガバナンスとコンプライアンスを適用するための、直感的で Kubernetes ネイティブな手段を提供します。 ユースケース 今日まで、リアルタイムのコンテナランタイムセキュリティは、そのベストプラクティスを実装するオープンソースツールが限られているために、敷居が高いものでした。Kyverno は、API オブジェクトが変更されたときに Webhook イベントを受信するアドミッションコントローラーとしてインストールされます。この記事では、Kubernetes クラスターの管理者が構成を検証および変更する方法を紹介します。これらはすべて、Rego や他の言語を知らなくても可能です。Kyverno は、EKS クラスター上でポリシー管理をシンプルかつ簡単にしてくれます。 前提条件 すでに EKS または類似の Kubernetes クラスターが稼働していることを前提とします。例えば、このリンクをたどって Amazon EKS の使用を開始することができます。注意: k8s クラスターのバージョンは v1.14 以上である必要があります。このバージョンには Webhook のタイムアウトが追加されています。kubectl version を実行して確認してください。 ステップ […]

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
Benchmark CPU usage (vCPUs per 10Gbps)

Bottlerocket、Calico、eBPF で EKS ネットワークをターボチャージする

この投稿は、Tigera, Inc. の共同創設者兼 CTO である Alex Pollitt によって共同執筆されました。 先日、Amazon は Amazon Elastic Kubernetes Service (Amazon EKS) 上での Bottlerocket のサポートを発表しました。Bottlerocket は、セキュリティ、運用、および管理性を重視した、コンテナを大規模に実行するために Amazon が構築したオープンソースの Linux ディストリビューションです。Bottlerocket の詳細については、このアナウンスブログをご覧下さい。 Amazon EKS には、Amazon VPC CNI Plugin によって、Pod が VPC ルーティング可能な IP アドレスを持つことを可能にする優れたネットワーク機能が組み込まれています。この基本的なネットワーク機能に加えて、Network Policy のサポートが必要な場合、EKS は Calico をサポートしています。Amazon EKS のドキュメントで説明されているように、Calico は単一の kubectl コマンドで任意の EKS クラスターに追加できます。 では、Bottlerocket の EKS サポートによって何が変わるのでしょうか?フットプリントとリソース要件の削減に加えて、Bottlerocket は迅速なリリースサイクルも提供します。これは Bottlerocket […]

Read More

リクルートマーケティングパートナーズにおけるAmazon EKSとAWS App Meshを使った基盤安定性向上とGitOpsへの挑戦

本番環境でコンテナを利用したワークロードを構築する場合、ほとんどのケースでコンテナオーケストレーションのテクノロジが導入されます。AWS では、Amazon Elastic Container Service (Amazon ECS) や Amazon Elastic Kubernetes Service (Amazon EKS)といったコンテナオーケストレーションに関するサービスを提供しています。 コンテナオーケストレーターの選定においては、各オーケストレーターの持つ機能や思想を理解することが重要です。Amazon ECS は、他の AWS サービスとシームレスに組み合わせることが可能であり、Amazon ECS をビルディングブロックの一つとして多様なワークロードをサポートするシステムを素早く構築可能です。Amazon EKS は、Kubernetes の持つエコシステムの利用や、カスタムリソースをクラスターに追加することにより、EKS クラスター上にワークロードの要件に応じたシステムを柔軟に構築することができます。これらの観点に加えて、ワークロードの要件を考慮した上でコンテナオーケストレーターを選択します。 一方で、ビジネスや組織の成長に伴い、コンテナオーケストレーターとワークロードがマッチしない状況が発生する場合があります。例えば、Amazon EKS でサービスを提供しているチームにおいて、サービスの拡充に伴い管理対象となる EKS クラスターやクラスター上のアプリケーションが増加した結果、Kubernetes バージョンのアップデート作業がチームで抱えきれないような負担になるかもしれません。この状況を解消する手段として、まず思いつくのがコンテナオーケストレーターの再選定ですが、コンテナオーケストレーターの移行には少なからず必要となる作業が見込まれるため、安易に決断することはできません。 しかしながら、コンテナオーケストレーターの移行により得られるベネフィットを評価できる場合、移行によるメリットが作業コストを上回る可能性があります。この評価を行うためには、現在の課題を正確に分析し、移行先となるコンテナオーケストレーターでは解決のためにどのようなアプローチが採用できるのか把握しておく必要があります。 本投稿では、リクルートマーケティングパートナーズが行なった Amazon ECS から Amazon EKS への移行を通じて、コンテナオーケストレーターの移行におけるベネフィットをどのように評価したのかを紹介します。合わせて、リクルートマーケティングパートナーズが Amazon EKS で導入したサービスメッシュと継続的デリバリーについて、その実例を紹介します。 リクルートマーケティングパートナーズ スタディサプリ ENGLISH SRE グループの大島 雅人氏、木村 勇太氏、横山 智大氏によるゲスト投稿 以下の投稿はリクルートマーケティングパートナーズの3つのブログ記事を元に再構成したものです。 概要 スタディサプリ ENGLISH の基盤を […]

Read More