Amazon Web Services ブログ

AWS Elastic Beanstalk がクラスターモードを導入

2011 年に AWS Elastic Beanstalk が初めてリリースされて以来、お客様は Java、.NET、Python、Node.js、PHP、Ruby、Go でフルスタックアプリケーションをデプロイしてきました。Elastic Beanstalk がデプロイとインフラストラクチャの運用を管理することで、お客様はビジネスロジックに集中できました。15年後、その信頼はさらに深まり、それに応える形でサービスも再構築されました。現在、AWS Elastic Beanstalk は AWS 上のアプリケーション管理サービスとして、お客様の本番環境の運用に関するすべての責任を担っています。ソースコード、Dockerfile、コンテナイメージなど、現在存在しているアプリケーションをそのまま持ち込んでください。Elastic Beanstalk は、その基盤となる本番環境を作成および管理します。アプリケーションを管理します。AWS は、デプロイ、スケーリング、パッチ適用、モニタリング、メンテナンスなど、その他のすべてを継続的に管理します。その運用上の責任は、アプリケーションの存続期間にわたって AWS に帰属します。

私たちはその根底にある運用エンジンを再構築し、これまで以上に強力なものにする一連の機能を提供してきました。Elastic Beanstalk では、 AI を活用した環境分析を使用して健康問題を自動的に診断し、解決策を推奨するようになりました。新しい公式 GitHub アクションにより、チームは単一の YAML 設定で既存の CI/CD ワークフローから直接デプロイできます。また、インフラストラクチャ基盤を再構築し、OpenTelemetry ベースのオブザーバビリティ、自動ロールバックを備えたトラフィック分割デプロイ、イベント駆動型のオートスケーリング、AWS Secrets Manager によるシークレット管理、AWS Certificate Manager によるデフォルトでの HTTPS を実現しました。

本日、AWS Elastic Beanstalk の次の章となる、新しいフルマネージド型のクラスターモードを発表します。このクラスターモードは、ワークロードの存続期間中、アプリケーションのデプロイ、スケーリング、パッチ適用、モニタリング、アップグレードを継続的に行います。申請書を持参してください。AWS がそれを実行します。

複数のアプリケーションを運用するチーム向けに、新しい「クラスターモード」が構築されました。各アプリケーションを個別に運用する代わりに、Amazon Elastic Kubernetes Service (Amazon EKS) を搭載したインフラストラクチャを共有する複数のアプリケーションを実行し、単一の運用ベースラインで完全に管理します。複数のアプリケーションがリソースを共有するため、運用を複雑にすることなく、ポートフォリオが拡大するにつれてアプリケーションあたりのコストが削減されます。10 個のアプリケーションでも 100 個のアプリケーションでも、1 つのエクスペリエンスで管理でき、すべてのスタックで同じ運用上の保証を得られます。

Elastic Beanstalk クラスターモードはワークロードにとって次のようなメリットがあります。

  • ソースコードから本番環境まで、あらゆるランタイム。Java、.NET、Python、Node.js、PHP、Ruby、または Go でソースコードをアップロードします。Elastic Beanstalk は、必要に応じてクラウドネイティブビルドパックを通じてコンテナ化を自動的に処理します。Dockerfile は不要で、再設計も必要ありません。オンプレミスからレガシーアプリケーションを移行したり、サポートされている任意の言語で新しいサービスをデプロイしたりできます。
  • エンタープライズコンプライアンスが組み込まれています。 Elastic BeanstalkはHIPAAに適格で、PCI DSSに準拠しており、追加の設定なしでSOC 1/2/3に準拠しているため、規制対象の業界のチームは、すでに必要とされているコンプライアンス体制で本番環境のワークロードをデプロイできます。
  • プロダクショングレードのデプロイ戦略。オールアットワンス、ローリング、イミュータブル、およびトラフィック分割デプロイ(障害時の自動ロールバック機能付き)。イベント駆動型の自動スケーリング。AWS Secrets Manager との統合。すべてネイティブのOpenTelemetryにより、Amazon CloudWatchを含むほとんどのオブザーバビリティバックエンドと簡単に統合できます。
  • AI を活用したトラブルシューティング。何か問題が発生した場合、Elastic Beanstalk はサービス側のログを収集し、AI が生成した推奨事項を提供します。これにより、インフラストラクチャを詳しく調査することなく、問題をより迅速に解決できます。

エラスティック・ビーンストーク・クラスタ・モードの概要
開始するには、Elastic Beanstalk コンソールに移動して新しい環境を作成しデプロイタイプでクラスターを選択します。

Elastic Beanstalk は、ソースコード、Dockerfile、またはコンテナイメージを受け取り、アプリケーションをデプロイします。たとえば、ローカルファイルを選択してコンテナイメージのビルドオプションを指定することで、環境に適したアプリケーションコードを提供できます。残りのセクションでは、ほとんどのシナリオではデフォルト値で十分です。

[作成] ボタンを選択すると、デプロイが開始されます。 特定のサブネットセットでの最初のデプロイでは、EKS クラスターの作成がトリガーされ、約 10 分程度かかることに注意してください。既存の EKS クラスターを再利用するため、以降のデプロイはより高速になります。

デプロイが成功すると、次のようになります。

AWS コマンドラインインターフェイス (AWS CLI) EB CLI 、または AWS SDK を使用することもできます。たとえば、複数のマイクロサービスで構成されるアプリケーションを Kubernetes にデプロイすることを検討してください。まずアプリケーションを作成してください。

aws elasticbeanstalk create-application \
    --application-name "my-microservice" \
    --description "Multi-services demo" \

各マイクロサービスには、 Amazon Elastic Container Registry (Amazon ECR) にあらかじめイメージが組み込まれている場合があります。それらをアプリケーションバージョンとして登録します。

画像 = (
    "frontend-v1|public.ecr.aws/my-microservices/frontend:v1"
    "cartservice-v1|public.ecr.aws/my-microservices/cart:v1"
    "paymentservice-v1|public.ecr.aws/my-microservices/payment:v1"
    "shippingservice-v1|public.ecr.aws/my-microservices/shipping:v1"
)

for entry in "${IMAGES[@]}"; do
    IFS='|' read -r label uri <<< "$entry"
    aws elasticbeanstalk create-application-version \
        --application-name $APP_NAME \
        --version-label "$label" \
        --image-configuration Source="{Uri=$uri}" \
	--region "us-west-2
    echo "Registered: $label"
done

各サービスに対応するサービスオプションを設定してデプロイできます。たとえば、フロントエンドサービスは、 Application Load Balancer などのパブリックインターネットインターフェイスを必要とする唯一のサービスであり、HTTP サービスであるため、ヘルスチェックパスも設定します。

[
    {"Namespace": "aws:elasticbeanstalk:eks", "OptionName": "cluster-role", "Value": "arn:aws:iam::0123456789012:rol<...>"},
    {"Namespace": "aws:elasticbeanstalk:eks", "OptionName": "node-role", "Value": "arn:aws:iam::0123456789012:role/E<...>"},
    {"Namespace": "aws:elasticbeanstalk:eks:environment", "OptionName": "observability-role", "Value": "arn:aws:iam::0123456<...>"},
    {"Namespace": "aws:elasticbeanstalk:eks:environment", "OptionName": "subnets", "Value": "subnet-1,subnet-2,subnet-3,<...>"},
    {"Namespace": "aws:elasticbeanstalk:eks:environment:autoscaling", "OptionName": "min-replica", "Value": "1"},
    {"Namespace": "aws:elasticbeanstalk:eks:environment:autoscaling", "OptionName": "max-replica", "Value": "2"},
    {"Namespace": "aws:elasticbeanstalk:eks:environment", "OptionName": "cpu", "Value": "0.5"},
    {"Namespace": "aws:elasticbeanstalk:eks:environment", "OptionName": "memory", "Value": "256Mi"},
    {"Namespace": "aws:elasticbeanstalk:eks:environment", "OptionName": "memory-limit", "Value": "512Mi"},
    {"Namespace": "aws:elasticbeanstalk:eks:environment", "OptionName": "service-port", "Value": "8080"},
    {"Namespace": "aws:elasticbeanstalk:eks:alb", "OptionName": "scheme", "Value": "internet-facing"},
    {"Namespace": "aws:elasticbeanstalk:eks:alb", "OptionName": "healthcheck-path", "Value": "/_healthz"}
] #frontend-options.json 名前空間 

次に、これらのオプションを使用してフロントエンドサービス環境を作成します。各サービス環境は引き続き同様の方法でデプロイできます。

aws elasticbeanstalk create-environment \
    --application-name my-microservice \
    --environment-name frontend \
    --version-label frontend-v1 \
    --tier Name=Cluster,Type=EKS \
    --option-settings ファイル:///tmp/frontend-options.json \

すべてのサービスがデプロイされた後のコンソールを見てみましょう。

Amazon Elastic Compute Cloud (EC2) を利用した Elastic Beanstalk Standard は、引き続き完全にサポートされています。スタンダードモードとクラスターモードの環境は、同一の Elastic Beanstalk アプリケーション内で並行して稼働するため、チームはそれぞれのペースで、環境を一つずつ移行することができます。検証チェックによって変更を加える前に互換性が確認されるため、環境を強制的に移行する必要はありません。

Elastic Beanstalk スタンダードモードは、以下の用途に引き続き最適です。

  • 単一アプリケーションまたは単一環境のユースケース
  • IIS 上の Windows/.NET フレームワークワークロード
  • コンテナ化できないアプリケーション
  • 月額 500 ドル未満の支出となるワークロードで、EKS コントロールプレーン料金と EKS Auto Mode のプレミアムがオーバーヘッドとして発生し、単一のアプリケーションではビンパッキングによる効率化によってそのオーバーヘッドを相殺できない場合

クラスターモードでアプリケーションをデプロイおよび管理する方法の詳細については、 Elastic Beanstalk クラスターモードのドキュメントをご覧ください

今すぐご利用いただけます
AWS Elastic Beanstalk クラスターモードは、本日、Elastic Beanstalk が利用可能なすべての AWS リージョンで一般提供を開始します。リージョンごとの提供状況や今後のロードマップについては、「リージョン別の AWS 機能」にアクセスしてください。この新機能に関して、APIの呼び出し、ドキュメントの検索、リージョン別の利用可能性の確認、トラブルシューティングなどを行いたい場合は、お好みのAIツールと AWS MCP Serverおよびプラグインを組み合わせて活用してみてください。

Elastic Beanstalk クラスターモードには追加料金はかかりません。EKS コントロールプレーン料金、EKS Auto Mode のコンピューティング、Amazon ECR、Amazon CloudWatch など、アプリケーションが使用する基盤となる AWS リソースに対してのみお支払いいただきます。注:Elastic Beanstalk クラスターモードは AWS 無料利用枠の対象にはなりません。詳細については、 AWS Elastic Beanstalk の料金表ページをご覧ください。

Elastic Beanstalk コンソールで試してみて、AWS Elastic Beanstalk のための AWS re:Post にフィードバックを送信するか、通常の AWS サポートの連絡先を通じてフィードバックを送信してください。

Channy

原文はこちらです。