TECH PLAY

AWS

AWS の技術ブログ

3163

はじめに コンタクトセンターのスーパーバイザー、マネージャー、コンプライアンス、ワークフォースアナリストなどは、Amazon Connect コンソールのリアルタイムメトリックスダッシュボードを使用して、エージェント、キュー、ルーティングプロファイルのパフォーマンスを含む、コンタクトセンターのリアルタイムパフォーマンスを監視します。 さらに、 以前のブログ記事 で述べたように、今日の組織は、地域・業界、またビジネスニーズによって異なる、プライバシーや規制の課題に直面しています。こうしたプライバシー規制に準拠するために、コンタクトセンターの管理者は、コンタクトセンター内で使用される機密リソース、特にリアルタイムメトリクスに対して、最小アクセス権限の実装を求められることが頻繁にあります。 コンタクトセンターでは、多くの場合、個別の事業部門または組織毎のアクセスコントロールが必要です。 タグベースのアプローチ は、コンタクトセンターのこのような動的なアクセスコントロールの要望をサポートするための柔軟性とスケーラビリティを提供します。 このブログ記事では、架空の会社 Octank 社の管理者が、ライブモニタリングやエージェントへの割り込みなど、エージェント、キュー、ルーティングプロファイルのリアルタイムメトリクスへのユーザーアクセスを制限する方法について説明します。Octank 社が運用を継続し、ビジネス上の意思決定を行う中で、より細かいアクセスコントロールの要件も変化します。3 つの段階のそれぞれについて、より細かいアクセスコントロールの要件を満たすためのタグベースのアクセスコントロールの柔軟性を実証します。 ソリューション概要 各段階でのソリューションのデプロイには、次の手順が含まれます。 リソースタグを使用してエージェント、キュー、ルーティングプロファイルを設定します コンタクトセンターのさまざまなペルソナを表す、アクセスコントロールタグを使用したセキュリティプロファイルを設定します コンタクトセンターのペルソナのユーザーを設定し、セキュリティプロファイルに関連付けます 次の図は、Amazon Connect のタグベースのアクセスコントロールを示しています。リソースには リソースタグ が付けられています。セキュリティプロファイルにはアクセスコントロールタグが設定されます。これらのセキュリティプロファイルがユーザーに割り当てられると、そのユーザーのリソース、データ、およびメトリクスへのアクセスが アクセスコントロールタグ に基づいて制限されるようになります。アクセスコントロールタグが「LOB: Credit」のセキュリティプロファイルは、「LOB: Credit」のリソースタグでタグ付けされたリソース (Agent1) のみアクセスを許可します。アクセスコントロールタグが「LOB: Banking」のセキュリティプロファイルは、「LOB: Banking」のリソースタグでタグ付けされたリソース (Agent2) のみアクセスを許可します。 前提条件 このチュートリアルは、以下のリソースを理解し、アクセスできることを前提としています。 関連する以前のブログ記事「 リソースタグによる Amazon Connect のより細かいアクセスコントロールの実現 」 Amazon Connect の管理者アクセス権を持つ AWS アカウント 作成 済みの Amazon Connect インスタンス 管理者権限 (Admin) の セキュリティプロファイル を持つ Amazon Connect ユーザー AWS リソースのタグ付け に関する基本的な知識 チュートリアル シナリオとペルソナ Octank 社は、コンタクトセンターを運営する架空の金融サービス会社です ユーザーペルソナには、エージェント、スーパーバイザー、コンタクトセンターマネージャー、管理者が含まれます エージェント : 顧客からの電話等の問い合わせに応答・対応します スーパーバイザー : エージェントのグループを監視し、必要に応じて指導します コンタクトセンターマネージャー : コンタクトセンターとその従業員の日常業務を監督します コンタクトセンター管理者 : コンタクトセンターのセットアップと設定を管理します セキュリティプロファイルの管理は管理者のみ可能です ペルソナごとに最小限のサンプルユーザーが含まれ、ルーティングプロファイルとキューは 1 対 1 で対応しています 最小権限アクセスコントロール :各ペルソナは、最も近い境界内にあるリソースへのリアルタイムレポート、ライブモニタリング、およびバージインアクセスのみにアクセスできます 各段階は独立して実装できます 段階 1 Octank 社には、 クレジット と バンキング という 2 つの事業部門 (LOB) があります。各 LOB にはエージェント、スーパーバイザー、コンタクトセンターマネージャーがいます。Octank 社は、Credit LOB の担当者がバンキング LOB のエージェント、キュー、ルーティングプロファイルのリアルタイムメトリクスを見ることができないようにする必要があります。逆もまた同様です。例えば クレジット LOB のコンタクトセンターマネージャーは、クレジット LOB 内のエージェント、キュー、ルーティングプロファイルのみをリアルタイムメトリクスで見ることができます。コンタクトセンター全体の管理者は両方の LOB にアクセスできます。 アクセスコントロールの粒度は LOB に基づいているため、2 つの LOB ( LOB: Credit と LOB: Banking ) を表すリソースタグとアクセスコントロールタグを作成します。 手順 1: キュー、ルーティングプロファイル、エージェントおよびそのリソースタグの設定 キューの名前 リソースタグ (キー:値のペア) Credit LOB: Credit Banking LOB: Banking ルーティングプロファイルの名前 リソースタグ Credit LOB: Credit Banking LOB: Banking エージェントのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル リソースタグ MJackson Mateo Jackson Agent(default) Credit LOB: Credit RRoe Richard Roe Agent(default) Banking LOB: Banking 手順 2: アクセスコントロールタグとセキュリティプロファイルの設定 コンタクトセンター管理者は、デフォルトの Admin セキュリティプロファイルを使用します。 管理者のログイン 名 姓 セキュリティプロファイル ルーティングプロファイル NWolf Nikki Wolf Admin(default) Basic Routing Profile コンタクトセンターマネージャー向けに、 ManagerCredit と ManagerBanking の 2 つのセキュリティプロファイルを作成し、アクセスコントロールタグを使用してアクセスをそれぞれの LOB に制限します。リアルタイムレポート向けに、各セキュリティプロファイルには、ユーザー、ルーティングプロファイル、キューを表示する権限と、リアルタイムメトリクス、リアルタイムモニタリング、リアルタイムコンタクト割り込みの権限が必要です。 セキュリティプロファイル名 アクセス権限 アクセスコントロールリソース アクセスコントロールタグ ManagerCredit ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Credit ManagerBanking ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Banking スーパーバイザー向けに、 SupervisorCredit と SupervisorBanking の 2 つのセキュリティプロファイルを作成し、アクセスコントロールタグを使用してアクセスをそれぞれの LOB に制限します。リアルタイムレポート向けに、各セキュリティプロファイルには、ユーザ、ルーティングプロファイル、キューを表示する権限と、リアルタイムメトリクス、リアルタイムモニタリング、リアルタイムコンタクト割り込みの権限が必要です。 セキュリティプロファイル名 アクセス権限 アクセスコントロールリソース アクセスコントロールタグ SupervisorCredit ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Credit SupervisorBanking ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Banking ここまでの手順で 4 つの異なるペルソナを表す合計 4 つのセキュリティプロファイルを作成しました。管理者はデフォルトの Admin セキュリティプロファイルを使用しました。 手順 3: コンタクトセンターマネージャーの設定とセキュリティプロファイルの紐づけ 構成をテストおよび検証するために、コンタクトセンターマネージャーのユーザーを 2 つ作成します。各ユーザーを、前の手順で作成した適切なセキュリティプロファイルに関連付けます。 マネージャーのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル MRivera Martha Rivera ManagerCredit Basic Routing Profile ADesai Arnav Desai ManagerBanking Basic Routing Profile 次に、2 人のスーパーバイザーユーザーを作成して構成をテストおよび検証します。各ユーザーを、前の手順で作成した適切なセキュリティプロファイルに関連付けます。 スーパーバイザーのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル JStiles John Stiles SupervisorCredit Basic Routing Profile LJuan Li Juan SupervisorBanking Basic Routing Profile 手順 4: テストと検証 より細かいアクセスコントロールを確認する手順は以下の通りです。 ブラウザのシークレットモードを利用して、Amazon Connect 管理コンソールに作成した管理者アカウント NWolf でサインインします ナビゲーションメニューの 分析 と 最適化 からリアルタイムメトリクスを選択します キューを選択して、前のステップで設定したすべてのキューのリアルタイムメトリクスを確認できることを確認します リアルタイムメトリクスページに戻ります。 ルーティングプロファイル を選択し、前の手順で設定したルーティングプロファイルがすべて表示されていることを確認します リアルタイムメトリクスページに戻ります。 エージェント を選択し、前のステップで設定したすべてのエージェントのリアルタイムメトリクスを確認できることを確認します 前の段階の手順で設定した 2 つのマネージャーのユーザー名と 2 つのスーパーバイザーのユーザー名を使用して、シークレットウィンドウで各ユーザーで Amazon Connect コンソールにログインします 各ユーザー名で以下を確認します 前述の検証ステップ 2 から 5 に従って、LOB (クレジットまたはバンキング) 内のキュー、エージェント、ルーティングプロファイルのみを確認できることを確認します すべてのエージェントのライブ会話またはライブチャットを リアルタイムで監視 できることを確認します 監視しているライブ会話で、エージェントとの 会話に割り込める ことを確認します 段階 2 ビジネスが成長し、Octank 社は英語とスペイン語の 2 つの言語で顧客をサポートすることにしました。Octank 社は米国とアルゼンチンに拠点を置いています。彼らは、米国に拠点を置くチームを使用して英語の顧客をサポートし、アルゼンチンに拠点を置くチームを使用してスペイン語の顧客をサポートするというビジネス上の決定をしました。LOB ごとに、米国とアルゼンチンのチームにはエージェントとスーパーバイザーがいます。コンタクトセンターのマネージャーは、LOB 内およびすべての国のチームを引き続き管理します。ただし、Octank 社では、各国のチームがエージェント、キュー、ルーティングプロファイルを含むリアルタイムのレポートをその国でのみ閲覧できるようにすることを義務付けています。段階 1 からの LOB レベルの制限は引き続き適用されます。 アクセスコントロールの粒度は LOB と国に基づいているため、2 つの LOB と 2 つの国 ( LOB: Credit 、 LOB: Banking 、 Country: UnitedStates 、 Country: Argentina ) を表すリソースタグとアクセスコントロールタグを作成します。 手順 1: キュー、ルーティングプロファイル、エージェントおよびそのリソースタグの設定 キューの名前 リソースタグ リソースタグ CreditUS LOB: Credit Country: UnitedStates CreditArgentina LOB: Credit Country: Argentina BankingUS LOB: Banking Country: UnitedStates BankingArgentina LOB: Banking Country: Argentina ルーティングプロファイルの名前 リソースタグ リソースタグ CreditUS LOB: Credit Country: UnitedStates CreditArgentina LOB: Credit Country: Argentina BankingUS LOB: Banking Country: UnitedStates BankingArgentina LOB: Banking Country: Argentina エージェントのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル リソースタグ リソースタグ MJackson Mateo Jackson Agent(default) CreditUS LOB: Credit Country: UnitedStates JSouza Jorge Souza Agent(default) CreditArgentina LOB: Credit Country: Argentina RRoe Richard Roe Agent(default) BankingUS LOB: Banking Country: UnitedStates MMajor Mary Major Agent(default) BankingArgentina LOB: Banking Country: Argentina 各リソースに 2 つのリソースタグが使用されていることに注意してください。これは、LOB と国、 2 段階のアクセスコントロールの粒度の要件に対応するためです。 手順 2: アクセスコントロールタグとセキュリティプロファイルの設定 コンタクトセンター管理者は、デフォルトの Admin セキュリティプロファイルを使用します。 管理者のログイン 名 姓 セキュリティプロファイル ルーティングプロファイル NWolf Nikki Wolf Admin(default) Basic Routing Profile コンタクトセンターマネージャー向けに、 ManagerCredit と ManagerBanking の 2 つのセキュリティプロファイルを作成し、アクセスコントロールタグを使用してアクセスをそれぞれの LOB に制限します。リアルタイムレポート向けに、各セキュリティプロファイルには、ユーザー、ルーティングプロファイル、キューを表示する権限と、リアルタイムメトリクス、リアルタイムモニタリング、リアルタイムコンタクト割り込みの権限が必要です。 セキュリティプロファイル名 アクセス権限 アクセスコントロールリソース アクセスコントロールタグ ManagerCredit ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Credit ManagerBanking ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Banking スーパーバイザー向けに、 SupervisorCreditUS 、 SupervisorCreditArgentina 、 SupervisorBankingUS と SupervisorBankingArgentina の 4 つのセキュリティプロファイルを作成し、アクセスをそれぞれの LOB に制限します。リアルタイムレポート向けに、各セキュリティプロファイルには、ユーザ、ルーティングプロファイル、キューを表示する権限と、リアルタイムメトリクス、リアルタイムモニタリング、リアルタイムコンタクト割り込みの権限が必要です。 セキュリティプロファイル名 アクセス権限 アクセスコントロールリソース アクセスコントロールタグ SupervisorCreditUS ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB:Credit, Country:UnitedStates SupervisorCreditArgentina ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB:Credit, Country:Argentina SupervisorBankingUS ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB:Banking, Country:UnitedStates SupervisorBankingArgentina ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB:Banking, Country:Argentina このステージでは、6 つの異なるペルソナを表す合計 6 つのセキュリティプロファイルを作成しました。管理者はデフォルトの Admin セキュリティプロファイルを使用しました。 リソースタグとアクセスタグを追加する必要があるのは、粒度が要求される場合のみであることに注意してください。この場合、アクセス要件が変わらなかったため、管理者は前の段階と同じセキュリティプロファイルを使用できました。スーパーバイザーは国内でのより細かいアクセスコントロールを必要としていたため、4 つのスーパーバイザーセキュリティプロファイルでは 2 つのアクセスコントロールタグが使用されています。 手順 3: コンタクトセンターマネージャーの設定とセキュリティプロファイルの紐づけ 構成をテストおよび検証するために、コンタクトセンターマネージャーのユーザーを 2 つ作成します。各ユーザーを、前の手順で作成した適切なセキュリティプロファイルに関連付けます。 マネージャーのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル MRivera Martha Rivera ManagerCredit Basic Routing Profile ADesai Arnav Desai ManagerBanking Basic Routing Profile 次に、4 人のスーパーバイザーユーザーを作成して構成をテストおよび検証します。各ユーザーを、前の手順で作成した適切なセキュリティプロファイルに関連付けます。 スーパーバイザーのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル JStiles John Stiles SupervisorCreditUS Basic Routing Profile PCandella Pat Candella SupervisorCreditArgentina Basic Routing Profile LJuan Li Juan SupervisorBankingUS Basic Routing Profile TWhitlock Terry Whitlock SupervisorBankingArgentina Basic Routing Profile 手順 4: テストと検証 より細かいアクセスコントロールを確認する手順は以下の通りです。 ブラウザのシークレットモードを利用して、Amazon Connect 管理コンソールに作成した管理者アカウント NWolf でサインインします ナビゲーションメニューの 分析 と 最適化 からリアルタイムメトリクスを選択します キューを選択して、前のステップで設定したすべてのキューのリアルタイムメトリクスを確認できることを確認します リアルタイムメトリクスページに戻ります。 ルーティングプロファイル を選択し、前の手順で設定したルーティングプロファイルがすべて表示されていることを確認します リアルタイムメトリクスページに戻ります。 エージェント を選択し、前のステップで設定したすべてのエージェントのリアルタイムメトリクスを確認できることを確認します 前の段階の手順で設定した 2 つのマネージャーのユーザー名と 2 つのスーパーバイザーのユーザー名を使用して、シークレットウィンドウで各ユーザーで Amazon Connect コンソールにログインします 各ユーザー名で以下を確認します 前述の検証ステップ 2 から 5 に従って、LOB (クレジットまたはバンキング) 内のキュー、エージェント、ルーティングプロファイルのみを確認できることを確認します すべてのエージェントのライブ会話またはライブチャットを リアルタイムで監視 できることを確認します 監視しているライブ会話で、エージェントとの 会話に割り込める ことを確認します 段階 2 のシナリオの代替策:国レベルの粒度ではなく、2 つの LOB の Octank 社のスーパーバイザーは、グループ内のエージェントのみを確認する必要があります。2 番目のリソースタグは、スーパーバイザー名 ( Group:JStiles ) に変更できます。エージェント、キュー、ルーティングプロファイルに、所属するグループに基づいてリソースタグを割り当てることができます。Octank 社では、スーパーバイザーのセキュリティプロファイルの数はスーパーバイザーのグループの数と同じになります。各スーパーバイザーのセキュリティプロファイルには 2 つのアクセスタグ (LOB と Group) があります。 段階 3 Octank 社のバンキング LOB は、フィリピンを拠点とするビジネスプロセスアウトソーサー (BPO) と契約します。この BPO は、銀行顧客を扱う幅広い専門知識を持ち、より高いサービスレベルを提供します。今後、バンキング LOB は BPO を利用してスペイン語の銀行業務に関する問い合わせを処理することになりました。BPO は、BPO 内のエージェント、キュー、ルーティングプロファイルに関するリアルタイムレポートのみを表示できます。内部チームは BPO のリソースにアクセスできません。BPO メトリクスにアクセスできるのは、管理者とバンキング LOB のコンタクトセンターマネージャーだけです。LOB レベルと国レベルの制限は引き続き適用されます。 アクセスコントロールの粒度は、 LOB 、国、およびエージェントが社内の Octank チームに属しているか、 BPO に属しているかに基づきます。このシナリオでは、国をカプセル化し、エージェントが社内か BPO かを示す複合タグ CenterType の使用方法を示します。加えてその情報を表すリソースタグとアクセスコントロールタグである、 LOB: Credit 、 LOB: Banking 、 CenterType:UnitedStates_Internal 、 CenterType: Argentina_Internal 、 CenterType: Philippiness_BPO を作成します。CenterType タグに指定できる値の数は国の場所の数の 2 倍ですが、ステージ 3 のシナリオを表すのに必要な組み合わせは 3 つだけです。 手順 1: キュー、ルーティングプロファイル、エージェントおよびそのリソースタグの設定 キューの名前 リソースタグ リソースタグ CreditUS LOB: Credit CenterType: UnitedStates_Internal CreditArgentina LOB: Credit CenterType: Argentina_Internal BankingUS LOB: Banking CenterType: UnitedStates_Internal BankingArgentina LOB: Banking CenterType: Philippines_BPO ルーティングプロファイルの名前 リソースタグ リソースタグ CreditUS LOB: Credit CenterType: UnitedStates_Internal CreditArgentina LOB: Credit CenterType: Argentina_Internal BankingUS LOB: Banking CenterType: UnitedStates_Internal BankingBPO LOB: Banking CenterType: Philippines_BPO エージェントのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル リソースタグ リソースタグ MJackson Mateo Jackson Agent(default) CreditUS LOB: Credit CenterType: UnitedStates_Internal JSouza Jorge Souza Agent(default) CreditArgentina LOB: Credit CenterType: Argentina_Internal RRoe Richard Roe Agent(default) BankingUS LOB: Banking CenterType: UnitedStates_Internal PSantos Paulo Santos Agent(default) BankingBPO LOB: Banking CenterType: Philippines_BPO 手順 2: アクセスコントロールタグとセキュリティプロファイルの設定 コンタクトセンター管理者は、デフォルトの Admin セキュリティプロファイルを使用します。 管理者のログイン 名 姓 セキュリティプロファイル ルーティングプロファイル NWolf Nikki Wolf Admin(default) Basic Routing Profile コンタクトセンターマネージャー向けに、 ManagerCredit と ManagerBanking の 2 つのセキュリティプロファイルを作成し、アクセスコントロールタグを使用してアクセスをそれぞれの LOB に制限します。リアルタイムレポート向けに、各セキュリティプロファイルには、ユーザー、ルーティングプロファイル、キューを表示する権限と、リアルタイムメトリクス、リアルタイムモニタリング、リアルタイムコンタクト割り込みの権限が必要です。 セキュリティプロファイル名 アクセス権限 アクセスコントロールリソース アクセスコントロールタグ ManagerCredit ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Credit ManagerBanking ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Banking スーパーバイザー向けに、 SupervisorCreditUSInternal 、 SupervisorCreditArgentinaInternal 、 SupervisorBankingUSInternal と SupervisorBankingPhilippinesBPO の 4 つのセキュリティプロファイルを作成し、アクセスをそれぞれの LOB およびコンタクトセンターの種別の組み合わせで制限します。リアルタイムレポート向けに、各セキュリティプロファイルには、ユーザ、ルーティングプロファイル、キューを表示する権限と、リアルタイムメトリクス、リアルタイムモニタリング、リアルタイムコンタクト割り込みの権限が必要です。 セキュリティプロファイル名 アクセス権限 アクセスコントロールリソース アクセスコントロールタグ SupervisorCreditUSInternal ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB:Credit, CenterType:United States_Internal SupervisorCreditArgentinaInternal ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB:Credit, CenterType:Argentina_Internal SupervisorBankingUSInternal ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB: Banking, CenterType:United States_Internal SupervisorBankingPhilippinesBPO ルーティングプロファイル、キュー、ユーザー – 表示 リアルタイムメトリクス – すべて リアルタイムコンタクトモニタリング – すべて リアルタイムコンタクト割り込み – すべて ユーザー、ルーティングプロファイル、キュー LOB:Banking, CenterType:Philippines_BPO この段階では、6 つの異なるペルソナを表す合計 6 つのセキュリティプロファイルを作成しました。管理者はデフォルトの Admin セキュリティプロファイルを使用しました。 リソースタグとアクセスタグを追加する必要があるのは、粒度が要求される場合のみであることに注意してください。この場合、アクセス要件が変わらなかったため、管理者は前の段階と同じセキュリティプロファイルを使用できました。スーパーバイザーは国内および担当するエージェントのより細かいアクセスコントロールを必要としていたため、4 つのスーパーバイザーセキュリティプロファイルでは 2 つのアクセスコントロールタグが使用されています。アクセスコントロールのうちの1 つ (CenterType) は複合タグです。 手順 3: コンタクトセンターマネージャーの設定とセキュリティプロファイルの紐づけ 構成をテストおよび検証するために、コンタクトセンターマネージャーのユーザーを 2 つ作成します。各ユーザーを、前の手順で作成した適切なセキュリティプロファイルに関連付けます。 マネージャーのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル MRivera Martha Rivera ManagerCredit Basic Routing Profile ADesai Arnav Desai ManagerBanking Basic Routing Profile 次に、4 人のスーパーバイザーユーザーを作成して構成をテストおよび検証します。各ユーザーを、前の手順で作成した適切なセキュリティプロファイルに関連付けます。 スーパーバイザーのログイン 名 姓 セキュリティプロファイル ルーティングプロファイル JStiles John Stiles SupervisorCreditUSInternal Basic Routing Profile PCandella Pat Candella SupervisorCreditArgentinaInternal Basic Routing Profile LJuan Li Juan SupervisorBankingUSInternal Basic Routing Profile TWhitlock Terry Whitlock SupervisorBankingPhilippinesBPO Basic Routing Profile 手順 4: テストと検証 より細かいアクセスコントロールを確認する手順は以下の通りです。 ブラウザのシークレットモードを利用して、Amazon Connect 管理コンソールに作成した管理者アカウント NWolf でサインインします ナビゲーションメニューの 分析 と 最適化 からリアルタイムメトリクスを選択します キューを選択して、前のステップで設定したすべてのキューのリアルタイムメトリクスを確認できることを確認します リアルタイムメトリクスページに戻ります。 ルーティングプロファイル を選択し、前の手順で設定したルーティングプロファイルがすべて表示されていることを確認します リアルタイムメトリクスページに戻ります。 エージェント を選択し、前のステップで設定したすべてのエージェントのリアルタイムメトリクスを確認できることを確認します 前の段階の手順で設定した 2 つのマネージャーのユーザー名と 2 つのスーパーバイザーのユーザー名を使用して、シークレットウィンドウで各ユーザーで Amazon Connect コンソールにログインします 各ユーザー名で以下を確認します 前述の検証ステップ 2 から 5 に従って、LOB (クレジットまたはバンキング) 内のキュー、エージェント、ルーティングプロファイルのみを確認できることを確認します すべてのエージェントのライブ会話またはライブチャットを リアルタイムで監視 できることを確認します 監視しているライブ会話で、エージェントとの 会話に割り込める ことを確認します クリーンアップ Amazon Connect 管理コンソールにログインし、このブログの手順で作成したセキュリティプロファイルと ユーザーを削除 します このブログのハンズオンの為に Amazon Connect インスタンスをセットアップした場合は、Amazon Connect AWS コンソールにアクセスして Amazon Connect インスタンスを削除 できます 結論 このブログ記事では、Amazon Connect のリソースタグとアクセスコントロールタグを使用して、リアルタイムメトリクス、リアルタイムライブモニタリング、リアルタイムコンタクト割り込みについて Amazon Connect リソースへのより細かいアクセスコントロールを行う方法について説明しました。この方法によって、Amazon Connect インスタンスの稼働中に要件が変化した場合でも、チーム、ロール、その他の基準で複数のグループを作成し、さまざまな Amazon Connect リソースに対してより複雑なアクセスコントロールの条件を設定することができます。 著者について Prashant Desai は AWS プロフェッショナルサービスのシニアコンサルタントです。彼は大規模なコンタクトセンターの設計とクラウドへの移行の経験があります。Prashant は、顧客体験をシンプルで革新的にする方法を常に模索しています。 Parind Poi は AWS プロフェッショナルサービスのシニアプラクティスリーダーです。彼は AWS のカスタマーエクスペリエンス (CX) に関する深い専門知識を持ち、専門業務をリードしています。Parind は、お客様がクラウド上でカスタマーエンゲージメントワークロードを最新化できるよう支援することに情熱を注いでいます。 Elaine は、Amazon Connect に特化した AWS シニアソリューションアーキテクトであり、20 年以上にわたって電話とコンタクトセンターの専門知識を持っています。また、次世代のクラウド基盤のビルダーを育成する Amazon Future Engineer Class Chat プログラムの熱心なサポーターです。 Mike Simpson は、Amazon Connect の技術担当シニアプロダクトマネージャーです。彼は、Amazon Connect のお客様の業務を向上させるための Amazon Connect 分析ソリューションの構築を支援しています。 翻訳はテクニカルアカウントマネージャー高橋が担当しました。原文は こちら です。
AWS re:Invent 2023 直前セッションガイド – モニタリングとオブザーバビリティ、および運用管理について 11 月 27 日から 12 月 1 日までラスベガスで開催されるクラウドコンピューティングカンファレンス、AWS re: Invent 2023 で皆様にお会いできることをとても楽しみにしています。re: Invent に初めて行かれる方も、そうではない方も、AWS re: Invent の熱量と様々な機会にはきっと驚かされることでしょう。 AWS Cloud Operations トラックは、AWS クラウド運用を構成するソリューション分野 (モニタリングとオブザーバビリティ、運用管理、 コンプライアンスと監査 、 クラウドガバナンス ) を対象とする合計 96 のセッションで構成されています。AWS Cloud Operations トラックでは、豊富な洞察、ベストプラクティス、楽しい Kiosk を通じて、クラウドスキルを新たな高みに引き上げることができます。 このブログでは、組織がダウンタイムを最小限に抑え、信頼性の高い運用を維持し、コストを削減するのに役立つクラウド運用内の2つのソリューション分野である、 モニタリングとオブザーバビリティ と 運用管理 に焦点を当てます。AWS でのモニタリングとオブザーバビリティは、オンプレミス、ハイブリッド、コンテナ化、マルチクラウド、オープンソースを問わず、最新のアプリケーション、ワークロード、インフラストラクチャからの洞察を得るために、ログ、メトリクス、トレースを取り込み、コンテキスト化、視覚化、分析するエンドツーエンドのソリューションを提供します。AWS での一元化された運用管理は、マルチクラウド、ハイブリッド、またはオンプレミス環境にわたる日常業務のための豊富なツールセットを提供します。パッチ管理からインシデント管理まで、運用管理は、お客様が一元化されたハブからアプリケーションを大規模に運用できるようにすると同時に、AIOps やその他の機能によりアプリケーションの可用性を向上させます。 AWS Village の Cloud Ops Kiosk セッションへの参加に加えて、Venetian Expo のAWS Village にあるクラウドオペレーションとオブザーバビリティの Kiosk にもぜひお越しください( マップ )。ルーレットを回して賞品を獲得し、AWS の専門家に会い、楽しい VR 体験をして、クラウド運用の未来について学びましょう。 オブザーバビリティと運用管理について詳しく知りたい方は、以下の Kiosk とセッションをご覧ください。 セッションカタログ にある以下のセッションをお気に入りに追加してください。 実施されるセッション ビジネスのニーズや関心に応じて、他にも多くのセッションから選択できます。モニタリングとオブザーバビリティ関連で、ぜひご覧いただきたいセッションは次の通りになります。 Monitoring and Observability COP339 | AWS のオブザーバビリティと運用の最新情報 (What’s new with AWS observability and operations) – ブレイクアウトセッション クラウドで運用しているのか、運用を移行しているのかに関わらず、AWS は複数の環境にわたるアプリケーションとインフラストラクチャの管理と洞察の提供を支援します。このセッションに参加して、クラウド運用の向上と最適化に役立つ最新のイノベーションについて学びましょう。AWS IT 管理ツールとオブザーバビリティソリューションのデモで、最新のローンチを詳しく見てみましょう。 COP343 | 耐障害性を高めるためのオブザーバビリティの構築 (Building observability to increase resiliency) – ブレイクアウトセッション 耐障害性のあるシステムが計画どおりに動作することを証明するには、オブザーバビリティを効果的に使用することが不可欠です。オブザーバビリティを適切に適用することで、顧客に影響を与える前に問題の兆候を早期に発見し、影響を軽減するために迅速に対応できます。このセッションでは、オブザーバビリティのベストプラクティスを利用してAWSでの耐久性(レジリエンス)を改善する方法を学びます。現実世界の障害モードを深く掘り下げ、計測器とオブザーバビリティツールの適切な組み合わせを使用して問題を迅速に解決する方法をご覧ください。このセッションには、Amazon CloudWatch や AWS X-Ray などの AWS サービスを使用したこれらのテクニックとプラクティスのデモが含まれます。 COP319 | コンテナのオブザーバビリティのベストプラクティス (Best practices for container observability) – ブレイクアウトセッション コンテナ化されたアプリケーションや環境のペースの速い世界では、最適なパフォーマンス、信頼性、ユーザーエクスペリエンスを確保するためには、包括的なオブザーバビリティを実現することが不可欠です。このセッションに参加して、コンテナのオブザーバビリティのベストプラクティスを掘り下げてみましょう。AWS オブザーバビリティを利用して、Amazon EKS と Amazon ECS 環境を効果的にモニタリング、分析、トラブルシューティングする方法をご覧ください。コンテナ化されたワークロードに関する洞察を得ながら、エージェントの手動管理を排除し、リソース割り当てを最適化するのに役立つベストプラクティスについて説明します。 COP322 | アプリケーションオブザーバビリティの実装(Implementing application observability) – ブレイクアウトセッション オブザーバビリティは、問題を迅速に診断し、より早く問題を解決するのに役立ちます。このセッションでは、Amazon CloudWatch を使用してアプリケーションのすべてのレイヤーにオブザーバビリティを実装する方法を学びます。これにより、ユーザーからバックエンドシステムに至るまで、アプリケーションのパフォーマンスを理解できます。 COP325 | 効果的なオブザーバビリティ戦略の構築(Building an effective observability strategy) – ブレイクアウトセッション オブザーバビリティの成熟度を高め、顧客に満足してもらうためには、戦略を立てることが重要です。このセッションでは、オブザーバビリティが重要である理由、何をどのように観察すべきか、そしてどのオブザーバビリティ指標がビジネス成果を最もサポートできるかを探ります。Amazon CloudWatch や AWS X-Ray などのサービスを使用して、さまざまなテクニックやプラクティスを深く掘り下げてみましょう。 COP326 | Amazon CloudWatch Logs から実用的な洞察を得る(Get actionable insights from Amazon CloudWatch Logs) – ブレイクアウトセッション Amazon CloudWatch Logs の価値を最大限に引き出していますか?このセッションに参加して、適切なインサイトを得るために最適化を行い、CloudWatch Logs をさらに活用してください。CloudWatch Logs の最新機能を使用してオブザーバビリティ体制を改善する方法をご覧ください。データにコンテキストを追加して、すでに取り込んだログの使い方を学びましょう。機械学習によるパターン検出から、EMF の高解像度機能、リアルタイムのインタラクティブ分析まで、ログから実用的な洞察を得る方法をご覧ください。 COP306 | Amazon CloudWatch と AWS X-Ray を実際に使ってみる (Hands-on experience with Amazon CloudWatch and AWS X-Ray) – ワークショップ 企業のアジリティ、顧客満足度、ビジネスの成長は、優れたオブザーバビリティの設定にかかっています。高性能で信頼性の高いアプリケーションを構築するために、AWS ではさまざまな AWS オブザーバビリティサービスとソリューションを提供しています。このワークショップでは、Amazon CloudWatch と AWS X-Ray を使用して AWS サービスをモニタリングする方法、最も一般的なユースケースを実際に体験する方法、利用可能な最新機能について学び、実装する方法を学びます。参加するにはラップトップを持参する必要があります。 COP309 | Amazon CloudWatch によるエンドユーザーエクスペリエンスのモニタリング (Monitor end user experience with Amazon CloudWatch) – ビルダーズセッション AWS デジタルエクスペリエンスモニタリングは、アプリケーションパフォーマンスモニタリングをエンドユーザーとフロントエンドエクスペリエンスにまで拡張することで、すべてのユーザータッチポイントにおけるアプリケーションパフォーマンスの外部からの視点で顧客体験を向上させます。このようなユーザーエクスペリエンスデータは全体像を完成させ、組織がフロントエンドのパフォーマンス、ユーザー行動、APIをリリース速度、運用率、コンバージョンなどの実用的なKPIに変えるのに役立ちます。このビルダー向けセッションでは、ISP と AWS からのデータを使用し、バックエンドのインフラストラクチャとデバイス、およびユーザーメトリクスから洞察を得て、実際のユーザーと仮想のユーザーの、アクティビティと振る舞いの両方を監視することで、アプリケーションの動作について学びます。参加するにはラップトップを持参する必要があります。 COP401 | コンテナのオブザーバビリティのためのコーディング (Coding for container observability) – コードトーク このセッションに参加して、OpenTelemetry SDK と AWS Distro for OpenTelemetry (ADOT) Collector を使用してさまざまな環境から信号を収集する方法について学びましょう。また、負荷の高いコンテナ環境で堅牢で可用性の高い ADOT パイプラインを設計して、大規模な運用をサポートする方法についても説明します。 一元的な運用管理 COP320 | 運用の一元化 (Centralize your operations) – ブレイクアウトセッション クラウドへの移行またはクラウドでの運用のプロセスのどの段階にあっても、AWS は、AWS、オンプレミス、ハイブリッド環境、エッジでのアプリケーションの管理と運用に使用できる一元化された運用管理ソリューションを提供します。このセッションでは、AWS Systems Manager を使用して、パッチ適用やリソースの変更などのプロアクティブなプロセスを自動化し、何百ものランブックを使用して問題を解決する方法を学びます。自動化を使用すると、サービスの中断を最小限に抑え、時間のかかるプロセスを簡素化し、繰り返しの多いタスクを回避してオペレーション効率を高めることが容易になります。 COP325 | 効果的なオブザーバビリティ戦略の構築(Building an effective observability strategy) – Breakout Session オブザーバビリティの成熟度を高め、顧客に満足してもらうためには、戦略を立てることが重要です。このセッションでは、オブザーバビリティが重要である理由、何をどのように観察すべきか、そしてどのオブザーバビリティ指標がビジネス成果を最もサポートできるかを探ります。Amazon CloudWatch や AWS X-Ray などのサービスを使用して、さまざまなテクニックやプラクティスを深く掘り下げてみましょう。 COP314 | All things patch:AWS、オンプレミス、その他のクラウドでのパッチ適用を管理 (All things patch: Manage patching on AWS, on premises and on other clouds) – チョークトーク このチョークトークでは、AWS Systems Manager を使用して、AWS 組織内の AWS アカウントと AWS リージョン全体で、大規模なパッチ処理を迅速に有効化する方法をご紹介します。他のクラウド環境の Amazon EC2 インスタンス、エッジデバイス、オンプレミスサーバー、仮想マシン (VM) のパッチ処理を管理する方法を学びます。最後に、Amazon Athena と Amazon QuickSight を使用してパッチコンプライアンスレポートをセットアップし、パッチコンプライアンスを作成する方法を見てみましょう。 COP316 | インシデントマネージャーによるインシデント対応の自動化 (Automating incident response with Incident Manager) – チョークトーク このチョークトークでは、インシデントに備える方法と、Amazon CloudWatch アラームまたは Amazon EventBridge イベントによって重大な問題が検出されたときに自動的にアクションを実行する方法を学びます。また、AWS での数十年にわたるインシデント対応と分析の経験に基づいて、インシデント後の分析を実行する方法についても検討してください。 COP330 | AIOpsで業務を加速 (Accelerate your operations with AIOps) – チョークトーク アプリケーションの運用時間を減らし、イノベーションにより多くの時間を費やしたいですか?このチョークトークでは、AIOps(IT運用のための人工知能)がどのようにオペレーションワークフローを簡素化および自動化し、最も重要なときに混乱を解消するのに役立つかを学びます。また、Amazon CloudWatch と Amazon DevOps Guru を使用して AWS での AIOps のベストプラクティスについて学び、それらを使用して時間を節約する方法についても学びます。 COP403 | 効率性の向上:インシデント修復の自動化 (Efficiency unleashed: Automating incident remediation) – コードトーク AWS Well-Architected Framework が推奨する設計原則である、操作をコードとして実行することで、組織は運用をより効率的に実行し、ヒューマンエラーを制限し、予測可能な結果を達成できます。このコードトークでは、操作をコードとして実装する方法を学びます。また、AWS Systems Manager の機能である自動化を使用して、AWS Config および Amazon CloudWatch のアラームとインシデントにあるコンプライアンス違反リソースの修復を自動化する方法についても説明します。 Cloud Ops セッションの種類: re: Invent では、イノベーショントークや EXPO の Kiosk などのさまざまなセッションを通じて、AWS クラウドの運用についてさらに学び、対象分野の専門家 (SME) と交流することができます。 ブレイクアウトセッションは、1 人以上のスピーカーが多数の聴衆にコンテンツを発表することで構成されます。ワークショップは、参加者が少人数のグループで AWS を使用して問題の解決策を構築するインタラクティブなセッションです。チョークトークは双方向に対話する形式で、AWS の専門家による短い講義から始まり、その後に 45 ~ 50 分のホワイトボードと Q&A セッションが続きます。ビルダーズセッションは、1 人の AWS エキスパートが主導する小グループセッションで、参加者がフォローアップして AWS エキスパートと一緒に実験や構築を行う短いデモンストレーションから始まります。Re: Invent 2023 で開催される AWS クラウドオペレーションで、今年の AWS クラウドオペレーションに関するすべての学習機会をぜひ活用してください。 本記事は、Tiffany Chen, Winnie Chen らの「 Know Before You Go – AWS re:Invent 2023 Monitoring and Observability, and Centralized Operations Management | AWS Cloud Operations & Migrations Blog 」を翻訳したものです。翻訳は ソリューションアーキテクトの 伊藤が担当しました。
AWS Amplify JavaScript Library の v6 の一般公開を発表できることを嬉しく思います。このリリースには、コミュニティから要望の多かった改善点や機能が多数含まれています。このリリースでは、バンドルサイズが大幅に縮小され、TypeScript のカバレッジと型サポートが強化され、セキュアランタイムトークンのサポートが強化され、Next.js App Router と Server Actions が完全にサポートされます。 より速いアプリのロード時間とより小さいバンドルサイズ スピードは贅沢品ではなく、必需品です。そのため、依存関係の削減、 Tree shaking 機能の向上、アーキテクチャの最適化に投資してきました。バンドルが小さいほどアプリケーションの読み込みが速くなり、高速ブロードバンド接続でも接続が不安定でも、ユーザーの関心と満足度を維持できます。これらの変更により、Amplify は最も一般的に使用されるフレームワークとビルドツールに最適化されました。 create-react-app を使用して新しい React アプリを構築し、カテゴリ内のすべての API のバンドルサイズを比較すると、v5 と比較してバンドルサイズが次のように減少していることがわかります。 Auth: 55kb to 32kb (42%) Storage: 38kb to 21kb (45%) Analytics (Pinpoint): 31kb to 18kb (42%) Notifications and Analytics: 39kb to 23kb (41%) API REST & GraphQL: 91kb to 38kb (58%) 注意: バンドルサイズ数値は、gzip 圧縮した最終的なバンドルサイズを計測したものです。削減後の結果は Amplify JavaScript v6.0.2 を使用しており、削減前の結果は、軽量クライアントが導入された Amplify JavaScript v5.3.4 を使用しています。これらの改善以前の例として、グラフには Amplify JavaScript v5.2.4 の生成結果も合わせて表記しています。 Amplify JS v6 では、機能単位の API 導入とツリーシェイク機能の改善により、アプリにインポートした API のみがバンドルサイズに影響し、未使用の機能は Tree Shake から除外されます。例えば、アプリで Auth パッケージのいくつかの API のみを使い ( signInWithRedirect , signOut , fetchAuthSession 、 getCurrentUser ) ストレージでは ( uploadData , downloadData )のみを使った場合、v6 ライブラリでは v5 ライブラリと比較して 59% のバンドルサイズを削減します(77kb→31kb)。 TypeScript エクスペリエンスの向上 TypeScript は、大規模で複雑なプロジェクトを管理しやすくする型安全性を提供しており、多くのチームの開発ワークフローに欠かせないものとなっています。Amplify の JavaScript Library における全ての公開 API に、使いやすく直感的な型が追加されました。これらの TypeScript 機能強化により、テキストエディタのシンタックスハイライトとコード補完がより充実したものになります。型チェックは、アプリを実行する前にいくつかのバグを特定するのに役立ちます。 それでは、新しい GenerateClient API を使用して、AWS AppSync API から製品をクエリする方法を見てみましょう。この例では、 GenerateClient API を使用して mutation を実行し、アプリ内の To Do を更新します。graphql API に対して型を設定する必要がなくなったことに気付くかもしれません。データ項目は自動的に推論されるようになっています。 我々は、ログインしているユーザーに対してはもっと良い型定義が必要だというフィードバックをいただきました。そこで、完全な user オブジェクトを返す新しい getCurrentUser API を作成しました。これを使って、 signInDetails の下にある loginId を取得してみましょう。 Next.js の App Router, API routes, そして middleware のサポート Amplify JavaScript Library は、新しい Next.js アダプター により Next.js 機能をすべてサポートするようになりました。これにより、サーバーサイドレンダリングや、App Router で React Server Components を使用したり、middleware で API ルートを使用して認証されたユーザーのみへのアクセスを制御したりすることができます。Amplify JavaScript v6 を使用すると、任意の Next.js ランタイムで Amplify を実行し、任意のレンダリングオプション (SSR、ISR、または静的出力) を使用できます。 Next.js アダプターを使用すると、「Amplify サーバーコンテキスト」内で Amplify Library を実行できます。これにより、クラウドで Amplify Library の各機能を安全に使用できます。Amplify の機能の実行が終了した場合、コンテキストは完全に破棄され、クロスリクエスト汚染を排除することで、アプリのセキュリティ体制を強化します。 Next.js の App Router と Pages Router を使用するシナリオをいくつか見てみましょう。 前提条件 Next.js アダプターを含む最新の Amplify Library をインストールして開始します。 npm i aws-amplify @aws-amplify/adapter-nextjs Amplify getting started guide をまだ読んでいない場合、まずはこのガイドを読んでください。 このチュートリアルの終了までに、GraphQL API と auth API のセットアップをしておく必要があります。 App Router 最初のシナリオでは、Next.js の App Router を利用することを想像しましょう。我々は、サーバーコンポーネント のうち 1 つを AWS AppSync API と接続し、いくつかのデータを一覧します。 まず、 serverClient 関数を含む新しいユーティリティファイルを作成して、サーバー側で Amplify API と通信できるようにします。 // utils/server-utils.ts import { cookies } from "next/headers"; import { generateServerClientUsingCookies } from "@aws-amplify/adapter-nextjs/api"; import config from "../../amplifyconfiguration.json"; export const serverClient = generateServerClientUsingCookies({ config, cookies, }); GenerateServerClientUsingCookie 関数は、動的レンダリング機能を備えた Next.js サーバーコンポーネントで使用できる API を生成します。これにより、サーバー側の Amplify API に安全にアクセスできるようになります。 serverClient 関数はエクスポートされ、API を呼び出すユーティリティ関数として使用できます。 page.tsx ファイルにこの関数をインポートし、それを使用して ToDo アプリ用のデータを一覧表示します。 // page.tsx import { serverClient } from "@/utils/server-utils"; import * as query from "@/graphql/queries"; export default async function Home() { const { data, errors } = await serverClient.graphql({ query: query.listTodos, }); if(errors){ // handle errors } return ( <div> {data.listTodos.items.map((post) => { return ( <li key={post.id}> <div>Name: {post.name}</div> <span>Description: {post.description}</span> </li> ); })} </div> ); ユーザーが投稿を削除できるように、削除機能を追加してみましょう。 // page.tsx import * as mutations from "@/graphql/mutations"; import { serverClient } from "@/utils/server-utils"; ... async function deletePost(formData: FormData) { "use server"; const id = formData.get("postId")?.toString(); if (id) { const { errors } = await serverClient.graphql({ query: mutations.deleteTodo, variables: { input: { id, }, }, }); if (errors) { // handle errors } } } この削除アクションは、 Server Actions を使用して postID を取得し、それを削除します。これにより、サーバー上でフォームを送信し、ID を取得して入力変数に渡すことができます。 TypeScript の正しい推論を行うために、型生成に言及する必要があります。これには、 src フォルダーに生成される api.ts ファイルと、 graphql フォルダーにある mutations ファイルが含まれます。これを行うには、ルートフォルダで amplify add code コマンドを実行します。 Pages Router もし、Next.js の Pages Router を使う場合は、 createServerRunner 関数と generateServerClientUsingReqRes 関数を使い、サーバー上でクエリを実行する必要があります。 まず、2 つの関数を含む utils ファイルを作成することから始めましょう。 runWithAmplifyServerContext 関数は、Amplify API をサーバー上で独立して実行するために使用されます。 serverGraphQLClient middleware, API routes, getServerSideProps もしくは getStaticProps で GraphQL API と通信するために使用されます // utils/server-utils.ts import { createServerRunner } from "@aws-amplify/adapter-nextjs"; import config from "../../amplifyconfiguration.json"; import { generateServerClientUsingReqRes } from "@aws-amplify/adapter-nextjs/api"; export const { runWithAmplifyServerContext } = createServerRunner({ config, }); export const serverGraphQLClient = generateServerClientUsingReqRes({ config, }); それでは、 GetServerSideProps を使ってこれがどのように機能するのかを見てみましょう。サインインしているユーザーの情報を取得するシナリオを想定します。 // index.tsx import { runWithAmplifyServerContext } from "@/utils/server-utils"; import { getCurrentUser } from "@aws-amplify/auth/server"; export const getServerSideProps: GetServerSideProps = async ({ req, res }) => { const currentUser = await runWithAmplifyServerContext({ nextServerContext: { request: req, response: res }, operation: async (contextSpec) => getCurrentUser(contextSpec), }); return { props: { currentUser } }; }; 上記のように、クライアント側で getCurrentUser を使用してサインインしたユーザー情報を取得できます。ただし、インポートパスが "aws-amplify/auth/server" という少し異なるバージョンを使用して、サーバー側でもこれと同じ情報を取得できます。このサーバーバージョンの GetCurrentUser では、 contextSpec を渡す必要があります。 別のシナリオでは、 ServerGraphQLClient 関数を使ってタスクのリストを取得することもできます。 // index.tsx import { listTodos } from "@/graphql/queries"; import { runWithAmplifyServerContext, serverGraphQLClient, } from "@/utils/server-utils"; export const getServerSideProps: GetServerSideProps = async ({ req, res }) => { const todoList = await runWithAmplifyServerContext({ nextServerContext: { request: req, response: res }, operation: (contextSpec) => serverGraphQLClient.graphql(contextSpec, { query: listTodos, }), }); return { props: { todoList } }; }; ServerGraphQLClient は ContextSpec を取り込む graphql API を使用します。ここでは、todo のリストを gql 形式で渡すこともできます。 Middleware Amplify は Next.js の middleware もサポートするようになりました。ミドルウェア内の RunWithAmplifyServerContext を使用して、Amplify API を操作することができます。 ユーザーが認証されていないときはいつでも login ルートにリダイレクトしたいアプリを作ってみましょう。以下は App Router を使った例です。まず、 utils フォルダーに新しい server-utils ファイルを作成します。 // utils/server-utils.ts import { createServerRunner } from "@aws-amplify/adapter-nextjs"; import config from "../../amplifyconfiguration.json"; export const { runWithAmplifyServerContext } = createServerRunner({ config, }); これにより、middleware で使用する RunWithAmplifyServerContext 関数 が作成されます。 // middleware.ts import { runWithAmplifyServerContext } from "@/utils/server-utils"; // The fetchAuthSession is pulled as the server version from aws-amplify/auth/server import { fetchAuthSession } from "aws-amplify/auth/server"; import { NextRequest, NextResponse } from "next/server"; export async function middleware(request: NextRequest) { const response = NextResponse.next(); // The runWithAmplifyServerContext will run the operation below // in an isolated matter. const authenticated = await runWithAmplifyServerContext({ nextServerContext: { request, response }, operation: async (contextSpec) => { try { // The fetch will grab the session cookies const session = await fetchAuthSession(contextSpec, {}); return session.tokens !== undefined; } catch (error) { console.log(error); return false; } }, }); // If user is authenticated then the route request will continue on if (authenticated) { return response; } // If user is not authenticated they are redirected to the /login page return NextResponse.redirect(new URL("/login", request.url)); } // This config will match all routes accept /login, /api, _next/static, /_next/image // favicon.ico export const config = { matcher: [ /* * Match all request paths except for the ones starting with: * - api (API routes) * - _next/static (static files) * - _next/image (image optimization files) * - favicon.ico (favicon file) */ "/((?!api|_next/static|_next/image|favicon.ico|login).*)", ], }; 新しい FetchAuthSession API を使用していることがわかります。これにより、トークンを取得してユーザーがログインしているかどうかを確認できます。ユーザーがサインインしていない場合は、 login ページにリダイレクトされます。 Amplify JavaScript v6 をお試しください Amplify community からのリクエストに応えて、このリリースを提供できることを嬉しく思います。バンドルサイズを最適化することで、Amplify はユーザーの接続環境に関係なく、すべてのユーザーに高速な読み込みを提供することを目指しています。TypeScript サポートの改善により、コーディングエクスペリエンスが向上し、エラーが減少します。Next.js インテグレーションでは、利用可能なすべての Next.js ランタイムを使用できます。 皆さんがこれらの新機能を使って何を構築するのか楽しみです!JS v6 のすべての機能を確認するには、 Amplify JavaScript documentation をご覧ください。 本記事は Building fast Next.js apps using TypeScript and AWS Amplify JavaScript v6 を翻訳したものです。翻訳はソリューションアーキテクトの 髙柴元 が担当致しました。
Amazon Comprehend を使用すると、機械学習の専門家でなくても、テキストからインサイトを引き出すことができます。Comprehend では、組み込みモデルを使用して入力文書の構文を分析し、エンティティ、イベント、キーフレーズ、個人を特定できる情報 (PII)、および特定のエンティティ (ブランドや製品など) に関連付けられた全体的なセンチメントまたは複数のセンチメントを見つけることができます。 11月9日、有害なコンテンツを検出する機能が追加されました。この新機能は、エンドユーザー向けにより安全な環境を構築するのに役立ちます。例えば、毒性検出を使用して、コメントなどの外部からの投稿を受け付けるアプリケーションの安全性を向上させることができます。生成系 AI を使用する際、毒性検出を使用して、入力プロンプトと大規模言語モデル (LLM) からの出力応答を確認できます。 毒性検出は、 AWS コマンドラインインターフェイス (AWS CLI) と AWS SDK で使用できます。AWS CLI と AWS SDK を使った例で、これがどのように機能するかを見て、LLM の使用状況を確認しましょう。 AWS CLI で Amazon Comprehend Amazon Comprehend Toxicity Detection を使用する AWS CLI の新しい detect-toxic-content サブコマンドは、テキストに含まれる毒性を検出します。出力には、ラベルのリスト (入力内のテキストセグメントごとに 1 つ) が含まれます。各テキストセグメントに対して、複数のラベルと 1 つのスコア (0~1) を含むリストが表示されます。 例えば、次の AWS CLI コマンドは 1 つのテキストセグメントを分析し、1 つの Labels セクションと全体的な Toxicity スコア (0~1) が返されます。 aws comprehend detect-toxic-content --language-code en --text-segments Text="'Good morning, it\'s a beautiful day.'" { "ResultList": [ { "Labels": [ { "Name": "PROFANITY", "Score": 0.00039999998989515007 }, { "Name": "HATE_SPEECH", "Score": 0.01510000042617321 }, { "Name": "INSULT", "Score": 0.004699999932199717 }, { "Name": "GRAPHIC", "Score": 9.999999747378752e-05 }, { "Name": "HARASSMENT_OR_ABUSE", "Score": 0.0006000000284984708 }, { "Name": "SEXUAL", "Score": 0.03889999911189079 }, { "Name": "VIOLENCE_OR_THREAT", "Score": 0.016899999231100082 } ], "Toxicity": 0.012299999594688416 } ] } 予想通り、すべてのスコアは 0 に近く、このテキストで毒性は検出されませんでした。 入力をファイルとして渡すには、AWS CLI --generate-cli-skeleton オプションを使用して、 detect-toxic-content コマンドで使用される JSON 構文のスケルトンを生成します。 aws comprehend detect-toxic-content --generate-cli-skeleton { "TextSegments": [ { "Text": "" } ], "LanguageCode": "en" } ここで、出力をファイルに書き込み、3 つのテキストセグメントを追加します (有毒なコンテンツで何が起こるかを示すために使用されるテキストは示しません)。今回は、さまざまなレベルの有害なコンテンツが見つかりました。各 Labels セクションは、対応する入力テキストセグメントに関連付けられています。 aws comprehend detect-toxic-content --cli-input-json file://input.json { "ResultList": [ { "Labels": [ { "Name": "PROFANITY", "Score": 0.03020000085234642 }, { "Name": "HATE_SPEECH", "Score": 0.12549999356269836 }, { "Name": "INSULT", "Score": 0.0738999992609024 }, { "Name": "GRAPHIC", "Score": 0.024399999529123306 }, { "Name": "HARASSMENT_OR_ABUSE", "Score": 0.09510000050067902 }, { "Name": "SEXUAL", "Score": 0.023900000378489494 }, { "Name": "VIOLENCE_OR_THREAT", "Score": 0.15549999475479126 } ], "Toxicity": 0.06650000065565109 }, { "Labels": [ { "Name": "PROFANITY", "Score": 0.03400000184774399 }, { "Name": "HATE_SPEECH", "Score": 0.2676999866962433 }, { "Name": "INSULT", "Score": 0.1981000006198883 }, { "Name": "GRAPHIC", "Score": 0.03139999881386757 }, { "Name": "HARASSMENT_OR_ABUSE", "Score": 0.1777999997138977 }, { "Name": "SEXUAL", "Score": 0.013000000268220901 }, { "Name": "VIOLENCE_OR_THREAT", "Score": 0.8395000100135803 } ], "Toxicity": 0.41280001401901245 }, { "Labels": [ { "Name": "PROFANITY", "Score": 0.9997000098228455 }, { "Name": "HATE_SPEECH", "Score": 0.39469999074935913 }, { "Name": "INSULT", "Score": 0.9265999794006348 }, { "Name": "GRAPHIC", "Score": 0.04650000110268593 }, { "Name": "HARASSMENT_OR_ABUSE", "Score": 0.4203999936580658 }, { "Name": "SEXUAL", "Score": 0.3353999853134155 }, { "Name": "VIOLENCE_OR_THREAT", "Score": 0.12409999966621399 } ], "Toxicity": 0.8180999755859375 } ] } AWS SDK での Amazon Comprehend Toxicity Detection の使用 AWS CLI の場合と同様に、AWS SDK を使用してアプリケーション内の毒性をプログラムで検出できます。次の Python スクリプトは、 AWS SDK for Python (Boto3) を使用してテキストセグメント内の毒性を検出し、スコアが指定しきい値を超える場合はラベルを出力します。コードでは、2 番目と 3 番目のテキストセグメントの内容を編集して *** で置き換えています。 import boto3 comprehend = boto3.client('comprehend') THRESHOLD = 0.2 response = comprehend.detect_toxic_content( TextSegments=[ { "Text": "You can go through the door go, he's waiting for you on the right." }, { "Text": "***" }, { "Text": "***" } ], LanguageCode='en' ) result_list = response['ResultList'] for i, result in enumerate(result_list): labels = result['Labels'] detected = [ l for l in labels if l['Score'] > THRESHOLD ] if len(detected) > 0: print("Text segment {}".format(i + 1)) for d in detected: print("{} score {:.2f}".format(d['Name'], d['Score'])) Python スクリプトを実行します。出力には、2 番目と 3 番目のテキストセグメントで検出されたラベルとスコアが含まれます。最初のテキストセグメントでは毒性は検出されません。 Text segment 2 HATE_SPEECH score 0.27 VIOLENCE_OR_THREAT score 0.84 Text segment 3 PROFANITY score 1.00 HATE_SPEECH score 0.39 INSULT score 0.93 HARASSMENT_OR_ABUSE score 0.42 SEXUAL score 0.34 LLM での Amazon Comprehend Toxicity Detection の使用 このブログ記事 で説明されているように、 Amazon SageMaker JumpStart を使用して Mistral 7B をデプロイしました。 モデルの応答に毒性が含まれるのを避けるため、次の 3 つの関数を含む Python スクリプトを構築しました。 query_endpoint は、SageMaker JumpStart によってデプロイされたエンドポイントを使用して Mistral 7B モデルを呼び出します。 check_toxicity は Comprehend を使用してテキスト内の毒性を検出し、検出されたラベルのリストを返します。 avoid_toxicity は、検出されたラベルのリストを入力として受け取り、毒性を避けるために行うべきことを説明するメッセージを返します。 LLM へのクエリは、入力プロンプトで毒性が検出されかった場合にのみ実行されます。LLM からの応答は、出力に毒性が検出されなかった場合にのみ出力されます。毒性が検出された場合、スクリプトは入力プロンプトの修正方法に関する提案を提供します。 Python スクリプトのコードを以下に示します。 import json import boto3 comprehend = boto3.client('comprehend') sagemaker_runtime = boto3.client("runtime.sagemaker") ENDPOINT_NAME = "<REPLACE_WITH_YOUR_SAGEMAKER_JUMPSTART_ENDPOINT>" THRESHOLD = 0.2 def query_endpoint(prompt): payload = { "inputs": prompt, "parameters": { "max_new_tokens": 68, "no_repeat_ngram_size": 3, }, } response = sagemaker_runtime.invoke_endpoint( EndpointName=ENDPOINT_NAME, ContentType="application/json", Body=json.dumps(payload).encode("utf-8") ) model_predictions = json.loads(response["Body"].read()) generated_text = model_predictions[0]["generated_text"] return generated_text def check_toxicity(text): response = comprehend.detect_toxic_content( TextSegments=[ { "Text": text } ], LanguageCode='en' ) labels = response['ResultList'][0]['Labels'] detected = [ l['Name'] for l in labels if l['Score'] > THRESHOLD ] return detected def avoid_toxicity(detected): formatted = [ d.lower().replace("_", " ") for d in detected ] message = ( "次の有害なコンテンツを避けてください:" + ", ".join(formatted) + ".\n" ) return message prompt = "ウェブサイトは 10 のシンプルなステップで構築できます。" detected_labels = check_toxicity(prompt) if len(detected_labels) > 0: # 入力プロンプトで毒性が検出された場合 print("プロンプトを修正してください。") print(avoid_toxicity(detected_labels)) else: response = query_endpoint(prompt) detected_labels = check_toxicity(response) if len(detected_labels) > 0: # 出力で毒性が検出された場合 print("改善されたプロンプト:") prompt = avoid_toxicity(detected_labels) + prompt print(prompt) else: print(response) スクリプトのサンプルプロンプトでは毒性を含む応答は得られませんが、応答に毒性が含まれる場合にチェックして修正する自動プロセスを設定できることを知っておくと安心です。 利用可能なリージョンと料金 Amazon Comprehend Toxicity Detection は、米国東部 (バージニア北部)、米国西部 (オレゴン)、欧州 (アイルランド)、アジアパシフィック (シドニー) の AWS リージョン で使用できます。 毒性検出を使用する場合、長期間のコミットメントはありません。支払いは、入力文字数の 100 文字単位 (1 単位 = 100 文字) で行い、リクエストあたりの最低料金は 3 単位 (300 文字) です。詳細については、 Amazon Comprehend の料金表を参照してください。 毒性検出を活用してオンラインコミュニティの安全性を向上させ、アプリケーションへの LLM の採用を簡素化してください。 – Danilo 原文は こちら です。
こんにちは、カスタマーソリューションマネージャー (CSM) の服部です。 前編 の記事でEBA (Experience-Based Acceleration) がどんなものか全体イメージをつかんでいただけたと思いますので、後編ではEBAの最後の3日間でおこなうビルド&デプロイについて詳しくお話させていただきます。ここまでの5週間で準備してきたものをこの3日間で形にする際に、どういったタイムスケジュールでどのようにビルド&デプロイを行っていくのかについて理解していただければと思います。 5週間にわたりファシリテーションを担当するチームと開発作業を担当するチームに分かれて準備を進めてきた最後の6週目にデモを作成する3日間が設定されています。この3日間は参加者が一同に会して作業に集中する期間になりますので、普段の業務から離れてビルド&デプロイに集中していただくことになります。詳細なタイムテーブルは以下に記載しています。朝会と作業、昼会と作業のセットを5回繰り返すタイムテーブルで進めていきます。通常のスプリントは2週間ですが、EBAではそれを3日間に凝縮して実施する形になります。このスプリントの中で最小限のプロダクトを完成させて、最後にエクゼクティブに対してデモを実施してフィードバックをもらいます。   このスプリント経験を通して実際のモダナイゼーション開発の流れを経験していただくことになります。 次に参加者の体制ですが、これまでの準備期間と同じように大きく分けてファシリテートを行うコマンドセンターと実際に開発を行う開発チームの2つのチーム体制で3日間のタイムスケジュールを進めていただきます。チーム分けに際してどういった方をアサインすべきかについて以下にひとつのサンプルを記載しています。コマンドセンターは、メンバー間の調整役を担っていただきメンバー間の連携を強化していただきますので、プロジェクト管理の経験者、進捗管理、問題解決の経験が豊富な方で開発チームからエスカレーションされた事項に対して、判断を下せる権限のある方がアサインされると良いです。また、アジャイル開発は未経験の場合でもウォーターフォールのプロジェクトマネジメント経験が豊富でこの機会にチャレンジしたいマインドがある方がアサインされても問題ありません。作業チームに関しては、作業をしていただく方がアサインされますので、AWSの基本スキルが必要で対象のインフラ、アプリが理解できてることが必須になります。 EBAのAWS支援領域ですが、このプログラムはあくまで伴走支援のため主体はお客様になります。AWSはアドバイスやレビューをしますが何か作るということはしません。トレーニングや座学ではありませんので、前述のように参加メンバーには必要なスキルが定義されています。 モダナイゼーションEBA実施に適しているお客様には2つのパターンがあります。1つ目はAWSをすでに利用しているもののEC2がメインでマネージドサービスやサーバーレスなどクラウドネイティブなサービスを使ってまだアプリケーションを構築したことがない状況のお客様です。2つ目は対象がまだオンプレにあってクラウド移行時に合わせてモダナイズしたいと考えているが、経験がないのでAWSに伴走支援してほしいというお客様になります。この2つの状況に当てはまるお客様はEBAの効果が大きいので是非AWSへお問い合わせいただきEBAの実施をしていただきたいと思っております。 最後にEBAを実際に実施された 弥生株式会社様の事例を紹介させていただきます。 ご紹介するお客様は市場の変化に柔軟に対応できる製品開発サイクル実現のために組織を変革 (アジャイル開発対応) し、顧客の声をもとに改善できる製品設計 (マイクロサービス) をする必要性を感じておられましたが、いわゆるウォーターフォール型の開発に慣れていることで変化の激しいサービスを開発できる体制ができていない状態でした。お客様はAWS 利用経験のある技術者が多くいる状態で自力で変革できる可能性もありましたが、AWSがパイロット開発を約6週間短期集中支援する本EBAの実施を決定されて以下の開発スコープを3つ設定されました。 ・参加者全員が各自の役割を果たし実体験を得ること ・開発プロセスを確立させ動くものをデプロイできること ・スクラムによる開発スプリントを自分たちで回せるようになること また本番を想定した開発プロセスをまわして改善ポイントを見つけることをビルド&デプロイ期間の目標としてEBAを実施いただいた結果、EBAを通して4回のスプリントを経験され、その中でアジャイル開発のプロセスを体験するのみならずマイクロサービスアーキテクチャなどの開発生産性を高める仕組みも導入してプロセスの改善も実施されました。3日間のビルド&デプロイ期間でCI/CD Pipelineの構築も行ったことでEBA実施後にも活用できる経験もされました。 これらの経験を当初の課題を解決する足掛かりとしていただくことで、EBA実施の効果を最大化していただけるものと考えております。 こちらのお客様の事例は、“ 技術的負債との戦い、マイクロサービスとアジャイル開発への挑戦 ”に詳しく記載されておりますので是非ご覧ください。 まとめ 前後編に渡って「EBAとは何か」についてご説明させていただきました。EBAの概要、実施目的をご理解いただけましたでしょうか。経験不足などでモダナイゼーションの一歩を踏み出すのが難しい状況におられるお客様は、EBA実施を通して伴走支援させていただきますのでAWSへお問い合わせください。 著者 カスタマーソリューションマネージメント統括本部 カスタマーソリューションマネージャー (CSM) 服部 昌克、宮本 雅勝 参考リンク モダナイゼーションを実践するEBA (前編) 技術的負債との戦い、マイクロサービスとアジャイル開発への挑戦 弥生×AWS×モダナイゼーション
こんにちは、カスタマーソリューションマネージャー (CSM) の宮本です。この記事では、モダナイゼーションを検討しているお客様向けに、AWSがご提供するEBA (Experience-Based Acceleration) というプログラムをご紹介します。 以前、 こちらの記事 で、モダナイゼーションとは何か、およびEBAの概要について言及しました。EBAに興味を持たれた方の中には「まだまだ具体的に何をするのかイメージがつかない」という方もいらっしゃると思います。 本記事では、前後編に渡り、より具体的にEBAの内容をご説明し、イメージをつかんでいただきたいと思います。 前編では、EBAの概要、スケジュールや期待される効果、目標設定についてご紹介します。 EBAの概要 EBAは、お客様のモダナイゼーションを加速させるModernization Accelerator (ModAx) というプログラムの一部です。ModAxでは、システムの評価とアーキテクチャ策定を行い、モダナイゼーション対象となるアプリケーションを見極め、実際にビルド&デプロイを経験していただきます。このビルド&デプロイを経験いただくプログラムが、EBAです。 なお、システムの評価とアーキテクチャ策定は、MODAというプログラムにて実施します。 MODAとEBAは共に、AWS ITトランスフォーメーションパッケージ for Cloud Nativeとしてご提供しております。詳細は こちらの記事 を参照ください。 また、EBAはモダナイゼーションに限らず、基盤構築やマイグレーションをテーマに実施する場合もありますが、本記事中で言及する”EBA”は、”モダナイゼーションをテーマとしたEBA”の事を指します。 EBAとは、お客様自身によるパイロット開発を伴走型で支援するプログラムです。 本格的なモダナイゼーションの実現に向け、お客様が行うパイロット開発を、約6週間で設定し、“2 pizza team”や“2-way door”という要素も取り入れながら、AWSが短期集中的に支援し、最小プロダクトを開発いただく経験を通して、今後のお客様の開発に役立てていただきます。 “2 pizza team”や、“2-way door”というのは、Amazonで用いられている考え方です。これらの用語は、関連記事である“ アプリケーションのモダナイゼーションを加速するEBA ”で触れていますので参照ください。 スケジュールや期待される効果 EBAは、5週間の準備期間と、6週目の3日間で実施するビルド&デプロイで構成されています。準備期間では、EBAの目標、成功条件を定義、具体的なタスクを決定し、要件定義・設計・実装を進めていきます。最後の3日間では、参加者が一同に会し、集中的にビルド&デプロイの作業を実施し、最小限のプロダクトを完成させ、アプリケーションのモダナイゼーションを実践していただきます。 自ら手を動かしてモダナイゼーションを実践し、ノウハウと成功体験を獲得すると同時に、何が不足しているかを把握し、課題を整理することで、今後、お客様が本格的に取り組んでいくモダナイゼーション計画の策定に役立てていただくことを期待しています。 EBAに参加いただく方は、ある程度AWSのサービスに精通している必要があります。 そのため、EBAを実施するうえで必要な知識、スキルが不足している場合、事前にAWSが提供するトレーニングを受講いただく事を推奨します。また、AWSチームによる勉強会を開催する事も可能です。EBAの準備期間に入る前に、必要最低限の知識、スキルを習得いただきます。 では、スキルも習得したところで、5週間の準備期間で何を実施するかを紹介します。 EBAではお客様とAWSとで複数のチームを構成します。 大きくは、ファシリテーションを担当するチームと、実作業を担当するチームに分かれます。ファシリテーション担当は1チームのみですが、作業担当チームは規模に応じて確定させます。ファシリテーション担当チーム、作業チームに対して、AWSチームがそれぞれサポートをさせていただきながら、EBAを進めていきます。 目標設定 最初に、EBAの目標を明確にします。EBAの期間は6週間と限られています。そのため、EBAを何のために実施するのか、何を達成すれば成功とするのか、という具体的な目標を設定し、それを達成するために準備期間で必要なタスクを進めていきます。 目標設定は、非常に重要なポイントであり、同時にお客様が悩まれるポイントです。 EBAに参加する全員が、何を達成すべきなのかを明確に理解できる目標を設定することが重要です。目標があいまいな場合、EBA参加者によって、何を達成するかの基準がずれる可能性があります。EBAでは、2つの観点で目標を設定します。1つは、EBAを実施すること自体の目標で、成功基準とも表現します。もう1つは、各作業チーム毎の目標です。 まず、重要なのはEBAを実施すること自体の目標 (成功基準) を設定することです。 EBA自体の目標設定のために、なぜEBAを実施することに決めたのか、EBA実施後にどうなりたいか、を改めて考えてみてください。アジャイル開発 (スクラム) を取り入れて開発/リリースのスピードを上げたいのか、AWSの構築スキルやサービス知識を習得して自社で開発する力を身に付けたいのか、異なる部門間の協業により組織の壁を取り除きたいのか、実施する理由や、目指すべき姿はさまざまだと思います。目指すべき姿に合わせた目標 (成功基準) を設定し、EBAにてそれを達成することで、ぜひ次のステップへと繋げていただきたいです。 その後、各作業チームの目標を設定します。 各作業チームが、具体的にEBA期間中に何をするのかを定義しましょう。例えば、「対象システムのプロトタイプを作成する」や、「スキルを向上させる」という目標を設定する場合、プロトタイプは、具体的にどの機能まで実装するかであったり、どのような基準でスキルが向上したことを示すか、という事を明確にし共通認識とすることが重要です。 また、現実的な目標に加えて、ストレッチ目標を設定することを推奨します。 「ストレッチ目標」とは、もう少し頑張れば、実現できる程度の難易度に設定された目標のことです。 皆さま、EBAの準備期間開始時のスキルや知識を前提に目標を立てられますが、実際に準備期間を進めていくと、スキルや知識を習得していき、準備期間中に最初に設定した目標を達成することも起こり得ます。最初の時点で、少し高めの目標を設定し、さらに「ストレッチ目標」を設定しましょう。 まとめ 前編ではEBAの概要、スケジュールや期待される効果、目標設定について説明しました。 後編では、最後の6週目の3日間で何を実施するのか、実施体制やEBAにてAWSが支援する事などについて紹介します。 参考リンク アプリケーションのモダナイゼーションを加速するEBA AWS ITトランスフォーメーションパッケージ 2023 ファミリー(ITX 2023) 著者 カスタマーソリューションマネージメント統括本部 カスタマーソリューションマネージャー (CSM) 宮本 雅勝、服部 昌克
AWS re:Invent 2023 は、11 月 27 日から 12 月 1 日まで、ネバダ州ラスベガスで開催されます。これは、AWS が主催する 1 年で最も包括的なイベントであり、AWS について学び、スキルを磨くための最も早い方法です。 この記事では、関心のあるトピックを簡単に見つけられるように、モノのインターネット (IoT) セッションの専用トラックをキュレーションし、整理しました。IoT トラックには、自動車、産業、スマートホーム、ロケーションなどの重点分野があります。Innovation Talk と Breakout Session は、AWS のオピニオンリーダーによる講義形式で、多くの場合顧客スピーカーが出演し、他の企業の同僚から直接話を聞くことができます。Chalk Talk、Workshop、Builders’ Session は、よりインタラクティブで技術的で実践的な内容で、AWS の技術専門家が主導します。 また、 Expo 内の AWS Village、開発者ラウンジ、Industries Pavilion を訪れて、AWS IoT の専門家と会話を始めたり、IoT サービスを紹介するデモを見たりすることもできます。 Innovation Talk クラウドテクノロジーがビジネスの推進にどのように役立つかを深く掘り下げる AWS リーダーとのセッションは必見です。 AUT207-INT | クラウドにおける製造とモビリティの革新 HYB207-INT | Innovation Talk: 新興技術 IoT セッション: クロスインダストリー どの業界で働いていても、これらのセッションに参加すると、中核となる IoT サービス、発表、ユースケースについて学ぶことができます。 Breakout Session IOT211 | AWS IoT でビジネスを革新し、顧客体験を高める Chalk Talk IOT101 | Amazon Kinesis Video Streams でエッジにある多数の IP カメラを管理する IOT209 | IoT 接続: パフォーマンス、コスト、統合のバランス IOT301-R | すべての IoT ソリューションの安全な基盤を構築する方法 [再演あり] IOT307 | IoT ソリューションの負荷テストを効果的に行うための戦略 Workshop IOT205 | 生成系 AI と AWS IoT を使用して、絵を描く 2D ロボットを構築する IOT311 | IoT データの取り込みと視覚化のためのアーキテクチャパターンを構築 Builders’ Session IOT304-R | AWS IoT と AI/ML による自動動画モニタリングシステムを構築 [再演あり] IoT セッション: 自動車 これらのセッションに参加して、AWS IoT が安全な車両接続の確立と車両データの効果的な管理にどのように役立つかを学びましょう。 Breakout Session IOT204 | AWS IoT によるコネクテッドカープラットフォームの革新と最新化 Chalk Talk IOT210 | AWS IoT によるコネクテッドカーからのビッグデータワークロードの管理 IOT309-R | MQTT 5 で AWS IoT Core を使用したアプリケーションの革新 [再演あり] Workshop IOT305 | AWS IoT を使用して車両全体の EV バッテリーの異常を検出しよう IoT セッション: インダストリアル これらのセッションに参加して、エッジからクラウドまで優れた運用を実現する最新の産業用データアーキテクチャの設計に AWS IoT がどのように役立つかをご覧ください。 Breakout Session IOT206 | AWS での IoT による産業変革の加速 Chalk Talk IOT212 | AWS IoT SiteWise によるデータヒストリアンのモダナイゼーション IOT310-R | AWS でデジタルツインを 60 分で構築する方法をわかりやすく解説 [再演あり] Workshop IOT203-R | スマート製造のための自動異常検出 [再演あり] IoT セッション: スマートホーム これらのセッションに参加して、AWS IoT が Matter、Amazon Sidewalk、AI などの新しいテクノロジーや仕様を取り入れ、費用対効果が高く、将来を見据えたスマートホームソリューションを構築するのにどのように役立つかを学んでください。 Breakout Session IOT207 | AWS IoT を活用した次世代のスマートホームソリューション IOT213 | AWS IoT によるコネクテッドプロダクトとソリューションのスケーリング Chalk Talk IOT306-R | 生成系 AI を使用した AWS IoT GreenGrass コンポーネントの設計 [再演あり] Workshop IOT202 | 規格に準拠した安全なコネクテッド製品を AWS IoT で構築する IOT302-R | 新しいスマートホームユニバース: Matter規格でIoT製品を設計する [再演あり] IoT セッション: ロケーション これらのセッションに参加して、AWS IoT と Amazon Location Service を一緒に使用して、アセットトラッキング、モバイルエクスペリエンス、ルート最適化などの分野で機能を強化する方法を学びましょう。 Breakout Session IOT208 | 位置情報サービスによる顧客体験の最適化 Chalk Talk IOT308 | AWS IoT と Amazon Location Service でロジスティクストラッキングを最適化する Workshop IOT303 | ロケーションベースのサービスと Amazon Sidewalk を使用したアセットトラッキング Expo Expo では、楽しんだり、AWS の専門家と話したり、テクノロジーのデモを直接見たりすることができます。Expo エリアは広大で、誰もが楽しめるものが揃っています。時間をかけてできるだけ多くのことを見てください。ただし、IoT に注目したい場合は、次の推奨事項を確認してください。 AWS Village — 新技術キオスク 新しいテクノロジーキオスクを訪れて、IoT、ロボティクス、量子に関するデモをご覧ください。IoT デモは、AWS DeepRacer ハードウェアのカスタマイズされたバリエーションで、さまざまな接続テクノロジー (Cellular LTE/NB-IoT、Wi-Fi、LoRaWAN) を紹介し、Alexa、Amazon Sidewalk、Amazon Location Service との相互統合を紹介します。AWS DeepRacer IoT デモでは、さまざまな業界のエッジにおける AWS IoT の変革の可能性を探ります。組織が AWS IoT Greengrass を使用して、コネクテッドカー、スマートシティ、農業などのシナリオでエッジコンピューティングの力を引き出す方法を示しています。AWS IoT at the Edge が、インテリジェントでスケーラブルな機能をネットワークのエッジにもたらすことで、組織が物理世界とデジタル世界のギャップを埋めるのにどのように役立つかをご覧ください。 開発者ラウンジ — Open Source Auto: Vegas Edition 魅力的でインタラクティブな自動車運転のデモを体験してください。このデモでは、車両の状態の監視から車内体験の向上まで、ほぼすべてのユースケースで AWS がどのように車両データの価値を引き出すことができるかを紹介しています。リアルなタッチスクリーンダッシュボード、ステアリングホイール、ペダル、バケットシートを備えた自動車用コックピットの運転席に足を踏み入れます。シミュレーターを使用して、街灯、曲がり角、障害物、ライブトラフィックを備えた仮想都市景観の道路をナビゲートします。ステアリング、ブレーキ、加速中に、車両の CAN 信号やさまざまなセンサーデータをほぼリアルタイムで監視しながら、実行中のアプリケーションプロセスを把握できます。AWS IoT FleetWise、AWS IoT Core、AWS IoT Greengrass など、最新の AWS IoT サービスと機能がすべて実際に動作しているのがわかります。この魅力的なデモは、単なるシミュレーションではありません。コネクテッドカー技術の未来と、自動車の監視と分析の可能性を垣間見ることができます。 Industries Pavilion — 自動車 コネクテッドモビリティ — Connected Mobility Solution on AWS は、コネクテッドカーインフラストラクチャを開発、デプロイ、管理する際のわずらわしさ、時間、コストを削減するように設計された環境をお客様やパートナーに提供するプラットフォームエンジニアリングサービスです。AWS IoT Core などの AWS サービスや、専用の自動車サービスである AWS IoT FleetWise を使用して革新的なソリューションを構築する方法をご覧ください。 OCPP 準拠の大規模な EV 充電 — 化石燃料から電気自動車への移行は、正味ゼロ排出量を達成するための政府および商業公約の重要な要素です。チャージポイントオペレーター (CPO) は、定期的なリモートおよびオンサイトメンテナンス、ヘルスメトリックの収集、運用構成の管理を担当します。AWS IoT Core、Amazon Elastic Container Service、AWS Lambda などのサービスを使用して、EV 業界標準である OCPP に基づいて、スケーラブルで低レイテンシーの CPO ソリューションを構築する方法をご覧ください。お客様は、AWS のマネージドサービスによって、大規模な EV 料金の運用に関連する手間のかかる作業がどのように軽減されるかを学ぶことができます。 Industries Pavilion — 製造 スマート製造 | スマート製造による運用上の洞察の促進 — Amazon スマート製造のデモでは、目視検査、材料トレーサビリティ、状態ベースモニタリング、クラウド主導の自動化を実証する産業サービス (産業用 IoT と機械学習) とソリューション (産業データファブリック) 向けの AWS を紹介します。デモには、リニアトラック、ピックアンドプレースロボット、目視検査カメラが含まれています。これらは、AWS の産業用オートメーション機器を使用して、AWS Snowcone 上で稼働する産業用エッジを介して統合されます。 機械学習 | 機械学習による産業オペレーションの最適化 — このデモでは、お客様が異常な状態 (異常振動) を起こし、Amazon Monitron ワイヤレスセンサーが振動データを Monitron Gateway と AWS に送信するのを見ることができるモーターを取り上げます。Amazon Monitron アプリケーションを通じて、異常なモーター状態に関するアラートが届くのを確認でき、アクションを起こすのがいかに簡単かを知ることができます。さらに、品質検査とコンピュータービジョン (CV) がどのように品質検査を自動化できるかを紹介します。 生成系 AI | 製造業向けの生成系 AI アプリケーションの構築 — 産業企業は、革新的な新製品設計の開発、かつてないレベルの製造生産性の向上、サプライチェーンアプリケーションの最適化など、生成系 AI を活用してビジネスを変革する方法を模索しています。アマゾン ウェブ サービスにより、メーカーが基盤モデルを使用して生成的な AI ベースのアプリケーションを簡単に構築およびスケーリングできるようになった様子を示すデモをご覧ください。 まとめ re:Invent 2023 に皆様をお迎えし、最新のニュースやイノベーションを共有できるのを楽しみにしています。 re:Invent のウェブサイト で詳細を確認し、 フルセッションカタログ をご覧ください。近いうちにお会いしましょう! この記事は Olivia Bias によって書かれた Get connected with AWS IoT at re:Invent 2023 の日本語訳です。この記事はソリューションアーキテクトの岡本晋太朗が翻訳しました。
この記事は Announcing remote cache support in Amazon ECR for BuildKit clients (記事公開日 : 2023 年 10 月 24 日) の翻訳です。 この機能は、 バージョン 25.0 のリリース 時に Docker によってプリインストールされ、サポートされる予定です。この機能は、Buildkit バージョン 0.12 以降ですでにリリースされており、現在は Finch バージョン 0.8 以降で利用可能です。 導入 Amazon Elastic Container Registry (Amazon ECR) は、お客様がコンテナイメージとアーティファクトを保存、共有、デプロイするために使用する、完全マネージドなコンテナレジストリです。Amazon ECR は、AWS 環境と非 AWS 環境の両方で、お客様のビルドとデプロイのパイプラインの一部として、数十万人のお客様によって使用されています。 お客様が Amazon ECR や他のレジストリで最も頻繁に作業するのは、コンテナイメージのパッケージ化とレジストリへの保存を担当するコンテナクライアントです。これらの多くのクライアントは、 BuildKit として知られる一般的なオープンソースのイメージビルドツールキットを使用しています。これには、 Docker (23.0 以降)、 Finch 、 Earthly などのクライアントが含まれます。ビルド時に、クライアントはコンテナイメージの各レイヤーを、イメージが完成するまで 1 つずつビルドします。 一部のレイヤーはビルド間であまり変更されないため、クライアントはビルドしたすべてのレイヤーのローカルコピーを保存し、その後のビルドでこのローカルキャッシュを再利用します。これは、毎回レイヤーを再ビルドするよりもはるかに高速です。 ただし、これはビルドランナーまたはワーカーが各ビルド実行ごとに同じコンピュート環境で実行される場合にのみ機能します。 GitHub Actions や GitLab CI Enterprise などの一般的な CI/CD プラットフォームは、ビルドごとに一時的なコンピュートを使用するため、ローカルキャッシュを構築および使用することができません。 ソリューションの概要 一時的なコンピュートツールでもキャッシュを使用できるようにするために、 BuildKit は 2020 年にリモートキャッシュをエクスポートする機能を導入しました。 これらのリモートキャッシュは、ローカルのレイヤーキャッシュと同様に機能します (つまり、レイヤーは格納され、スクラッチから再構築する代わりに使用されます) 。 唯一の違いは、ビルドされた各レイヤーがリモートレジストリに送信され、後続のビルドでローカルキャッシュにない場合に取得されることです。 AWS のお客様は、この機能を使用してイメージのビルドを速めることを望んでおり、 Amazon ECR でのサポートを求めていました。 ただし、これらのキャッシュを格納するために使用されるフォーマットは、 Open Containers Initiative (OCI) 形式ではありませんでした。 Amazon ECR は OCI 準拠のレジストリであるため、このリモートキャッシュフォーマットを Amazon ECR にプッシュすると、検証に失敗します。 BuildKit は最近バージョン 0.12 をリリースしました。このバージョンには、リモートビルドキャッシュを OCI 互換の方法で生成および保存できるソリューションを提供しています。これには Amazon ECR エンジニアからの貢献 が含まれています。これは、 BuildKit が Amazon ECR のように OCI 仕様を実装するレジストリでビルドキャッシュを保存および取得できることを意味します。このアップデートにより、ビルドおよびプッシュされたイメージとは別に、キャッシュイメージを Amazon ECR リポジトリにプッシュできるようになります。このキャッシュイメージは、後のビルドで参照でき、ノート PC からのプッシュか、 GitLab や GitHub Actions などのプラットフォーム上の本番 CI/CD ビルドからのプッシュかに関わらず、プッシュ時間を大幅に短縮することができます。 ウォークスルー Amazon ECRでのリモートキャッシュの使い方 これらの例では、 Docker を使用します。バージョン 25.0.0 以降を実行していることを確認してください。これには、 Amazon ECR やその他の OCI 互換レジストリで機能するために必要な変更が含まれている BuildKit 0.12 が含まれています。これらの例は、ローカルの開発環境で実行するか、 CI/CD プラットフォームのビルドスクリプトで使用できます。 例えば次のようにして、 CI/CD には Docker を使用してイメージをローカルでビルドし、その後ビルドしたイメージを Amazon ECR にプッシュするビルドステップをおこないます。 docker build -t <account-id>.dkr.ecr.<aws-region>.amazonaws.com/buildkit-test:image . docker push <account-id>.dkr.ecr.<aws-region>.amazonaws.com/buildkit-test:image Apache Configuration Amazon ECR にキャッシュを入力し、その後のビルドで使用するようにするには、ビルドコマンドに –cache-to および –cache-from オプションを追加します。 docker build -t <account-id>.dkr.ecr.<my-region>.amazonaws.com/buildkit-test:image \ --cache-to mode=max,image-manifest=true,oci-mediatypes=true,type=registry,ref=<account-id>.dkr.ecr.<my-region>.amazonaws.com/buildkit-test:cache \ --cache-from type=registry,ref=<account-id>.dkr.ecr.<my-region>.amazonaws.com/buildkit-test:cache . docker push <account-id>.dkr.ecr.<my-region>.amazonaws.com/buildkit-test:image Apache Configuration 一見多くの設定があるように見えますが、追加したことを順を追って見ていきましょう。 cache-to と cache-from という 2 つの新しいオプションセットがあります。 cache-to オプションは、 ref という引数のコンテキストキーで指定されたイメージ URI に基づいて、エクスポート先(または作成先)のリモートキャッシュを指定します。ここでのイメージ URI は、実際にビルドされているタグ付きイメージとは異なることに注意してください。必要に応じて、キャッシュの URI を Amazon ECR の別のリポジトリを指すように設定できますが、これは必須ではありません。 type という引数のコンテキストキーで指定された値 registry は、レジストリにプッシュするリモートキャッシュを作成していることを意味します。 Buildkit 0.12 で導入された新しいコンテキストキーは image-manifest です。このキーの値を true に設定すると、レジストリに OCI 互換バージョンのリモートキャッシュを保存できるようになりました。また、 image-manifest を使用するには oci-mediatypes を true に設定する必要があるため、それも設定しています。リモートキャッシュは ref のイメージ URI で暗黙的にプッシュされるため、ビルドステップに別の push コマンドを追加する必要はありません。 cache-from オプションは、Dockerfile で特定のビルドステップを実行する代わりに BuildKit が取得できるキャッシュの場所を指定します (ただし、そのレイヤーとそれ以前のレイヤーについて 何も変更されていない場合 )。この場合、cache-to で指定したキャッシュマニフェスト URI を持つ Amazon ECR リポジトリから取得されます。 要約すると、 cache-to はリモートキャッシュマニフェストをエクスポートし将来のビルドを高速化するための準備をするものであり、 cache-from はエクスポートされたリモートキャッシュマニフェストを利用して、現在のビルドを高速化します。キャッシュが最初に存在しない場合、 cache-from は諦めてキャッシュを使用しないため、新しいビルドステップに両方を同時に導入できます。この 1 つの変更により、レイヤーが変更されるたびに新しいビルドがリモートキャッシュを更新し、すべてのビルドが常に最新のキャッシュを使用します。 このビルドを実行して AWS コンソールに移動し、 Amazon ECR にプッシュされた内容を確認してみましょう。 イメージとキャッシュがあることがわかります。後続のビルドでは、 Dockerfile のキャッシングのベストプラクティス に従うビルドの場合、イメージのビルドステップがかなり速くなるはずです。 CI/CD ソリューションを最新バージョンの Docker または BuildKit にアップデートする方法については、 CI/CD プロバイダーのドキュメントを参照してください。代表的な CI/CD ソリューションのアップデート方法の例を紹介します。 GitLab CI の場合 GitLab Runner の docker image の tag を最新バージョンの dind に簡単に変更できるはずです。 GitHub Actions では、 setup-buildx-action を、バージョンが最新に設定されているか、バージョン文字列が 0.12 以降に設定されていることを確認してください。 Travis CI の場合は、 こちら から Travis インストレーションを更新できます。 CircleCI の場合、yml の setup_remote_docker にあるバージョンを、 こちら に示されているサポートされている最新のバージョンに変更できるはずです。 まとめ このブログ記事で説明したソリューションを使用すると、 Amazon ECR にリモートビルドキャッシュを保存することでコンテナのビルドを高速化できます。私たちの信条は、 AWS のお客様だけでなく、 OCI のようなオープンソースコミュニティや標準にも適したソリューションを提供することです。 Amazon ECR では、 BuildKit へのサポートの組み込みが、よりオープンで互換性のあるリモートキャッシュソリューションを実現したと考えています。今すぐ CI/CD のビルドパイプラインでリモートキャッシュをお試しいただき、高速で一貫したイメージビルド時間のメリットを体験してください! 筆者 Matt Kang 翻訳はソリューションアーキテクトの瀧田 直斗が担当しました。原文は こちら です。
2023 年 10 月に公開された AWS Black Belt オンラインセミナーの資料及び動画についてご案内させて頂きます。 動画はオンデマンドでご視聴いただけます。 また、過去の AWS Black Belt オンラインセミナーの資料及び動画は「 AWS サービス別資料集 」に一覧がございます。 YouTube の再生リストは「 AWS Black Belt Online Seminar の Playlist 」をご覧ください。 AWS Control Tower 機能紹介編 統制の効いたマルチアカウント環境を構築する際に AWS Control Tower は有力な選択肢です。AWS Black Belt Online Seminar AWS Control Tower 機能紹介編では、AWS Control Tower の各機能の詳細を紹介いたします。 資料( PDF ) | 動画( YouTube ) 対象者 AWS Control Tower に興味のある方 AWS Control Tower について深く学びたい方 本 BlackBelt で学習できること AWS Control Tower の各機能の詳細 ランディングゾーン コントロール Account Factory スピーカー 桂井俊朗 ソリューションアーキテクト AWS Lake Formation AWS Lake Formation は安全なデータレイクを簡単に作ることができるサービスです。主要な機能としてデータレイクへの一元的なアクセス制御やデータレイクへのデータ投入、クロスアカウントやクロスリージョンでのデータ共有を行うことが可能です。 資料( PDF ) 対象者 前提知識は、「AWS のグローバルインフラストラクチャやフルマネージドサービスの概念」と「AWS の基盤となるサービスの基本的な知識」です。 対象者は安全なデータレイクを作る上で「AWS Lake Formation」で何ができるのかを知りたい方です。 本 BlackBelt で学習できること AWS Lake Formation の基本的なサービス概要、Lake Formation の仕組み、Lake Formation の各種機能の詳細を解説します。 スピーカー 佐藤祥多 アナリティクススペシャリストソリューションアーキテクト Amazon SageMaker Canvas ノーコードで始める機械学習【ML-Dark-10】 Amazon SageMaker Canvas を利用してノーコードで機械学習を始める方法について解説しました。 資料( PDF ) | 動画( YouTube ) 対象者 まだ機械学習の知識・スキルはないけど、業務に機械学習を活用したい方 データ分析・機械学習のワークロードを効率化したい方 本 BlackBelt で学習できること Amazon SageMaker Canvas の使い方・使いどころ ビジネス課題へ機械学習を適用するはじめの一歩 既存の ML ワークロードを効率化する方法 スピーカー 小杉知己 プロフェッショナルサービス AWS Application Discovery Service の概要(AWS 移行準備シリーズ) クラウド移行をはじめるには、品質や TCO を考慮しつつ移行プランを作成する等入念な移行準備が必要になります。AWS では、そのための情報を収集する Discovery ツールを提供しています。本セッションでは、そのうちの1つ、エージェントまたはエージェントレス型での情報収集を行う AWS Application Discovery Service をご紹介します。 資料( PDF ) | 動画( YouTube ) 対象者 移行案件に関わったことのある、これから関わられる方の内、移行を企画・検討中の方、移行プランの策定を行う方、IT 資産の棚卸しを検討中の方、特に、上記に取り組まれる PM 、アーキテクトの方 本 BlackBelt で学習できること Discovery 作業(情報収集)の必要性、および AWS Application Discovery Service の概要 スピーカー 鈴木槙将 ソリューションアーキテクト Amazon Monitron Part 2(設定編) Amazon Monitron は回転機器の振動や温度データを、設備に貼り付けた電源不要のセンサーデバイスでクラウド上へ収集しクラウドで分析することで、潜在的な障害の予兆を検知して、計画外のダウンタイム発生を防止するソリューションです。このセミナーでは Amazon Monitron シリーズ Part 2 として、Amazon Monitron を購入し実際に利用開始する方法を説明します。 資料( PDF ) | 動画( YouTube ) 対象者 工場、プラント、物流拠点等で設備の計画外ダウンタイムを減らしたい方 モーター・ギア・ベアリング・ポンプ・コンプレッサーなどの回転体部品を多く稼働させておりそれらの点検保守を効率化したい方 機器の計画保守(定期的な点検保守)を減らし、データに基づく予測型保守を導入したい方 Amazon Monitron ( 基礎編)Part1 で Amazon Monitron の仕組みを学んだ方 本 BlackBelt で学習できること Amazon Monitron ( 基礎編)Part1 で Amazon Monitron の仕組みを学んだ方向けに、今回の Part 2 では Amazon Monitron を購入し実際に利用開始する方法を説明します。 スピーカー 伊藤ジャッジ向子 ソリューションアーキテクト Amazon EventBridge グローバルエンドポイント この動画では、Amazon EventBridge のグローバルエンドポイントの機能について紹介します。本機能を使用することで、システムのレジリエンスを向上させ、より堅牢なアプリケーションを開発することが可能になります。 資料( PDF ) | 動画( YouTube ) 対象者 Amazon EventBridge について基本的な知識をお持ちの方 システムのレジリエンス向上に興味のある方 Amazon EventBridge を利用したマルチリージョン構成をご検討の方 本 BlackBelt で学習できること EventBridge グローバルエンドポイントを使用した高可用性アプリケーションの設計・開発方法 スピーカー 櫻谷広人 パートナーソリューションアーキテクト Amazon Connect カスタム CCP による従業員体験の向上 Amazon Connect では、公開している API を使用してお客様がソフトフォンを自由にカスタマイズ可能です。本セッションはコンタクトセンターにおける様々な課題のうち従業員体験の課題にフォーカスし、技術的な解決方法としてサンプルのカスタムソフトフォンをご紹介し、アーキテクチャを詳細に解説します。 資料( PDF ) | 動画( YouTube ) 対象者 Amazon Connect カスタム CCP の具体的な実装例を知りたい方 フロントエンド/バックエンド開発の基本的な知識のある方 本 BlackBelt で学習できること Amazon Connect のエージェントインタフェースを拡張するための実装方法、および Amazon Connect のメトリクスを取得する際の注意点について学習できます。 スピーカー 清水幸典、小柳ちか子 Amazon Connect スペシャリスト ソリューションアーキテクト、プロトタイピングエンジニア Amazon Connect Google Chrome サードパーティ Cookie の段階的廃止に関する対応 Google 社のプライバシーサンドボックスの取り組みの一環として、Google Chrome にてサードパーティ Cookie を段階的に廃止する計画が発表されました。このセミナーでは、Amazon Connect で Chrome を継続的にご使用頂くために必要な対応について説明します。 資料( PDF ) | 動画( YouTube ) 対象者 Amazon Connect をご利用中のエンドユーザー様、パートナー様 Amazon Connect でカスタム CCP に関する基本的な知識や開発経験をお持ちの技術者 本 BlackBelt で学習できること Chrome のサードパーティ Cookie 廃止に伴いカスタム CCP や CTI Adapter において必要な対応および注意点 スピーカー 梅田裕義 ソリューションアーキテクト Amazon EC2 Auto Scaling スケーリングポリシーとおすすめ機能編 Amazon EC2 Auto Scaling の活用編として、スケーリングポリシーとおすすめ機能についてご紹介いたします。 資料( PDF ) | 動画( YouTube ) 対象者 AWS 基盤環境のインフラを担当されている方 EC2 インスタンスの自動スケールと管理に必要な知識を知りたい方 本 BlackBelt で学習できること Auto Scaling サービス群の整理、令和におすすめのスケーリングポリシー、よくあるご質問をご紹介します。 スピーカー 滝口開資 シニアスペシャリストソリューションアーキテクト AWS CloudFormation DeepDive 編 AWS CloudFormation は、インフラストラクチャをコードとして扱うことで、リソースをモデル化、プロビジョニング、管理することができます。 本セミナーでは、AWS CloudFormation を活用する上で有効な機能について紹介していきます。 資料( PDF ) | 動画( YouTube ) 対象者 AWS CloudFormation の深い機能を知りたい方 カスタムリソースやマクロなどカスタム機能について詳細を知りたい方 本 BlackBelt で学習できること カスタムリソースやマクロといったカスタム機能の詳細 スタックやリソースの保護に関する機能 AWS CodePipeline と組み合わせた構成例 スピーカー 山本一生 クラウドサポートエンジニア AWS CloudFormation CloudFormation レジストリ編 AWS CloudFormation は、インフラストラクチャをコードとして扱うことで、リソースをモデル化、プロビジョニング、管理することができます。 本セミナーでは、CloudFormation レジストリの概要や機能、実装について解説いたします。 資料( PDF ) | 動画( YouTube ) 対象者 CloudFormation レジストリに興味のある方 CloudFormation 上で独自に実装したロジックを実行されたい方 本 BlackBelt で学習できること CloudFormation レジストリの概要や機能 CloudFormation に対応したリソースの実装方法 スピーカー 山本一生 クラウドサポートエンジニア AWS CloudFormation よくあるユースケースと質問編 AWS CloudFormation の よくあるユースケース別の使い方や質問について解説します。 資料( PDF ) | 動画( YouTube ) 対象者 本セミナーでは、AWS CloudFormation の ユースケース や よく聞かれる疑問に興味のある方 AWS の基本的な概要や操作、AWS CloudFormation の用語について理解している方 本 BlackBelt で学習できること よくあるユースケースとして、手動で作ったリソースの CloudFormation の管理化に入れる方法や CloudFormation テンプレートの分割方法、複数の AWS アカウントやリージョンに基本設定を展開するなどの様々な例を取り上げて解説します。 スピーカー 木村友則 ソリューションアーキテクト AWS Budgets AWS Budgets を使用すると、想定外の料金の増加にいち早く気付くことができます。 AWS Budgets を使用した予算、予算レポートのポイント、設定方法をご紹介します。 資料( PDF ) | 動画( YouTube ) 対象者 AWS 料金の予算管理をしたい方 AWS 料金の想定外の増加にいち早く気付きたい方 AWS 料金の予測することにより、既存の計画の改善をしたい方 本 BlackBelt で学習できること AWS Budgets の概要と基本的な使い方 AWS Budgets Report の概要と基本的な使い方 AWS Chatbot を使用したチャットツールとの連携方法 スピーカー 岡本迅人 シニアテクニカルアカウントマネージャ Amazon CodeCatalyst Overview 編 Amazon CodeCatalyst は、アプリケーションの開発、ビルド、デプロイ、およびテストを簡単かつ迅速に行うための「統合ソフトウェア開発サービス」です。Overview 編では、Amazon CodeCatalyst の全体像を解説します。 資料( PDF )  対象者 チーム開発をするすべてのアプリケーション開発者 Amazon CodeCatalyst の全体像を理解したい方 本 BlackBelt で学習できること Amazon CodeCatalyst のメリット Amazon CodeCatalyst の機能と概念 Amazon CodeCatalyst の料金 スピーカー 三尾泰士 ソリューションアーキテクト Amazon GameLift FleetIQ Amazon GameLift FleetIQ は、セッションベースのオンラインマルチプレイヤーゲームの専用ゲームサーバーをホスティングする AWS サービス Amazon GameLift に含まれる、専用ゲームサーバー向けに Amazon EC2 と Amazon EC2 Auto Scaling の活用を最適化するホスティングオプションです。 本セミナーでは、Amazon GameLift FleetIQ の概念と統合方法について体系的に解説します。 資料( PDF ) | 動画( YouTube ) 対象者 柔軟性の高い専用ゲームサーバーホスティングサービスを検討されている方 既存の専用ゲームサーバーを AWS でホスティングしたい方 Amazon GameLift FleetIQ の導入予定・検討中の方 本 BlackBelt で学習できること Amazon GameLift FleetIQ の概念と統合方法 スピーカー 安藤怜央 ソリューションアーキテクト 今後の Black Belt オンラインセミナー また、現時点で予定されている今後の Black Belt オンラインセミナーについては以下の通りです。 公開月 タイトル 登壇予定者 2023-11 Amazon Linux 最新情報 ソリューションアーキテクト 寺部祐菜 2023-11 Karpenter Basic ソリューションアーキテクト 多田慎也 2023-11 AWS SAW – セルフサービス自動化ランブックを使用したトラフィック監視の視覚化 Amazon Virtual Private Cloud (Amazon VPC) 編 クラウドサポートエンジニア 中村佑希 2023-11 AWS CloudFormation#2 基礎編 クラウドサポートエンジニア 上原優樹 2023-11 AWS CloudFormation 開発・テスト・デプロイ編 ソリューションアーキテクト 山川達也 2023-11 AWS SAW – セルフサービスなトラブルシューティングと運用の自動化 Amazon Elastic Kubernetes Service (Amazon EKS) 編 クラウドサポートエンジニア 坂元龍太 2023-11 AWS SAW – セルフサービスなトラブルシューティングと運用の自動化 Amazon Elastic Compute Cloud – Windows 編 クラウドサポートエンジニア 和田智優 2023-11 Amazon CloudWatch Evidently テクニカルアカウントマネージャー 日平大樹 2023-11 AWS SAW – Nitro システムへの移行を支援する SAW ランブックのご紹介(EC2 Linux 編) クラウドサポートエンジニア 渡邉亮藏 2023-11 AWS SAW – セルフサービスなトラブルシューティング Amazon S3 + AWS Lambda 編 クラウドサポートエンジニア 石川直哉 2023-12 Amazon DynamoDB: Under the hood ソリューションアーキテクト 堤勇人 2023-12 Amazon CodeCatalyst Dev Environment 編 ソリューションアーキテクト 髙柴元 2023-12 Amazon CodeCatalyst Project 編 ソリューションアーキテクト 堀竜慈 2023-12 Amazon CodeCatalyst Space 編 ソリューションアーキテクト 柳久保友貴 2023-12 Amazon CodeCatalyst Workflow 編 パートナーソリューションアーキテクト 田中 創一郎 2023-12 Amazon CodeCatalyst Issues 編 ソリューションアーキテクト 江口昌宏 2023-12 Amazon MemoryDB Overview ソリューションアーキテクト 堤勇人 2023-12 モダナイゼーションプロジェクト立ち上げのポイント ソリューションアーキテクト 平岩梨果 2023-12 Amazon DataZone Overview ソリューションアーキテクト 平井健治 2023-12 移行戦略 (7R) の概要(AWS 移行準備シリーズ) テクニカルインストラクター 杉山大夢 2023-12 AWS への大規模移行のための戦略とベストプラクティス カスタマーソリューションマネージャー 大熊正浩
AWS Health の新機能を発表し、AWS リソースの計画されたライフサイクルイベントを管理し、チームがリソースレベルで実行する完了アクションを動的に追跡して、アプリケーションの円滑な運用を継続できるようにします。計画されているライフサイクルイベントの例としては、 Amazon Elastic Kubernetes Service (Amazon EKS) の Kubernetes バージョンの標準サポート終了、 Amazon Relational Database Service (Amazon RDS) の証明書のローテーション、他のオープンソースソフトウェアのサポート終了などが挙げられます。 これらの機能には以下が含まれます。 アプリケーションの中断を最小限にするために、可能な限りリソースレベルでアクションの完了を動的に追跡する機能。 マイナーな変更については少なくとも90日前、メジャーな変更については可能な限り180日前に通知を使用し、今後予定されているライフサイクルイベントをタイムリーに可視化します。 準備とアクションの実行に役立つ標準化されたデータ形式。AWS Health API を使用して、AWS Health イベントをお好みの運用ツールとプログラムで統合します。 委任された管理者を持つ全社的なワークロードを管理するチームの 計画されたライフサイクルイベントを組織全体で可視化します 。これは、Cloud Center of Excellence (CCoE) チームなどの中央チームが、組織ビューにアクセスするために管理アカウントを使用する必要がなくなったことを意味します。 Amazon EventBridge 上の組織内のすべてのアカウントからの AWS Health イベント の単一のフィード。これは、EventBridge 上でルールを作成してアクションを実行することで、組織全体の AWS Health イベントの管理を自動化するための一元的な方法を提供します。イベントの種類に応じて、イベント情報の取得、追加イベントの開始、通知の送信、是正処置、その他のアクションを実行できます。例えば、 Amazon Elastic Compute Cloud (Amazon EC2) インスタンスなどのアップデートがスケジュールされている AWS リソースが AWS アカウントにある場合、AWS Health を使用して、AWS コンソールモバイルアプリケーションに メール、AWS Chatbot、またはプッシュ通知を受け取ること ができます。 仕組み 計画されたライフサイクルイベントは、AWS Health Dashboard、AWS Health API、EventBridge から利用できます。AWS Health 通知を受信したり、作成したルールに基づいてアクションを開始するために、 “source”: [“aws.health”] 値を含む EventBridge 上のルールを作成すること によって、組織全体の AWS Health イベントの管理を自動化できます。例えば、AWS Health が EC2 インスタンスに関するイベントをパブリッシュした場合、これらの通知を使用してアクションを起こし、必要に応じてリソースを更新または置き換えることができます。「 スケジュールされた変更 」タブで、AWS リソースの計画されたライフサイクルイベントを見ることができます。 テーブルビュー – 組織レベル イベントの優先順位をつけるために、予定されている変更をカレンダービューで確認できるようになりました。イベントには、変更がいつ開始されるかを示す開始時刻があります。ステータスは、変更が発生するか、影響を受けるすべてのリソースに処置が施されるまで、「 今後の予定 」のままです。イベントのステータスは、影響を受けるすべてのリソースのアクションが完了したときに「 完了 」に変わります。 注目したくないイベントステータスの選択を解除することもできます。より具体的なイベントの詳細を表示するには、イベントを選択して、画面の右または下に分割パネルビューを開きます。 選択されたカレンダーイベント – 組織レベル(影響を受けるリソース) イベントの詳細表示で「 影響を受けるリソース 」タブを選択すると、影響を受けるリソースを解決するために適切な人々に働きかけるのに役立つ関連アカウント情報を見ることができます。 影響を受けるリソースビュー – アカウントレベル 他の AWS サービスとの統合 AWS Health に既に存在する EventBridge 統合を使用すると、変更イベントとその完全に管理されたライフサイクルを、JIRA、ServiceNow、 AWS Systems Manager OpsCenter などの他のツールに送信できます。EventBridge は、イベントに対するすべての更新(例えば、タイムスタンプ、リソースステータスなど)をこれらのツールに送信し、お好みのツーリングでイベントのステータスを追跡できるようにします。 EventBridge 統合 今すぐご利用いただけます AWS Health の計画されたライフサイクルイベントは、中国と GovCloud リージョンを除く、AWS Health が利用可能なすべての AWS リージョン で利用可能です。 詳細については、 AWS Health ユーザーガイド にアクセスしてください。ご質問は AWS re:Post for AWS Health 、または通常の AWS サポート窓口までお送りください。 — Veliswa 原文は こちら です。
「 データは、あらゆるアプリケーション、プロセス、ビジネス上の意思決定の中心にあります 」と、AWS のデータベース、分析、機械学習担当バイスプレジデントである Swami Sivasubramanian は述べていますが、まったく同感です。お客様が現在使用している一般的なパターンは、データパイプラインを構築して Amazon Aurora から Amazon Redshift にデータを移動することです。これらのソリューションは、売上の増加、コストの削減、ビジネスの最適化に役立つインサイトを得るのに役立ちます。 分析用のデータを準備するのではなく、データから価値を創出することに集中していただけるように、AWS re:Invent 2022 で Amazon Redshift との Amazon Aurora ゼロ ETL 統合を発表し 、2023 年 6 月に Amazon Aurora MySQL 互換エディションの パブリックプレビュー を行うことを発表しました。 一般提供開始: Amazon Redshift との Amazon Aurora MySQL ゼロ ETL 統合 11月7日、Amazon Redshift との Amazon Aurora MySQL ゼロ ETL 統合が一般公開されたことを発表しました。このフルマネージドソリューションがあれば、トランザクションデータから時間的制約のあるインサイトを引き出して重要なビジネス上の意思決定を行うために、複雑なデータパイプラインを構築して維持する必要がなくなります。 Amazon Aurora と Amazon Redshift の ゼロ ETL 統合 により、Amazon Redshift のペタバイト単位のトランザクションデータに対して、ほぼリアルタイムの分析と機械学習 (ML) を実行できるようになります。このデータが Aurora に書き込まれると、数秒以内に Amazon Redshift で利用できるようになります。 また、Amazon Redshift の複数の Aurora MySQL データベースクラスターから統合分析を実行して、多くのアプリケーションやパーティションにわたる総合的なインサイトを引き出すこともできます。 Amazon Redshift との Amazon Aurora MySQL ゼロ ETL 統合により、複数の Aurora データベースからの 1 分あたり 100 万件を超えるトランザクション (1 分あたり 1,750 万件の行の挿入/更新/削除操作に相当) が処理され、それらを Amazon Redshift で 15 秒未満で利用できるようになります (レイテンシーラグ 50 倍)。 さらに、マテリアライズドビュー、リージョン間のデータ共有、複数のデータストアやデータレイクへのフェデレーションアクセスなど、Amazon Redshift の分析機能と組み込みの ML 機能を活用できます。 使用を開始しましょう この記事では、いくつかのステップと、簡単に始めるための情報について説明します。既存の Amazon Aurora MySQL サーバーレスデータベースと Amazon Redshift データウェアハウスを使用します。 まず、Amazon RDS に移動し、 ゼロ ETL 統合 ページで ゼロ ETL 統合を作成 を選択する必要があります。 ゼロ ETL 統合の作成 ページで、いくつかのステップに従って、Amazon Aurora データベースクラスターと Amazon Redshift データウェアハウスの統合を設定する必要があります。 まず、統合用の識別子を定義し、 次へ を選択します。 次のページで、 RDS データベースの参照 を選択してソースデータベースを選択する必要があります。 ここでは、既存のデータベースをソースとして選択できます。 次のステップでは、ターゲットの Amazon Redshift データウェアハウスを尋ねられます。ここでは、自分のアカウントまたは別のアカウントで Amazon Redshift Serverless または RA3 データウェアハウスを柔軟に選択できます。 Redshift データウェアハウスの参照 を選択します。 次に、ターゲットデータウェアハウスを選択します。 Amazon Aurora はデータウェアハウスに複製する必要があるため、リソースポリシーを追加し、Aurora データベースを Amazon Redshift データウェアハウスの承認された統合ソースとして追加する必要があります。 この問題は、Amazon Redshift コンソールで手動で更新するか、Amazon RDS に修正を任せることで解決できます。チェックボックスにチェックを入れます。 次のページでは、Amazon RDS が実行する変更が表示されます。 続行 を選択します。 次のページでは、タグと暗号化を設定できます。デフォルトでは、ゼロ ETL 統合は AWS Key Management Service (AWS KMS) を使用してデータを暗号化します。独自のキーを使用することもできます。 次に、すべての設定を確認し、 ゼロ ETL 統合の作成 を選択して統合を作成する必要があります。 数分後に、ゼロ ETL 統合が正常に作成されました。次に、Amazon Redshift に切り替えると、 ゼロ ETL 統合 ページに、最近作成したゼロ ETL 統合があることがわかります。 統合には、まだ Amazon Redshift 内にターゲットデータベースがないため、ターゲットデータベースを作成する必要があります。 これで統合設定は完了です。このページでは、統合ステータスがアクティブで、複製されたテーブルが 1 つあることがわかります。 テストのために、Amazon Aurora データベースに新しいテーブルを作成し、このテーブルにレコードを挿入します。 その後、Amazon Redshift 内部の Redshift クエリエディタ v2 に切り替えました。ここで、統合の一環として作成したデータベースに接続できます。簡単なクエリを実行すると、データが Amazon Redshift 内ですでに利用可能であることがわかります。 このゼロ ETL 統合は、2 つの理由で非常に便利だと思いました。まず、複数のデータベースクラスターのすべてのデータを統合し、集約して分析できました。次に、トランザクションデータが Amazon Aurora MySQL に書き込まれてから数秒以内に、このゼロ ETL 統合により、Amazon Redshift でシームレスにデータを使用できるようになりました。 留意点 可用性 – Amazon Redshift との Amazon Aurora ゼロ ETL 統合は、米国東部 (オハイオ)、米国東部 (バージニア北部)、米国西部 (オレゴン)、アジアパシフィック (シンガポール)、アジアパシフィック (シドニー)、アジアパシフィック (東京)、欧州 (フランクフルト)、欧州 (アイルランド)、欧州 (ストックホルム) でご利用いただけます。 サポートされているデータベースエンジン – Amazon Redshift との Amazon Aurora ゼロ ETL 統合は現在、Amazon Aurora の MySQL 互換エディションをサポートしています。Amazon Aurora PostgreSQL 互換エディションのサポートは現在進行中です。 価格 –  Amazon Redshift との Amazon Aurora ゼロ ETL 統合は追加料金なしで提供されます。ゼロ ETL 統合の一環として作成された変更データの作成と処理に使用された既存の Amazon Aurora および Amazon Redshift リソースに対してお支払いいただきます。 私たちは、お客様が分析用のデータを準備するのではなく、データから価値を創出することに集中していただけるよう、また一歩前進しています。開始方法の詳細については、 Amazon Redshift との Amazon Aurora MySQL ゼロ ETL 統合 ページをご覧ください。 統合おめでとうございます! —  Donnie 原文は こちら です。
Amazon Data Lifecycle Manager は、 AWS Systems Manager ドキュメントに埋め込まれたスナップショット前のスクリプトとスナップショット後のスクリプトの使用をサポートするようになりました。これらのスクリプトを使用して、 Data Lifecycle Manager によって作成された Amazon Elastic Block Store (Amazon EBS) スナップショットにアプリケーション整合性があることを確認できます。スクリプトは、I/O 操作の一時停止と再開、バッファリングされたデータの EBS ボリュームへのフラッシュなどを行えます。このリリースの一環として、セルフマネージドリレーショナルデータベースと Windows Volume Shadow Copy Service (VSS) でこの機能の使用方法を示す詳細なブログ記事も公開します。 Data Lifecycle Manager (DLM) のまとめ 簡単にまとめると、 Data Lifecycle Manager は、Amazon EBS ボリュームスナップショットの作成、保持、削除を自動化するのに役立ちます。EC2 インスタンスを AWS Systems Manager にオンボーディングする、DLM 用の IAM ロールをセットアップする、SSM ドキュメントにタグを付けるなどの前提条件となるステップを完了したら、ライフサイクルポリシーを作成し、該当する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを (タグで) 示し、保持モデルを設定して、残りは DLM に任せるだけです。ポリシーでは、スナップショットをいつ実行するか、何をバックアップするか、どれだけの期間スナップショットを保持するかを指定します。DLM の詳細な説明については、2018 年のブログ記事「 新規 – Amazon EBS スナップショットのライフサイクル管理 」をご覧ください。 アプリケーション整合性があるスナップショット EBS スナップショットは Crash-consistent です。つまり、スナップショットが作成された時点の関連付けられた EBS ボリュームの状態を表しています。アクティブなリレーショナルデータベースの状態をキャプチャするためにスナップショットを使用しないアプリケーションを含め、多くの種類のアプリケーションにはこれで十分です。 アプリケーション整合性 があるスナップショットを作成するには、保留中のトランザクション (処理が完了するのを待っている、またはトランザクションが失敗するのいずれか) を考慮し、それ以降の書き込み操作を一時的に停止し、スナップショットを作成して、通常の操作を再開する必要があります。 そして、それが今日のリリースが行われる場所です。DLM は、アプリケーション整合性があるバックアップの準備をするようインスタンスに指示できるようになりました。スナップショット前のスクリプトは、保留中のトランザクションを管理したり、メモリ内のデータを永続ストレージにフラッシュしたり、ファイルシステムを フリーズ させたり、アプリケーションやデータベースを停止させたりすることができます。その後、スナップショット後のスクリプトによって、アプリケーションやデータベースを元の状態に戻したり、永続ストレージからメモリ内キャッシュをリロードしたり、ファイルシステムを解凍したりすることができます。 カスタムスクリプトの基本レベルのサポートに加えて、この機能を使用して VSS Backup スナップショットの作成を自動化することもできます。 前および後のスクリプト 新しいスクリプトはインスタンスの DLM ポリシーに適用されます。スナップショット前のスクリプトとスナップショット後のスクリプトを含む SSM ドキュメントを参照するポリシーを作成し、それが単一のインスタンスに適用されると仮定します。ポリシーをスケジュールに従って実行すると、次のようになります。 スナップショット後のスクリプトは SSM ドキュメントから起動されます。 スクリプト内の各コマンドが実行され、スクリプトレベルのステータス (成功または失敗) がキャプチャされます。ポリシーで有効になっている場合、DLM は失敗したスクリプトを再試行します。 マルチボリューム EBS スナップショットは、インスタンスにアタッチされた EBS ボリュームに対して開始され、ポリシーによってさらに制御されます。 スナップショット後のスクリプトは SSM ドキュメントから起動されます。 スクリプト内の各コマンドが実行され、スクリプトレベルのステータス (成功または失敗) がキャプチャされます。 ポリシーには、いずれかのスクリプトがタイムアウトまたは失敗したときに実行されるアクション (再試行、続行、またはスキップ) を制御できるオプションが含まれています。ステータスはログに記録され、 Amazon CloudWatch メトリクスが公開され、 Amazon EventBridge イベントが発行されます。また、ステータスは各スナップショットに自動的に割り当てられるタグにエンコードされます。 スナップショット前のスクリプトとスナップショット後のスクリプトは、コマンドドキュメントで許可されている任意のアクション ( シェルスクリプトの実行 、 PowerShell スクリプトの実行 など) を実行できます。アクションは、ポリシーで指定されたタイムアウト (10 秒から 120 秒の許容範囲) 内に完了する必要があります。 開始方法 堅牢なスクリプトペアを構築するには、アプリケーションまたはデータベースを詳細に理解する必要があります。すべてがうまくいったときに「ハッピーパス」を処理することに加えて、スクリプトはいくつかの障害シナリオに備えて計画を立てる必要があります。例えば、スナップショット前のスクリプトは、スナップショット後のスクリプトが期待どおりに動作しない場合に備えて、フェイルセーフとして機能するバックグラウンドタスクをフォークする必要があります。各スクリプトは、 こちら で詳しく説明するように、シェルレベルのステータスコードを返す必要があります。 スクリプトを作成してテストし、SSM ドキュメントとしてパッケージ化したら、EC2 コンソールの Data Lifecycle Manager ページを開き、 EBS スナップショットポリシー を選択して、[ 次のステップ ] をクリックします。 本稼働 の モード でタグ付けされたすべてのインスタンスをターゲットにし、デフォルトの IAM ロールを使用し (別のロールを使用する場合は、SSM へのアクセスを有効にする必要があります)、残りの値はそのままにして、次に進みます。 次のページで、[ 前および後のスクリプト ] まで下にスクロールして、セクションを展開します。[ 前および後のスクリプトを有効にする ] をクリックし、[ カスタム SSM ドキュメント ] を選択して、メニューから [自分の SSM ドキュメント] を選択します。また、タイムアウトと再試行のオプションも設定し、スクリプトの 1 つが失敗した場合は Crash-consistent バックアップをデフォルトに設定しています。[ ポリシーをレビュー ] をクリックし、最後の確認をして、次のページの [ ポリシーを作成 ] をクリックします。 自分のポリシーが作成され、すぐに有効になります。少なくとも 1 回実行したら、CloudWatch メトリクスを調べて、開始、完了、失敗の有無を確認できます。 その他の参考資料 先ほどお約束した詳細なブログ投稿の最初の記事は次のとおりです。 MySQL と PostgreSQL のアプリケーション整合性があるスナップショットの作成を自動化する VSS バックアップの作成を自動化する 今年後半に向けてさらに多くの作業を進めており、公開されたら上記のリストを更新します。 また、 ドキュメント を読んで詳細を確認することもできます。 DLM ビデオ この機会に、有用なビデオをいくつかご紹介します。 ポリシーステータスの変化をモニタリングする CloudWatch イベントでポリシーをモニタリングする CloudWatch メトリクスでポリシーアクションをモニタリングする Amazon Data Lifecycle Manager で Amazon EBS スナップショットと AMI を管理する 新しい機能がすでに利用でき、今日からすぐに使用を開始できます。 – Jeff ; 原文は こちら です。
この記事は Backup and restore your Amazon EKS cluster resources using Velero (記事公開日: 2021 年 12 月 1 日) を翻訳したものです。 2023 年 9 月 9 日更新: この記事はもともと 2021 年 12 月 1 日に掲載されました。最新の EKS バージョンと Velero Helm チャートの変更をサポートするため、このブログ記事のウォークスルー手順を更新しました。 世界中の企業がマイクロサービスをカプセル化するためにコンテナを採用しており、その多くはコンテナ化されたアプリケーションのデプロイ、スケーリング、管理を自動化するために Kubernetes を選択しています。これらのマイクロサービスの数が増えるにつれて、以下を行うための一元的なバックアップのメカニズムを導入することがますます重要になります。 物理的および論理的なエラーが発生した場合のアプリケーションの保護 Kubernetes クラスター間のマイグレーションの実行 本番環境クラスターの開発環境やテスト環境へのレプリケーション Velero は、Kubernetes クラスターのディザスタリカバリ、データ移行、データ保護を提供する人気のあるオープンソースツールです。Velero は、Kubernetes のクラスターリソースと永続ボリューム (Persistent Volume) を、オンデマンドまたはスケジュールに従って、サポートされた外部のストレージバックエンドにバックアップできます。 Amazon Elastic Kubernetes Service (Amazon EKS) は、高可用かつ安全な Kubernetes クラスターを提供し、パッチ適用、ノードのプロビジョニング、アップデートなどの主要タスクを自動化にするのに役立つマネージドソリューションです。AWS のお客様は、このソリューションを活用して、Kubernetes オブジェクトとアプリケーションを Amazon EKS からバックアップ、および Amazon EKS にリストアできます。これは、お客様は Velero を使用して、セルフホスト型の Kubernetes から Amazon EKS に移行できることも意味します。 このブログ記事では、Velero を使用して Amazon EKS クラスターのリソースをバックアップ、リストア、移行する方法に焦点を当て、組織のユースケースに最適なアプローチを決定するために Velero が提供するバックアップオプションを紹介します。 Velero の概要 このセクションでは、Velero と Amazon EKS の統合方法、このツールがアプリケーションのバックアップとリストアのために提供するカスタマイズ、およびバックアップとリストアのワークフローについて説明します。 Velero と Amazon EKS Amazon EKS のアプリケーションレベルのバックアップは、次の 2 つのコンポーネントが対象となります。 etcd キーバリューストアに保存された Kubernetes オブジェクトとコンフィギュレーション Persistent Volume に保存されたアプリケーションデータ Amazon EKS では、etcd キーバリューストアは AWS によって管理され、Kubernetes API サーバーを介してのみアクセスできます。Velero は Kubernetes API を利用して、キーバリューストアに保存されているデータを取得します。API 呼び出しでは、名前空間 (Namespace)、リソースタイプ、またはラベルによってリソースを簡単にフィルタリングできるため、このアプローチは etcd に直接アクセスするよりも柔軟性があります。例えば、ラベルでフィルタリングしてバックアップの範囲を特定のアプリケーションに制限したり、オブジェクトタイプでフィルタリングして現在の RBAC 戦略を保存したりできます。 また、Velero はクラスターの Persistent Volume のスナップショットを取得し、クラスターのオブジェクトと一緒にリストアできます。詳細は次のセクションで説明します。 バックアップとリストア操作は Kubernetes の カスタムリソース定義 (CRD) オブジェクトとして宣言されます。CRD はこれらの新しい CRD オブジェクトを処理するコントローラーによって管理され、バックアップ、リストア、およびすべての関連操作が実行されます。これらのバックアップとリストアの CRD オブジェクトを作成する際は、以下のカスタマイズを指定できます。 リソースのフィルタリング : Namespace、オブジェクトタイプ、ラベルでフィルタリングして、バックアップやリストアの範囲を制限します。リストア時に、Namespace とオブジェクトタイプを除外してフィルタリングできます。 バックアップタイプの選択 : オンデマンドバックアップを作成するか、定期的にバックアップを自動的に開始するスケジュールを設定します。 保持時間の設定 : バックアップを保持する期間を指定します。 フックの指定 : バックアップまたはリストア操作の前後にコンテナ内でカスタムコマンドを実行するためのプレフックとポストフックを設定します。 バックアップとリストアのワークフロー Velero は 2 つのコンポーネントで構成されます。 Velero サーバー : Amazon EKS クラスター内で実行される Pod Velero CLI : ローカルで実行されるコマンドラインクライアント Amazon EKS クラスターに対してバックアップを発行するたびに、Velero は以下の方法でクラスターリソースのバックアップを実行します。 Velero CLI が Kubernetes API サーバーにアクセスし、バックアップ CRD オブジェクトを作成します。 バックアップコントローラーが以下を実施します。 バックアップ CRD オブジェクトのスコープ、すなわちフィルターが設定されているかどうかをチェックします。 バックアップが必要なリソースについて API サーバーにクエリを実行します。 取得した Kubernetes オブジェクトを .tar ファイルに圧縮し、 Amazon S3 に保存します。 同様に、リストア操作を発行するときは以下のようになります。 Velero CLI は Kubernetes API サーバーにアクセスし、既存のバックアップからリストアするリストア CRD オブジェクトを作成します。 リストアコントローラーが以下を実施します。 リストア CRD オブジェクトを検証します。 Amazon S3 にアクセスしてバックアップファイルを取得します。 リストア操作を開始します。 Velero は、スコープ内の Persistent Volume のバックアップとリストアも実行します。 Amazon Elastic Block Store (Amazon EBS) を使用している場合、Velero はスコープ内の Persistent Volume の Amazon EBS スナップショットを作成します。 その他のボリュームタイプ (hostPath を除く) の場合は、Velero の Restic 統合を使用して、ボリュームの内容のファイルレベルのバックアップを作成します。本記事執筆時点では、Restic はベータ版であるため、本番環境グレードのバックアップには推奨されません。 次のセクションでは、Amazon EKS 上のアプリケーションと関連する EBS ボリュームをバックアップする方法を紹介します。 ウォークスルー 以下のセクションでは、Velero を使用して、あるクラスター内のアプリケーションをバックアップし、そのアプリケーションを別のクラスター内にリストアする方法を説明します。ここでは、人気の高いオープンソースの Ghost パブリッシングプラットフォームを使用して、アプリケーション定義だけでなく、Persistent Volume Claim (PVC) を使用して EBS ボリュームに保存されているステートもバックアップおよびリストアする方法を示します。 前提条件 次のステップに進むためには、以下の前提条件が必要です。 eksctl v0.155.0 以降 : Installing or upgrading eksctl を参照してください。 同じ AWS アカウント内の 2 つの EKS クラスター : Creating an EKS Cluster を参照してください (このブログ記事は、Kubernetes バージョン 1.27 を実行する EKS でテストされました)。 この記事では、この 2 つのクラスターを Primary クラスターと Recovery クラスターと呼びます。 各クラスターは IAM OIDC プロバイダーを設定する必要があります。 Create an IAM OIDC provider for your cluster を参照してください。これは、 IAM Roles for Service Accounts (IRSA)を使用して Velero デプロイメントに必要な AWS アクセス許可を付与するため必要です。 各クラスターには Amazon EBS CSI ドライバー がインストールされている必要があります。 AWS CLI バージョン 2 : Installing, updating, and uninstalling the AWS CLI version 2 を参照してください。 Helm v3 : Installing Helm を参照してください。 kubectl : Installing kubectl を参照してください。 このチュートリアルで使用する 2 つの EKS クラスターは同じアカウントにありますが、これは Velero を使用するためのハード要件ではありません。このブログ記事をガイドラインとして使用し、必要に応じて IAM と S3 バケットのアクセス許可を調整することができます。 以下のセクションのコマンドは Bash を前提として書かれています。 Velero のインストール EKS のベストプラクティスを使用して Velero をインストールするには、いくつかのステップが必要です。まず、バックアップを保存するための S3 バケットを作成します。次に、 IAM Roles for Service Accounts (IRSA) を使用して、バックアップとリストア操作のために必要な AWS アクセス許可を Velero に付与します。最後に、このツールの操作方法を簡素化する Velero CLI をインストールします。 バックアップを保存するための S3 バケットの作成 Velero は、AWS で実行する場合、EKS のバックアップを保存するために S3 を使用します。以下のコマンドを実行して、Velero 用の S3 バケットを作成します。 <company-fqdn>-eks-velero-backups のような一意のバケット名を使用してください。 <BUCKETNAME> と <REGION> は自分の値に置き換えてください。 BUCKET=<BUCKETNAME> REGION=<REGION> aws s3 mb s3://$BUCKET --region $REGION Amazon S3 は、デフォルトで地理的に離れた複数の アベイラビリティーゾーン にデータを保存しますが、コンプライアンス要件により、さらに離れた場所にデータを保存することが求められる場合があります。 クロスリージョンレプリケーション を使用することで、これらの要件を満たすために、離れた AWS リージョン間でデータをレプリケーションすることができます。 IAM ポリシー Velero はスナップショットを実行し、バックアップを S3 バケットに保存するために、EC2 と S3 のリソースに対して多くの API 呼び出しを実行します。以下の IAM ポリシーは、Velero に必要なアクセス許可を付与します。 cat > velero_policy.json <<EOF { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeVolumes", "ec2:DescribeSnapshots", "ec2:CreateTags", "ec2:CreateVolume", "ec2:CreateSnapshot", "ec2:DeleteSnapshot" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:DeleteObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:ListMultipartUploadParts" ], "Resource": [ "arn:aws:s3:::${BUCKET}/*" ] }, { "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::${BUCKET}" ] } ] } EOF aws iam create-policy \ --policy-name VeleroAccessPolicy \ --policy-document file://velero_policy.json Velero の Service Account の作成 EKS クラスター上で実行されるアプリケーションに AWS ポリシーを提供するためのベストプラクティスは、 IAM Roles for Service Accounts (IRSA) を使用することです。eksctl は、必要な IAM ロールを作成し、信頼関係のスコープを velero-server Service Account に設定する簡単な方法を提供します。 <CLUSTERNAME> は Primary と Recovery の EKS クラスターの名前に置き換えてください。 PRIMARY_CLUSTER=<CLUSTERNAME> RECOVERY_CLUSTER=<CLUSTERNAME> ACCOUNT=$(aws sts get-caller-identity --query Account --output text) eksctl create iamserviceaccount \ --cluster=$PRIMARY_CLUSTER \ --name=velero-server \ --namespace=velero \ --role-name=eks-velero-backup \ --role-only \ --attach-policy-arn=arn:aws:iam::$ACCOUNT:policy/VeleroAccessPolicy \ --approve eksctl create iamserviceaccount \ --cluster=$RECOVERY_CLUSTER \ --name=velero-server \ --namespace=velero \ --role-name=eks-velero-recovery \ --role-only \ --attach-policy-arn=arn:aws:iam::$ACCOUNT:policy/VeleroAccessPolicy \ --approve --namespace=velero フラグによって、 velero Namespace で実行されているアプリケーションだけが、前のステップで作成した IAM ポリシーにアクセスできるようになります。 両方の EKS クラスターへの Velero のインストール 以下の手順には、Helm チャートを使用して Velero をインストールするために必要な手順が含まれています。この手順では、Velero バージョン v1.11.1 をインストールするチャートバージョン 5.0.2 を指定していることに注意してください。新しい Velero バージョンをインストールしたい場合は、 互換性マトリックス を使用して Velero AWS プラグインのバージョンを正しい Velero バージョンに合わせるなど、以下の values.yaml ファイルを必ず調整してください。 helm repo add vmware-tanzu https://vmware-tanzu.github.io/helm-charts cat > values.yaml <<EOF configuration: backupStorageLocation: - bucket: $BUCKET provider: aws volumeSnapshotLocation: - config: region: $REGION provider: aws initContainers: - name: velero-plugin-for-aws image: velero/velero-plugin-for-aws:v1.7.1 volumeMounts: - mountPath: /target name: plugins credentials: useSecret: false serviceAccount: server: annotations: eks.amazonaws.com/role-arn: "arn:aws:iam::${ACCOUNT}:role/eks-velero-backup" EOF cat > values_recovery.yaml <<EOF configuration: backupStorageLocation: - bucket: $BUCKET provider: aws volumeSnapshotLocation: - config: region: $REGION provider: aws initContainers: - name: velero-plugin-for-aws image: velero/velero-plugin-for-aws:v1.7.1 volumeMounts: - mountPath: /target name: plugins credentials: useSecret: false serviceAccount: server: annotations: eks.amazonaws.com/role-arn: "arn:aws:iam::${ACCOUNT}:role/eks-velero-recovery" EOF Velero サーバーを 2 回、 Primary クラスターと Recovery クラスターにインストールする必要があります。 kubectl config ( kubectl チートシート ) または kubectx を使用して、両方のクラスターのコンテキストを表示し、コンテキストを簡単に切り替えることができます。 kubectl config の管理を簡単にするために、エイリアスを使用してクラスターを kubeconfig に追加します。 PRIMARY_CONTEXT=primary RECOVERY_CONTEXT=recovery aws eks --region $REGION update-kubeconfig --name $PRIMARY_CLUSTER --alias $PRIMARY_CONTEXT aws eks --region $REGION update-kubeconfig --name $RECOVERY_CLUSTER --alias $RECOVERY_CONTEXT 次のコマンドを使用して、これらの新しいコンテキストがあることを確認できます。 kubectl config get-contexts 「*」が、どのコンテキストにいるかを示しています。 コンテキストを Primary クラスターに変更し、Velero をインストールしましょう。 kubectl config use-context $PRIMARY_CONTEXT helm install velero vmware-tanzu/velero --version 5.0.2 \ --create-namespace \ --namespace velero \ -f values.yaml 次に、コンテキストを Recovery クラスターに変更し、Velero をインストールしましょう。 kubectl config use-context $RECOVERY_CONTEXT helm install velero vmware-tanzu/velero --version 5.0.2 \ --create-namespace \ --namespace velero \ -f values_recovery.yaml 各コンテキストで以下のコマンドを実行することで、Velero サーバーが正常にインストールされたことを確認できます。 kubectl get pods -n velero Velero CLI のインストール Velero はコマンドを CRD としてを送信することで動作します。クラスターのバックアップを作成するには、クラスターにバックアップ CRD を送信します。これを手作業で作成するのは難しい場合があるため、Velero チームはバックアップとリストアを簡単に実行できる CLI を作成しました。ここでは、Velero CLI を使用して Primary クラスターのバックアップを作成し、 Recovery クラスターにリストアします。 インストール手順はオペレーティングシステムによって異なります。 こちら の手順に従って Velero をインストールしてください。 サンプルアプリケーションのバックアップとリストア Velero をインストールした状態で、 Primary クラスターにアプリケーションをインストールしてバックアップし、 Recovery クラスターにリストアを行います。お客様は、以下の手順に従って、自分の Amazon EKS クラスター内の自分のアプリケーションをバックアップおよびリストアすることもできます。 Ghost アプリケーションのインストール (および記事の作成) Ghost をサンプルアプリケーションとして Primary クラスターにバックアップし、 Recovery クラスターにリストアします。一般的にデプロイされ、十分にテストされている Bitnami Helm チャート を使用します。このチャートは、ブログアプリケーションのための永続的なデータストアとして機能する Bitnami MySQL チャート に依存しています。MySQL のデータは EBS ボリュームに保存され、バックアップ実行の一環として Velero によってスナップショットが作成されます。 それでは、 Primary クラスターにコンテキストに切り替え、Ghost をインストールしましょう (Ghost をインストールするときに表示される通知 ERROR: You did not provide an external host は無視してください。これは次のコマンドで解決されます)。 kubectl config use-context $PRIMARY_CONTEXT helm install ghost oci://registry-1.docker.io/bitnamicharts/ghost \ --create-namespace \ --namespace ghost export APP_HOST=$(kubectl get svc --namespace ghost ghost --template "{{ range (index .status.loadBalancer.ingress 0) }}{{ . }}{{ end }}") export GHOST_PASSWORD=$(kubectl get secret --namespace "ghost" ghost -o jsonpath="{.data.ghost-password}" | base64 -d) export MYSQL_ROOT_PASSWORD=$(kubectl get secret --namespace "ghost" ghost-mysql -o jsonpath="{.data.mysql-root-password}" | base64 -d) export MYSQL_PASSWORD=$(kubectl get secret --namespace "ghost" ghost-mysql -o jsonpath="{.data.mysql-password}" | base64 -d) helm upgrade ghost oci://registry-1.docker.io/bitnamicharts/ghost \ --namespace ghost \ --set service.type=LoadBalancer \ --set ghostHost=$APP_HOST \ --set ghostPassword=$GHOST_PASSWORD \ --set mysql.auth.rootPassword=$MYSQL_ROOT_PASSWORD \ --set mysql.auth.password=$MYSQL_PASSWORD 次のコマンドを実行することで、インストールが成功したことを確認できます。 kubectl get pods -n ghost Persistent Volume のバックアップとリストアをデモするブログ記事の作成 Helm チャートのインストールが完了すると、コンソールにチャートの README が表示されます。 これには次のものが含まれます。 ブログ URL 管理 URL デフォルトの管理者ユーザー名 kubectl を使用してパスワードを取得する手順 オプションで、(上に表示されている管理 URL を使用して) Ghost 管理コンソールにサインインし、バックアップとリストアのプロセスに含めるサンプルのブログ記事を作成することができます。これにより、バックアップにはアプリケーションのデプロイメント構成だけではなく、すべての記事を含むブログデータベースの状態も含まれることが確認できます。 記事を作成するには、まず左側のナビゲーションペインで Posts を選択します。 次に、ページの右上にある New post を選択します。 記事のタイトルを追加し、内容を書くことができます。サンプルのブログ記事を保存する準備ができたら、ページの右上にある Publish ドロップダウンメニュー項目を選択し、ドロップダウンメニューから Publish ボタンを選択します。 バックアップの作成 Primary クラスターのバックアップを作成しましょう。以下のコマンドを実行する前に、kubectl コンテキストが Primary クラスターに設定されていることを確認してください。 velero backup create ghost-backup -o フラグを使用することで、Velero のバックアップ CRD がどのように見えるかを確認できます。これは、実際にバックアップ作成を Velero サーバーに送信せずに、バックアップ CRD の YAML を出力します。 velero backup create test -o yaml バックアップ CRD では、 includedNamespaces 配列にワイルドカードが含まれているため、すべての Namespace をバックアップしていることがわかります。クラスター全体をバックアップしている場合でも、セレクターを使用してクラスターの個々のコンポーネントを選択できます。これにより、例えば単一のアプリケーションを含む単一の Namespace をバックアップできます。 バックアップが成功したことの検証 バックアップのステータスを確認し、バックアップが正常に完了したことを確認しましょう。 velero backup describe ghost-backup コマンドの出力で、 Phase: フィールドを探します。現在の Phase が InProgress の場合、しばらく待ってから Phase: Completed が表示されるまで再試行してください。開始時刻や完了時刻、バックアップされたアイテムの数などの情報を含む、バックアップの追加の詳細を確認できます。 以前に作成した Amazon S3バケット内に、Velero が作成したバックアップファイルを確認できます。 aws s3 ls $BUCKET/backups/ghost-backup/ アプリケーションの Recovery クラスターへのリストア kubectl コンテキストを Recovery クラスターに切り替えます。 kubectl config use-context $RECOVERY_CONTEXT 次のコマンドを使用して、Ghost アプリケーションのみを Recovery クラスターにリストアします。 velero restore create ghost-restore \ --from-backup ghost-backup \ --include-namespaces ghost リストアが成功したことの検証 リストアのステータスを確認し、リストアが正常に完了したことを確認しましょう。 velero restore describe ghost-restore 出力の Phase: Completed を探してください。 Phase: InProgress と表示された場合は、しばらく待ってからコマンドを再実行してください。次に、 Recovery クラスター内の Ghost ブログの LoadBalancer Service の URL を取得します。 kubectl -n ghost get svc ghost EXTERNAL-IP の URL にアクセスして、ブログがリストアされたことを確認します。Ghost ブログと、前のステップで作成したサンプルのブログ記事が表示されるはずです。 おめでとうございます! Primary クラスターのバックアップと、 Recovery クラスターへのアプリケーションのリストアに成功しました。 本番環境のバックアップ/リストア/DR 操作では、サービスが期待通りに動作していることを確認した後、本番の DNSレコードが Recovery クラスターを指すように移動する必要がある点に注意してください。 クリーンアップ 今後の課金が発生しないようにするために、リソースを削除してください。 eksctl を使ってクラスターを作成した場合は、 eksctl delete cluster <clustername> コマンドを使用してクラスターを削除できます。 バックアップを保存するために使用した S3 バケットと、Velero が使用している IAM ロールも削除する必要があります。 aws s3 rb s3://$BUCKET --force aws iam delete-policy --policy-arn arn:aws:iam::$ACCOUNT:policy/VeleroAccessPolicy まとめ ディザスタリカバリとマイグレーション戦略にはいくつかの種類があります。このブログ記事では、Velero が障害や災害イベントからの迅速なリカバリと、Amazon EKS のアプリケーションとクラスターリソースのシームレスな移行をどのように保証するかを紹介しました。このツールが提供するオプションをハイライトし、ステートフルアプリケーションをバックアップして新しいクラスターにリストアするプロセスを紹介しました。同様に、お客様は自分のアプリケーションと Kubernetes リソースを他の Amazon EKS クラスターにマイグレーション、レプリケーション、または以前のアプリケーション状態をリストアすることもできます。 このアプローチにより、単に CI/CD パイプラインをリダイレクトして新しい EKS クラスターにデプロイするのとは対照的に、ディザスタリカバリやマイグレーションイベントのためのオペレーションを一元化できます。これは、Kubernetes においてアプリケーションのデプロイやアップデートに使用される CI/CD パイプラインは、このような状況では必要のないアクションを実行する可能性があるためです。さらに、データの永続化に対処するためのアプローチを別途考える必要もあります。代わりに、このようなイベントのための特定の CI/CD パイプラインを作成することができます。 セルフマネージド型の Kubernetes クラスターの場合、お客様は Amazon EKS への移行にこのオープンソースツールを使用することもできます。このユースケースを深く掘り下げるには、 このブログ記事 で説明されているベストプラクティスに従うことをお勧めします。 翻訳はプロフェッショナルサービスの杉田が担当しました。原文は こちら です。
2023年も終わりを迎え、クリスマスまであと 50 日、AWS re:Invent まであと 21 日! ラスベガスにいるなら、私に挨拶しに来てください。私はほとんどの時間、Serverlesspresso のブースにいます。 10月30日週のリリース 10月30日週のリリースの中から、私の目に留まったリリースをいくつかご紹介します。 Amazon EC2 – Amazon EC2 は ML 向けキャパシティブロックを発表しました。これは、短時間の ML ワークロード用に GPU コンピュートキャパシティを予約できるようになったことを意味します。このリリースについての詳細は、 特集ページ と 発表ブログ記事 をご覧ください。 Finch – Finch の一般公開を開始しました。Finch は、macOS (Intel または Apple Silicon を使用) でローカルコンテナ開発を行うためのオープンソースツールです。macOS 上で Linux コンテナを構築、実行、公開するためのコマンドライン開発者ツールを提供します。Finch についての詳細は、 Phil Estes が書いたこのブログ記事 、または Finch のウェブサイトをご覧ください。 AWS X-Ray – AWS X-Ray が分散トレース用の W3C 形式のトレース ID をサポートしました 。AWS X-Ray は、OpenTelemetry または W3C Trace Context 仕様に準拠するその他のフレームワークを通して生成されたトレース ID をサポートします。 Amazon Translate – Amazon Translate は、翻訳出力の長さを短縮するための簡潔性のカスタマイズを導入しています 。これは、キャプションサイズの制限を満たすために短い翻訳が必要なリアルタイム翻訳で有効にできる新機能です。この翻訳は文字通りのものではありませんが、根本的なメッセージは保たれます。 AWS IAM – IAM は 最後にアクセスしたアクション を 60 のサービスに増やしました 。この機能は、ロールのパーミッションを微調整し、未使用のパーミッションを特定し、ロールが必要とする最小限のパーミッションを付与する場合に非常に便利です。 AWS IAM Access Analyzer – IAM Access Analyzer ポリシージェネレータは、AWS CloudTrail のアクセスアクティビティに基づいてきめ細かいポリシーを作成するために、 200 以上の AWS サービスを識別するためのサポートを拡張しました。 AWS のお知らせの完全なリストについては、 「AWS の最新情報」ページをご覧ください。 その他の AWS ニュース 見逃したかもしれない他のニュースやブログ記事: AWS Compute Blog – Daniel Wirjo と Justin Plock が、 様々な AWS サーバーレスサービスを使用して AWS 上で Webhook を送受信する方法について非常に興味深い記事を書いています。アプリケーションでウェブフックを使っているなら、これは良い読み物です。これは、これらのソリューションを構築する方法を示すだけでなく、構築する際にどのような配慮が必要かも示しています。 AWS Storage Blog – Bimal Gajjar と Andrew Peace が、 Amazon S3 Event Notifications でイベントの順序と重複イベントを処理する方法について、とても役に立つブログ記事を書いてくれました。これは多くの顧客に共通する課題です。 Amazon Science Blog – David Fan は、 映像表現のためのより良い基礎モデルを構築する方法についての記事を書きました。この記事は、Prime Video がこのトピックに関する会議で発表した論文に基づいています。 AWS の公式ポッドキャスト  – 最新の AWS ニュースや興味深いユースケースの詳細情報を毎週お届けします。AWS の公式ポッドキャストは、数か国語で配信されています。 フランス語 、 ドイツ語 、 イタリア語 、および スペイン語 のポッドキャストもぜひご利用ください。 AWS オープンソースに関するニュースと最新情報  – 私の同僚である Ricardo  が厳選した情報をお届けする ニュースレター では、最新のオープンソースプロジェクト、記事、イベントなどが取り上げられています。 近日開催される AWS イベント カレンダーを確認して、これらの AWS イベントにサインアップしてください。 AWS Community Days  – お住まいの地域で AWS ユーザーグループのリーダーが主催するコミュニティ主導のカンファレンスにぜひご参加ください: エクアドル (11 月 7 日)、 メキシコ (11 月 11 日)、 モンテビデオ (11 月 14 日)、 中央アジア (カザフスタン、ウズベキスタン、キルギス、モンゴル: 11 月 17~18 日)、 グアテマラ (11 月 18 日)。 AWS re:Invent (11 月 27 日~12 月 1 日) – AWS の最新情報を聞き、エキスパートから学び、グローバルクラウドコミュニティとつながるために ぜひご参加ください 。 セッションカタログ と 参加者ガイド を確認し、 生成系人工知能 (AI) のハイライト をご覧ください。 11月6日週はここまでです。11月13日週の Weekly Roundup もお楽しみに! –  Marcia この記事は、 Weekly Roundup  シリーズの一部です。毎週、AWS からの興味深いニュースや発表を簡単にまとめてお知らせします! 原文は こちら です。
2024 年半以降、新しくリリースされた Amazon EC2 インスタンスタイプは EC2 インスタンスメタデータサービス (IMDSv2) のバージョン 2 のみを使用します。また、IMDSv2 を AWS マネジメントコンソールのクイックスタートやその他の起動経路のデフォルト選択肢にするために一連のステップが実施されています。 背景 このサービスには、EC2 インスタンス内から固定 IP アドレス (IPv4 の 169.254.169.254 または Nitro インスタンス上の IPv6 の fd00:ec2::254 ) でアクセスできます。これにより、ユーザー (またはインスタンス上で実行しているコード) は、インスタンスの起動に使用された AMI の ID、ブロックデバイスマッピング、インスタンスにアタッチされたロールの一時的な IAM 認証情報、ネットワークインターフェイス情報、ユーザーデータを始めとする豊富な静的および動的データにアクセスできます。詳細については、「 インスタンスメタデータのカテゴリ 」を参照してください。 このブログ で詳細に説明されているように、v1 サービスはリクエスト/レスポンスのアクセス方式を使用し、v2 サービスはセッション指向の方法を使用します。どちらのサービスも完全に安全ですが、v2 では IMDS へのアクセスを試みる際に悪用される可能性のある 4 種類の脆弱性に対する追加の保護レイヤーが提供されます。 多くのアプリケーションやインスタンスが既に IMDSv2 を使用して、多くののメリットを活用していますが、完全なメリットは、AWS アカウントレベルで IMDSv1 が無効化されている場合にのみ利用できます。 移行計画 IMDSv2 を新しい AWS インフラストラクチャのデフォルトの選択肢にするために実施された重要なステップと今後予定されているステップを以下に示します (2023 年と 2024 年の日付に若干のずれがあります)。 2019 年 11 月 – IMDSv2 がローンチ され、これを使用して徹底的な防御を追加する方法が紹介されました。 2020 年 2 月 – AWS Marketplace の出品者と AWS パートナーから新たに公開されたすべての製品が IMDSv2 をサポートしていることの検証が開始されました。 2023 年 3 月 – すべてのローンチにおいてデフォルトで IMDSv2 を使用する Amazon Linux 2023 がローンチされました。 2023 年 9 月 – IMDSv2 のメリットを最大限に活用し、AWS インフラストラクチャ全体で IMDSv1 を無効にする方法 を紹介するブログ記事が公開されました。 2023 年 11 月 – 本日より、すべてのコンソールのクイックスタートローンチで IMDSv2 のみが使用されるようになります (Amazon とパートナークイックスタート AMI はすべてこれをサポートします)。次の図は、これをインスタンスの起動時に EC2 コンソールの 高度な詳細 で指定する方法を示しています。 2024 年 2 月 – アカウントレベルで IMDSv1 の使用をデフォルトとして制御できる新しい API 機能が導入される予定です。現在、IMDSv1 の使用は、IAM ポリシーでの制御 (既存のアクセス許可の取り消しと制限) に加えて、アカウント、組織単位 (OU)、または組織全体にグローバルに適用される SCP として制御することが可能です。IAM ポリシーの例については、「 インスタンスメタデータの使用 」を参照してください。 2024 年半ば – 新しくリリースされた Amazon EC2 インスタンスタイプは、デフォルトで IMDSv2 のみを使用します。移行をサポートするために、これまで同様に、インスタンス上での起動時または起動後に再起動や停止/開始を必要とせずに IMDSv1 を有効化できます。 対処 完全なメリットを取得 する方法を解説したブログ記事を参照して IMDSv1 から IMDSv2 への移行を開始できます。 IMDSv2 への移行に役立つツール 、および同じページで紹介されている推奨パスについても理解しておいてください。このページでは、ツールの推奨に加えて、IMDSv1 の使用を無効にする IAM ポリシーの設定方法、および MetadataNoToken CloudWatchメトリクスを使用して残りの使用量を検出する方法も示されています。 もう 1 つの便利なリソースが AWS re:Post にあります (「 Systems Manager オートメーションを使用して、Amazon EC2 インスタンスからインスタンスメタデータにアクセスするために IMDSv2 のみを使用するように強制するにはどうすればよいですか? 」)。 この移行がお客様とお客様の顧客にとって可能な限りスムーズなものとなることを望んでいます。追加のサポートが必要な場合は、 AWS サポート にお問い合わせください。 – Jeff ; 原文は こちら です。
機械学習 (ML) における最近の進歩は、あらゆる規模と業界にまたがる組織が新しい製品を考案し、ビジネスを変革する機会を生み出しました。しかし、これらの ML モデルのトレーニング、微調整、実験、および推論を行うための GPU 容量に対する需要の拡大に業界全体の供給が追いつかなくなっているため、GPU は希少なリソースになっています。取り組んでいる研究開発フェーズに応じて容量のニーズが変動するお客様にとって、GPU 容量へのアクセスは障害になります。 10月31日、AWS は Amazon Elastic Compute Cloud (Amazon EC2) の ML 向けキャパシティブロック を発表しました。これは、ML および 生成系 AI モデルをトレーニングしてデプロイするための GPU インスタンスに簡単にアクセスできるようにすることで、ML の民主化をさらに進める Amazon EC2 の新しい使用モデルです。EC2 キャパシティブロックを使用することで、高パフォーマンス ML ワークロード向けに設計された EC2 UltraClusters に配置されている何百もの GPU を予約することができます。これには、ペタバイト規模のノンブロッキングネットワーク内にある Elastic Fabric Adapter (EFA) ネットワーキングが使用され、Amazon EC2 で利用できる最高のネットワークパフォーマンスを提供します。 これは GPU インスタンスをスケジュールするための新しい革新的な方法で、後日に必要となる数のインスタンスを、必要な時間分だけ予約することができます。現在、EC2 キャパシティブロックは AWS 米国東部 (オハイオ) リージョン内にある NVIDIA H100 Tensor Core GPU 搭載の Amazon EC2 P5 インスタンス でご利用いただけます。EC2 キャパシティブロックでは、数回クリックするだけで GPU インスタンスを予約し、自信を持って ML 開発を計画できます。EC2 キャパシティブロックは、ML トレーニングに対して EC2 で最高のパフォーマンスを提供する EC2 P5 インスタンスへの予定どおりのアクセスを、誰もが簡単に実現できるようにします。 EC2 キャパシティブロックの予約は、ホテルの部屋を予約するしくみに似ています。ホテルの予約では、部屋を予約したい日付と期間、および希望するベッドのサイズ (クイーンサイズのベッドやキングサイズのベッドなど) を指定します。これと同様に、EC2 キャパシティブロック予約でも、 GPU インスタンスが必要になる日付と期間、および予約のサイズ (インスタンスの数) を選択します。予約の開始日になると、予約した EC2 キャパシティブロックにアクセスして P5 インスタンスを起動できるようになります。EC2 キャパシティブロックの期間終了時に実行中のインスタンスは、すべて終了されます。 EC2 キャパシティブロックは、ML モデルをトレーニングもしくは微調整する、実験を行う、または ML アプリケーションに対する需要の将来的な急増に備えるために、容量を保証しておく必要がある場合に使用できます。一方で、ビジネスクリティカルなアプリケーション、規制要件、またはディザスタリカバリなど、コンピューティング能力の保証が必要となるその他すべてのワークロードタイプには、引き続き オンデマンドキャパシティ予約 を使用することができます。 ML 向けの Amazon EC2 キャパシティブロックの使用を開始する キャパシティブロックを予約するには、米国東部 (オハイオ) リージョンの Amazon EC2 コンソール で、[ キャパシティーの予約 ] を選択します。2 つのキャパシティ予約オプションが表示されます。[ キャパシティブロックを購入 ] を選択してから、[ ご利用開始にあたって ] を選択して、EC2 キャパシティブロックの検索を開始します。 合計キャパシティを選択し、EC2 キャパシティブロックが必要になる期間を指定します。EC2 キャパシティブロックは、1、2、4、8、16、32、または 64 個の p5.48xlarge インスタンスのサイズで予約できます。EC2 キャパシティブロックを予約できる合計日数は 1~14 日で、1 日単位になっています。EC2 キャパシティブロックは最大 8 週間前に購入できます。 EC2 キャパシティブロックの料金は動的で、EC2 キャパシティブロックの購入時における利用可能な総供給量と需要に応じて変動します。仕様内のサイズ、期間、または日付範囲を調整することで、他の EC2 キャパシティブロックオプションを検索できます。[ キャパシティブロックを検索 ] を選択すると、AWS が、ユーザー指定の日付範囲内で仕様を満たす、利用可能な最低料金のオプションを返します。この時点で、EC2 キャパシティブロックの料金が表示されます。 EC2 キャパシティブロックの詳細、タグ、および合計料金情報を確認したら、[ 購入 ] を選択します。EC2 キャパシティブロックの合計料金は前払いで請求され、購入後に料金が変更されることはありません。支払いは、EC2 キャパシティブロックを購入してから 12 時間以内にお客様のアカウントに請求されます。 すべての EC2 キャパシティブロック予約は、協定世界時 (UTC) の午前 11 時 30 分に開始されます。購入後に EC2 キャパシティブロックを変更またはキャンセルすることはできません。 EC2 キャパシティブロックは、 AWS コマンドラインインターフェイス (AWS CLI) と AWS SDK を使用して購入することもできます。 describe-capacity-block-offerings API を使用してクラスター要件を指定し、購入可能な EC2 キャパシティブロックを見つけます。 $ aws ec2 describe-capacity-block-offerings \           --instance-type p5.48xlarge \           --instance-count 4 \           --start-date-range 2023-10-30T00:00:00Z \           --end-date-range 2023-11-01T00:00:00Z \           –-capacity-duration 48 上記コマンドからの CapacityBlockOfferingId とキャパシティ情報を使用して利用可能な EC2 キャパシティブロックを見つけたら、 purchase-capacity-block-reservation API を使用してキャパシティブロックを購入できます。 $ aws ec2 purchase-capacity-block-reservation \           --capacity-block-offering-id cbr-0123456789abcdefg \           –-instance-platform Linux/UNIX 新しい EC2 キャパシティブロック API の詳細については、 Amazon EC2 API ドキュメント を参照してください。 これで、EC2 キャパシティブロックが正常にスケジュールされました。スケジュールされた開始日になると、EC2 キャパシティブロックがアクティブになります。開始日にアクティブな EC2 キャパシティブロックを使用するには、その EC2 キャパシティブロックのキャパシティ予約 ID を選択します。[ キャパシティ予約の詳細 ] セクションにはリザーブドインスタンスキャパシティの内訳が表示されており、キャパシティが現在どのように使用されているかがわかります。 アクティブな EC2 キャパシティブロックにインスタンスを起動するには、[ インスタンスを起動 ] を選択し、EC2 インスタンスを起動して ML ワークロードを実行するための通常のプロセスに従います。 [ 高度な詳細 ] で、[ キャパシティブロック ] を購入オプションとして選択し、ターゲットにしようとしている EC2 キャパシティブロックのキャパシティ予約 ID を選択します。 EC2 キャパシティブロックの終了時間が近づくと、Amazon EC2 が Amazon EventBridge を通じてイベントを送信して予約が間もなく終了することを通知するので、ワークロードのチェックポイントを設定することができます。EC2 キャパシティブロックで実行中のインスタンスは、予約が終了する 30 分前にシャットダウン中状態になります。EC2 キャパシティブロックに対して請求された金額に、この 30 分間は含まれていません。EC2 キャパシティブロックの有効期間終了時に実行中のインスタンスは、すべて終了されます。 今すぐご利用いただけます Amazon EC2 キャパシティブロック は、AWS 米国東部 (オハイオ) リージョンの p5.48xlarge インスタンスで今すぐご利用いただけます。EC2 キャパシティブロックの料金は予約前に確認でき、EC2 キャパシティブロックの合計料金は購入時に前払いで請求されます。詳細については、 EC2 キャパシティブロックの料金 ページを参照してください。 EC2 キャパシティブロックの詳細については、 EC2 キャパシティブロックドキュメント を参照してください。フィードバックは、 AWS re:Post for EC2 、または通常の AWS サポート連絡先をとおして送信してください。 – Channy 原文は こちら です。
AWS re:Invent まであと 1 か月を切りましたが、その間も興味深いニュースが続々と発表されています。10月30日週は、私が皆様に最新情報をお知らせします! 先週のリリース 10月23日週、私の目に留まったリリースをいくつかご紹介します。 AWS re:Post – re:Post では、AWS を利用してさらなる成功を実現するのに役立つエキスパートのコミュニティにアクセスできます。 Selections では、コミュニティメンバーは集約ビューで知識を整理し、 学習パスや厳選されたコンテンツセットを作成できます。 Amazon SNS – FIFO (先入れ先出し) トピックが、別のアーカイブリソースのプロビジョニングを必要とせずに、 メッセージを保存および再生するオプションをサポートするようになりました 。これは、イベント駆動型アプリケーションの耐久性を向上させ、ダウンストリームの障害シナリオから回復するのに役立ちます。詳細については、AWS コンピューティングブログの記事「 Archiving and replaying messages with Amazon SNS FIFO 」をご覧ください。また、 カスタムデータ識別子 を使用して、一般的な機密データ (名前、住所、クレジットカード番号など) だけでなく、会社の従業員 ID などのドメイン固有の機密データも保護できるようになりました。この機能の詳細については、AWS セキュリティブログの記事「 Mask and redact sensitive data published to Amazon SNS using managed and custom data identifiers 」をご覧ください。 Amazon SQS – FIFO 高スループットモードのためのスループットクォータの引き上げ により、API アクションごとに 1 秒あたり最大 18,000 のトランザクションを処理できます。スループットクォータは AWS リージョンによって異なることにご留意ください。 Amazon OpenSearch Service – OpenSearch Serverless は、新しいインデックスライフサイクルポリシーにより、 時間ベースの自動データ削除 をサポートするようになりました。 正確で低レイテンシーのベクトル検索クエリを提供するための最適な戦略を決定 するために、OpenSearch は、 近似最近傍探索 (ANN) を使用した事前フィルタリングや、正確な k-最近傍 (k-NN) を使用したフィルタリングなど、 最適なフィルタリング戦略をインテリジェントに評価 できるようになりました。また、OpenSearch Service は、 インターネットプロトコルバージョン 6 (IPv6) をサポートするようになりました 。 Amazon EC2 – マルチ VPC ENI アタッチメント を使用すると、1 つの仮想プライベートクラウド (VPC) 内でプライマリ Elastic Network Interface (ENI) を使用してインスタンスを起動し、別の VPC からセカンダリ ENI をアタッチできます。これは、ネットワークレベルの分離を維持するのに役立ちますが、特定のワークロード (一元管理されたアプライアンスやデータベースなど) が相互に通信するのを引き続き許可します。 AWS CodePipeline – パラメータ化されたパイプライン を使用すると、入力パラメータをパイプライン実行に動的に渡すことができます。ソースリポジトリ内の コミットに特定の git タグが適用された際にパイプラインの実行を開始 できるようになりました。 Amazon MemoryDB – Graviton3 ベースの R7g ノードをサポート するようになりました。これは、R6g と比較して最大 28% 多いスループットを実現します。また、これらのノードは、より高いネットワーク帯域幅も提供します。 その他の AWS のニュース ここでは、私が注目している AWS およびクラウドに関する他のブログ記事をいくつかご紹介します。 ネットワーキングとコンテンツ配信のブログ – AWS ネットワークインフラストラクチャを構築する際に下す、技術管理とハードウェアに関する意思決定の一例:「 A Continuous Improvement Model for Interconnects within AWS Data Centers 」 DevOps ブログ – 企業のお客様が CodeWhisperer を利用しているデベロッパーの数、利用頻度、提案を受け入れる頻度を理解するのをサポートします:「 Introducing Amazon CodeWhisperer Dashboard and CloudWatch Metrics 」 フロントエンドウェブおよびモバイルブログ – GraphQL API へのアクセスをプライベートネットワーク内のコンシューマーに制限する方法:「 Architecture Patterns for AWS AppSync Private APIs 」 アーキテクチャブログ – この非常に興味深いシリーズの新しい記事:「 Let’s Architect! Designing systems for stream data processing 」 Community.AWS から:「 Load Testing WordPress Amazon Lightsail Instances 」および「 Future-proof Your .NET Apps With Foundation Model Choice and Amazon Bedrock 」。 私の同僚の Ricardo による AWS の最新のオープンソースに関するニュースレター もお見逃しなく。 今後の AWS イベント カレンダーを確認して、次の AWS イベントにぜひサインアップしてください。 AWS Community Days  – お住まいの地域で AWS ユーザーグループのリーダーが主催するコミュニティ主導のカンファレンスにぜひご参加ください: ジャイプル (11 月 4 日)、 ヴァドーダラー (11 月 4 日)、 ブラジル (11 月 4 日)、 中央アジア (カザフスタン、ウズベキスタン、キルギス、モンゴル: 11 月 17~18 日)、 グアテマラ (11 月 18 日)。 AWS re:Invent (11 月 27 日~12 月 1 日) – AWS の最新情報を聞き、エキスパートから学び、グローバルクラウドコミュニティとつながるために ぜひご参加ください 。 セッションカタログ と 参加者ガイド を確認し、 生成系 AI のハイライト をご覧ください。 こちらでは、今後のすべての AWS 主導の対面および仮想イベント と デベロッパー中心のイベント を確認できます。 10月30日週はここまでです。次回もお楽しみに! – Danilo この記事は、 Weekly Roundup シリーズの一部です。毎週、AWS からの興味深いニュースや発表を簡単にまとめてお知らせします! 原文は こちら です。
訳者注記: 原文記事 は 2019 年の記事となりますが、定期的にメンテナンスされており、且つ DNS 管理において有用であるため翻訳対象として選定しています。 前回の投稿 では、マルチアカウント環境にCentral DNS を実装するソリューションを紹介しました。これにより、クロスアカウントや AWS からオンプレミスへのドメイン解決を実装するときに必要なサーバーとフォワーダーの数が減り、DNS 管理が簡素化されます。 Amazon Route 53 Resolver サービスのリリースにより、ハイブリッド DNS 解決をさらに簡素化するネイティブの条件付きフォワーダーにアクセスできるようになりました。 この記事では、Route 53 Resolver を使用してマルチアカウント環境で DNS 管理を一元化する最新のソリューションを紹介します。このソリューションにより、AWS でドメインコントローラーを実行しなくても、複数のアカウントにわたって、また AWS とオンプレミスで実行されているワークロード間でドメインを解決できます。 ソリューションの概要 このソリューションでは、ドメイン解決の 3 つの主要なユースケースを解決する方法を示します。 VPC で実行されているワークロードからオンプレミスドメインの名前解決 オンプレミスで実行されているワークロードから AWS 環境内のプライベートドメインの名前解決 異なる AWS アカウントで実行されているワークロード間のプライベートドメインの名前解決 次の図は、大まかなアーキテクチャを示しています。 図 1: アーキテクチャ図 アーキテクチャ図中の 1 ~ 6 について説明します。 Central DNS VPC 用のAmazon が提供するデフォルト DNS サーバーです。ここでは、これを DNS-VPC と呼びます。これは VPC CIDR 範囲内の 2 番目の IP アドレスです (図に示されているように、 172.27.0.2 を持ちます)。このデフォルトの DNS サーバーは、参加している AWS アカウントで実行されるすべてのワークロードのプライマリドメインリゾルバーになります。 Route 53 Resolver Endpoint を示しています。インバウンドエンドポイントは、オンプレミスの DNS サーバーと、参加している AWS アカウントで実行されているワークロードから転送されたクエリを受信します。アウトバウンドエンドポイントは、ドメインクエリを AWS からオンプレミス DNS に転送するために使用されます。 条件付き転送ルールを示しています。このアーキテクチャでは、2 つのルールが必要です。1 つは onprem.private ゾーンのドメインクエリをアウトバウンドエンドポイント経由でオンプレミス DNS サーバーに転送するルール、もう 1 つは awscloud.private のドメインクエリを DNS-VPC のリゾルバーインバウンドエンドポイントに転送するルールです。 これら 2 つの転送ルールが AWS Resource Access Manager を介して他のすべての AWS アカウントと共有され、これらのアカウントのすべての VPC に関連付けられていることを示しています。 awscloud.private という固有のサブドメインを使用して各アカウントに作成されたプライベートホストゾーンを示しています。 awscloud.private ゾーンへのクエリを Resolver インバウンドエンドポイントの IP アドレスに転送するように設定された条件付きフォワーダーを備えたオンプレミスの DNS サーバーを示しています。 注:このソリューションでは、送信元/宛先の VPC と DNS-VPC 間の VPC ピアリングや接続は必要ありません。 仕組み 次に、このアーキテクチャのドメイン解決フローが、3 つのユースケースに従ってどのように機能するかを示します。 ユースケース ① 図 2: AWS で実行されているワークロードからオンプレミスドメインを解決するユースケース 最初に、AWS で実行されているワークロードからオンプレミスドメインを解決する方法を見ていきます。プライベートドメイン host1.acc1.awscloud.private のサーバーが host1.onprem.private というアドレスを解決しようとすると、次のようになります。 DNS クエリは、host1.acc1.awscloud.private をホストしている VPC のデフォルト DNS サーバーにルーティングされます。 VPC は Central DNS アカウントから共有される転送ルールに関連付けられているため、これらのルールは VPC 内の Amazon が提供するデフォルトの DNS によって評価されます。 この例では、ルールの 1 つが onprem.private のクエリをオンプレミス DNS サーバーに転送するように指示しています。このルールに従って、クエリはオンプレミスの DNS サーバーに転送されます。 転送ルールは Resolver アウトバウンドエンドポイントに関連付けられているため、クエリはこのエンドポイントを介してオンプレミスの DNS サーバーに転送されます。 このフローでは、参加しているアカウントの1つで開始されたDNSクエリが Central DNS サーバーに転送され、次にオンプレミス DNS に転送されます。 ユースケース ② 次に、オンプレミスのワークロードで AWS 環境のプライベートドメインを解決する方法は次のとおりです。 図 3: オンプレミスのワークロードで AWS 環境のプライベートドメインを解決する方法のユースケース この場合、host1.acc1.awscloud.private のクエリはオンプレミスホストから開始されます。次に何が起こるかは次のとおりです。 ドメインクエリはオンプレミスの DNS サーバーに転送されます。 その後、クエリはオンプレミスDNSサーバー上の条件付き転送ルールを介して Resolver インバウンドエンドポイントに転送されます。 クエリは、DNS-VPC のデフォルト DNS サーバーに到達します。 DNS-VPC はプライベートホストゾーン acc1.awscloud.private に関連付けられているため、デフォルトの DNS サーバーがこのドメインを解決できます。 この場合、DNS クエリはオンプレミスで開始され、インバウンドエンドポイントを通じて AWS 側の Central DNS に転送されています。 ユースケース③ 最後に、複数の AWS アカウントにまたがるドメインの解決が必要になる場合があります。これを実現する方法は次のとおりです。 図 4: 複数の AWS アカウントにまたがるドメインを解決する方法のユースケース host1.acc1.awscloud.private のホスト 1 が host2.acc2.awscloud.private というドメインを解決しようとしたとすると、次のことが起こります。 ドメインクエリは、VPC ホスティングソースマシン (host1) のデフォルト DNS サーバーに送信されます。 VPC は共有転送ルールに関連付けられているため、これらのルールは評価されます。 awscloud.private ゾーンのクエリは、DNS-VPC のインバウンドエンドポイントに (アウトバウンドエンドポイント経由で) 転送する必要があるというルールがあります。 次に、アウトバウンドエンドポイントは DNS クエリをターゲット IP に転送します。この例では、ターゲット IP は受信エンドポイントの IP アドレスです。 DNS-VPC は acc2.awscloud.private ホストゾーンに関連付けられているため、デフォルトの DNS は自動定義ルールを使用してこのドメインを解決します。 このユースケースでは、DNS クエリが 1 つの参加アカウントで開始され、別の AWS アカウントのドメイン解決のために Central DNS に転送される、AWS 間ケースについて説明します。次に、このソリューションをお客様の環境で構築するために何が必要かを見ていきます。 ソリューションの導入方法 このソリューションを 4 つのステップで構成する方法を説明します。 一元化された DNS アカウントを設定します。 各参加アカウントを設定します。 プライベートホストゾーンと Route 53 の関連付けを作成します。 オンプレミスの DNS フォワーダーを設定します。 ステップ 1: Central DNS アカウントを設定する このステップでは、一元管理された DNS アカウントにリソースを設定します。主に、DNS-VPC、リゾルバーエンドポイント、転送ルールが含まれます。 ウェブコンソール または AWS クイックスタート を使用して、ビジネスシナリオに応じて DNS-VPC として動作する VPC を作成します。 Amazon VPC ユーザーガイド で一般的なシナリオを確認できます。非常に一般的なシナリオの 1 つは、 パブリックサブネットとプライベートサブネットを持つ VPC です。 リゾルバーエンドポイントを作成 します。DNS クエリをオンプレミス DNS に転送するアウトバウンドエンドポイントと、オンプレミスのワークロードや他の AWS アカウントから転送された DNS クエリを受信するインバウンドエンドポイントを作成する必要があります。 2 つの 転送ルール を作成します。最初のルールは、ゾーン onprem.private の DNS クエリをオンプレミスの DNS サーバーの IP アドレスに転送することです。2 番目のルールは、ゾーン awscloud.private の DNS クエリをリゾルバーのインバウンドエンドポイントの IP アドレスに転送することです。 ルールを作成したら、ゾーン onprem.private のルールをステップ #1 で作成した DNS-VPC に関連付け ます(他の転送ルールを DNS-VPC に関連付ける必要はありません)。これにより、Route 53 リゾルバーはドメインクエリの転送をそれに応じて開始できます。 最後に、 2 つの転送ルールをすべての参加アカウントと共有する 必要があります。そのためには、AWS Resource Access Manager を使用し、ルールを AWS 組織全体または特定のアカウントと共有できます。 注:ドメインクエリをオンプレミスの DNS サーバーに転送するには、データセンターと DNS-VPC 間の接続が必要です。接続は、 Site-to-Site VPN または AWS Direct Connect を使用して確立できます。 ステップ 2: 参加アカウントを設定する 参加しているアカウントごとに、共有転送ルールを使用するように VPC を設定し、アカウントごとにプライベートホストゾーンを作成する必要があります。 AWS Resource Access Manager からの 共有ルールに同意 します。ルールが AWS 組織と共有されている場合、このステップは不要です。次に、転送ルールを各アカウントのワークロードをホストする VPC に関連付け ます。関連付けが完了すると、リゾルバーはルールに従ってDNSクエリの転送を開始します。 この時点で、共有転送ルールに関連付けられている任意の VPC で実行されているワークロードからオンプレミスドメインを解決できるはずです。AWS でプライベートドメインを作成するには、プライベートホストゾーンを作成する必要があります。 ステップ 3: プライベートホストゾーンを作成する このステップでは、awscloud.private のサブドメインを使用して各アカウントにプライベートホストゾーンを作成する必要があります。環境内でのドメインの競合を避けるため、プライベートホストゾーンごとに一意の名前を使用してください (たとえば、acc1.awscloud.private または dev.awscloud.privateなどです)。 awscloud.private のサブドメインを持つ各参加アカウントに プライベートホストゾーンを作成 し、そのアカウントで実行されている VPC に関連付けます。 プライベートホストゾーンを DNS-VPC に関連付け ます。これにより、集中管理された DNS-VPC はプライベートホストゾーンのドメインを解決し、AWS アカウント間の DNS リゾルバーとして機能できます。 プライベートホストゾーンと DNS-VPC は異なるアカウントにあるため、プライベートホストゾーンを DNS-VPC に関連付ける必要があります。そのためには、プライベートホストゾーンを所有するアカウントから認証を作成し、DNS-VPC を所有するアカウントからこの承認を受け入れる必要があります。これは AWS CLI を使用して行うことができます。 参加している各アカウントで、プライベートホストゾーン ID、リージョン、関連付ける VPC ID (DNS-VPC) を使用して認証を作成します。 aws route53 create-vpc-association-authorization --hosted-zone-id <hosted-zone-id> --vpc VPCRegion= <region> ,VPCId= <vpc-id> Text Central DNS アカウントで、参加している各アカウントのホストゾーンに DNS-VPC を関連付けます。 aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id> --vpc VPCRegion= <region> ,VPCId= <vpc-id> Text ステップ 4: オンプレミス DNS フォワーダーを設定する オンプレミスで実行されているワークロードから awscloud.private ドメイン内のサブドメインを解決できるようにするには、Central DNS アカウントに作成されたリゾルバーインバウンドエンドポイントの 2 つの IP アドレスにドメインクエリを転送する条件付き転送ルールを設定する必要があります。これには、データセンターと DNS-VPC 間の接続が必要であることに注意してください。接続には、 Site-to-Site VPN または AWS Direct Connect を使うことができます。 その他の考慮事項と制限事項 Route 53 Resolverの柔軟性と条件付き転送ルールにより、どのクエリを Central DNSに送信し、どのクエリを同じアカウントでローカルに解決するかを制御できます。これは、AWS PrivateLink や Amazon Elastic File System (EFS) など一部の AWS サービスを使用する予定がある場合に特に重要です。これらのサービスに関連するドメイン名は、それらを所有するアカウントのローカルで解決する必要があるためです。 可能であれば、アカウントのローカルドメインを解決することをお勧めします。たとえば、同じアカウントのプライベートホストゾーンにあるプライベートドメインの場合です。そのためには、アカウントのローカルに条件付き転送ルールを作成し、ルールタイプに「system」を使用して、これらのルールを VPC に関連付けることができます。 ※訳者注記:ルールタイプについてのドキュメントは こちら を参照ください。 Route 53 リゾルバーの制限に関する注意:Route 53 リゾルバーには、エンドポイントの IP アドレスあたり 1 秒あたり 10,000 クエリという制限があります。より高い制限を必要とするワークロードがある場合は、EC2 インスタンス上で実行されている適切に設定されたローカル DNS サーバーにこれらのクエリを転送することを検討してください。サービスの制限について詳しくは、 こちら をご覧ください。 このセクションでは、追加の考慮事項が必要な 2 つのユースケースを挙げます。 インターフェイス VPC エンドポイント (AWS PrivateLink) AWS PrivateLink インターフェイスエンドポイント を作成すると、AWS はサービスとの通信に使用できるエンドポイント固有の DNS ホスト名を生成します。AWS サービスと AWS Marketplace パートナーサービスでは、オプションでエンドポイントのプライベート DNS を有効にできます。このオプションは、プライベートホストゾーンを VPC に関連付けます。ホストゾーンには、サービスのデフォルト DNS 名のレコードセット (たとえば 、ec2.us-east-1.amazonaws.com) が含まれています。このレコードセットは、VPC 内のエンドポイントネットワークインターフェイスのプライベート IP アドレスになります。これにより、エンドポイント固有の DNS ホスト名ではなく、デフォルトの DNS ホスト名を使用してサービスにリクエストを行うことができます。エンドポイントにプライベート DNS を使用する場合は、アカウントのローカルエンドポイントへの DNS クエリを解決し、AWS が提供するデフォルトの DNS を使用する必要があります。そのため、この場合は 、amazonaws.com のドメインクエリをローカルで解決し、これらのクエリを Central DNS に転送しないことをお勧めします。 DNS 名を使用して EFS をマウントする DNS 名を使用して Amazon EFS ファイルシステム Amazon EC2 インスタンスにマウントできます。ファイルシステム DNS 名は、接続している Amazon EC2 インスタンスのアベイラビリティーゾーンにあるマウントターゲットの IP アドレスに自動的に解決されます。そのためには、VPC は Amazon が提供するデフォルト DNS を使用して EFS DNS 名を解決する必要があります。ご使用の環境で EFS を使用する予定がある場合は、EFS DNS 名をローカルで解決し、これらのクエリを Central DNS に送信しないことをお勧めします。その場合、クライアントはアベイラビリティーゾーンに最適化された回答を受け取ることができず、オペレーションのレイテンシーが高くなり、耐久性が低下する可能性があります。 まとめ この記事では、マルチアカウントおよびハイブリッド環境で Central DNS 解決を実装するための簡単なソリューションを紹介しました。このソリューションでは、AWS Route 53 Resolver、AWS Resource Access Manager、および Route 53 のネイティブ機能が使用され、AWS 環境でカスタム DNS サーバーやフォワーダーが不要になるため、複雑さと運用の労力が軽減されます。 著者について Mahmoud Matouk Mahmoud は、世界各地の公共部門ソリューションアーキテクトの一員であり、高等教育機関のお客様がさまざまな AWS サービスを使用して、革新的で安全で可用性の高いソリューションを構築できるよう支援しています。 この記事の翻訳はソリューションアーキテクトの長屋が担当しました。原文は こちら です。
この記事は、 Commoditize connected mobility with WirelessCar on AWS を翻訳したものです。 WirelessCar は、スウェーデン、米国、中国に拠点を置き、12 社以上の自動車 OEM 、世界中の 100 を超える市場 に対して、 AWS の 99.99% の稼働率でコネクテッドモビリティサービスを提供しています。WirelessCar は、コネクテッドカーサービスの構築において 20 年以上の経験を持つ AWS パートナー です。WirelessCar は、API 製品、コストの最適化、フライホイールの構築、AWS によるスケールメリットにより、AWS 上のコネクテッドモビリティサービスをコモディティ化してきました。WirelessCar が AWS 上で展開するプラットフォームには、現在 1,000 万台以上の車両が接続しており、 1 億台の接続数であれば、年間の台あたりコストを 1 桁ドル台まで下げるに至っています。 このブログ記事では、WirelessCar が AWS を利用してモジュラー API 製品を構築し、コスト最適化を実現し、スケールメリットを構築してコネクテッドモビリティサービスをコモディティ化した方法に焦点を当てています。 背景 自動車 OEM がデジタルトランスフォーメーションを続けるにつれて、ソフトウェア開発組織になりつつあり、ソフトウェアサプライヤーからのサービスの利用方法も変化するでしょう。要件を指定してサプライヤーに機能を注文する組織から、社内で独自のソフトウェアを構築する開発チームへと変化しています。誰もが毎回すべてをゼロから構築することは持続可能ではないため、チームは差別化のない機能をサプライヤーから購入することに頼っています。このようなソースソフトウェアの消費者が OEM の社内開発チームに移るとき、彼らはパブリッククラウドサービスと同じようにソフトウェアを利用できることを期待しています。つまり、自分でインストールして運用する必要のあるソフトウェアパッケージを受け取ることは期待せず、 SaaS モデルでサプライヤーから提供された API ベースの製品を利用することになります。これにより、 OEM 開発チームはセルフサービスで製品のインスタンス化、統合のトラブルシューティング、使用状況と請求のフォローアップ、アクセスとデータの管理を行うことができます。その結果、ボトルネックが解消され、 OEM はイノベーションのスピードを上げることができます。 WirelessCar の API 製品 WirelessCar は、クラウドベースのフルマネージド型コネクテッドモビリティ API 製品を SaaS 方式で提供します。既製のマネージド API 製品を自社で構築して保守する代わりに利用することで、OEM は差別化機能の提供に注力し、総所有コストを削減し、スケールメリットを享受できます。カスタマイズやコンサルティングのニーズに合わせて、 WirelessCar はプロフェッショナルサービスとディスカバリーサービスを提供します。OEM は、顧客にコネクテッドモビリティサービスや、 API を使用して採用して既存のプラットフォームに統合したい製品を提供するために、WirelessCar 製品スイート全体を完全なソリューションとして採用することを選択します。そのため、既存のOEM プラットフォームと新しい OEM プラットフォームの両方が、 WirelessCar API 製品のすべてまたは一部を採用しています。 WirelessCar は、コネクテッドモビリティの6つの異なる分野で API 製品を提供しています。 接続性 : 車両とライフサイクル管理への接続を提供する製品。 ジャーニーインテリジェンス : この分野には、 位置と移動の統計情報 、 データレイク 、デジタルコンパニオン、ドライバーモニタリング、コーチングのユースケースを網羅した製品が含まれます。 安全とセキュリティ : これには、 コールセンターサービス 、盗難車追跡、車両セキュリティ警告サービスが含まれます。 電気自動車 ( EV ) : 自動車業界で信頼性の高い EV サービスの1つであるスマート EV ルーティング、スマート充電、デジタル EV コンパニオンサービス。 共有モビリティ : この分野では、WirelessCar が車両管理、車両データアクセス、デジタル管理サービスを提供します。 デジタルトランスフォーメーション : 物流追跡、社用車管理、遠隔診断、予知保全などがこの分野でカバーされる最新のサービスです。 WirelessCar と AWS は協力して、エッジ・ツー・クラウド、セキュリティ、データ、機械学習などの分野で新製品を開発しています。OEM は WirelessCar サービスを採用し、WirelessCar サービス API を使用してその上にサービスを構築しています。 WirelessCar 製品は、OEM が車両、工場、顧客関係管理システム、またはその他のエンドポイントからデータを安全に取り込むのに役立ちます。OEM は WirelessCar に連絡してこれらの API を購読します。WirelessCar には、API の使用方法に関する詳細なドキュメントが用意されています。OEM は、サービスの利用に何か月も何年もかかっていた API を数週間で使い始めています。 WirelessCar 製品は、AWS のマネージドサービスと Amazon API gateway 、 AWS Lambda 、 Amazon DynamoDB 、 AWS IoT Core などの Serverless サービスを使用して、インフラストラクチャをコスト効率よくスケーリングし、DevOps の労力を削減します。WirelessCar サービスをコードとしてのインフラストラクチャとして構築し、継続的インテグレーションと継続的デプロイ ( CI/CD ) パイプラインを構築することで、DevOps の労力が軽減されます。ロギング、モニタリング、アラートサービスは Amazon CloudWatch を使用して提供されます。セキュリティとアクセス管理を確保するために、AWS のセキュリティおよびアクセス管理サービスである Identity and Access Management (IAM) 、 AWS WAF 、 AWS Certificate Manager (ACM) 、 AWS security hub 、 AWS Shield 、およびその他のサービスが使用されています。このように、WirelessCar はコネクテッドモビリティサービスを利用するためのモジュール式 API 製品を OEM に提供しています。AWS と WirelessCar は、今後、これらのサービスを AWS マーケットプレイスで利用できるように取り組んでいます。これにより、誰でも既製の WirelessCar 製品を使い始めることができます。 コスト最適化 コスト最適化は一過性のものではなく、費用対効果の高いソリューションを開発するために企業文化の一部として DevOps チームに組み込まれます。モビリティワークロードにおけるコストは、車両の通信パターン、車両が使用するモビリティサービスの数、および車両が要求する応答によって異なります。これら 3 つのパラメータは OEM ごとに異なるため、各 OEM のコストは異なります。このためコスト最適化は、 OEM プログラム、 WirelessCar サービス、および AWS サービスごとのコストを特定することからスタートしました。 WirelessCar と AWS は、コストログと Amazon QuickSight を使用してコストを見える化し、1 台あたりの年間コスト、メッセージあたりのコストなどのマトリックスを作成しました。現在では WirelessCar は、コストをほぼリアルタイムで追跡し、結果を測定することが可能となりました。 WirelessCar では、コストの視覚化を可能にするために、すべての AWS リソースに対して一貫したタグ付け戦略を採用していることに注意してください。 WirelessCar は、2 つの方法でコスト削減を実現しました。 アーキテクチャ変更したり、多大な労力をかけたり、クラウド利用に関するガバナンスを設定したりすることのないような、容易な項目を特定しました。例えば、未使用のリソースやデータのクリーニング、コスト削減のための IO2 から IO3 への Amazon Elastic Block Store ( Amazon EBS ) ボリューム変更や、コンピューティングとデータベース用の AWS EC2 Graviton インスタンスの利用などです。 各 AWS サービスの使用方法を確認し、コスト最適化アクションとリファクタリングを特定しました。これらの取り組みは、 WirelessCar チームが各スプリントで計画し、機能の実装を優先しながら、時間をかけて実施してきました。 WirelessCar におけるコスト最適化キャンペーンにより、WirelessCar チームは自分たちの選択を意識するようになりました。現在、 WirelessCar チームは開発したサービスコストを QuickSight で追跡し、コストの最適化に取り組んでおり、また WirelessCar のお客様はこれらのコスト削減から直接メリットを得ることができます。このように、 WirelessCar はコスト効率の高い API 製品を OEM に提供しています。 スケールメリットの構築 20 年以上の経験、コストを最適化した優れた API 製品、 AWS とのパートナーシップ、市場開拓戦略により、 WirelessCar の製品を利用する OEM の数はますます増えています。 WirelessCar は、数か月や数年ではなく、数週間で顧客をプラットフォームに導入できるようになりました。既存のモビリティプラットフォームは、特に EV サービスの分野でギャップを埋めるために WirelessCar サービスを採用しています。 WirelessCar と AWS は協力して新しいサービスを市場に投入しています。 これにより、世界中で毎週何千台もの新しい車両が WirelessCar 製品に接続されています。これはフライホイールの構築とスケールメリットの向上に役立ち、ひいては車両1台あたりのコストを削減し、 WirelessCar のお客様にもメリットをもたらします。私たちは 1 億台の車両に搭載し、コネクテッドモビリティサービスを共同でコモディティ化することを目指しています。 最後に このブログ記事では、 WirelessCar と AWS がどのように協力して API 製品、コスト最適化、スケールメリットを利用してコネクテッドモビリティサービスをコモディティ化したかを学びました。詳細については、 WirelessCar まで お問い合わせ ください。AWS サービスの詳細については、 自動車向け AWS のページ をご覧ください。または、今すぐ AWS チームに お問い合わせ ください。 このブログは、ソリューションアーキテクトの丹羽と小野田が翻訳しました。 Sushant Dhamnekar Sushant Dhamnekar は AWS のシニアソリューションアーキテクトです。Sushant は、信頼できるアドバイザーとして、コネクテッドモビリティやソフトウェアデファインドビークルの分野で、拡張性、柔軟性、耐障害性に優れたクラウドアーキテクチャを構築する自動車業界のお客様を支援しています。仕事以外では、Sushantはハイキング、食事、旅行、HIT ワークアウトを楽しんでいます。 Tomas Carlfalk トーマスは、コネクテッドカーのパイオニアである WirelessCar の CTO であり、自動車メーカーと協力してデジタルトランスフォーメーション戦略を実現しています。スウェーデン西海岸のヨーテボリで生まれ育ったトーマスは、約20年前に WirelessCar のソフトウェア開発者として自動車業界でキャリアをスタートさせました。長年にわたり、さまざまな役職でコネクテッドカープログラムの立ち上げに携わってきたほか、 WirelessCar 全体のクラウド導入とサイバーセキュリティの取り組みを主導してきました。
最近は日本政府および多くの企業が「クラウド・ファースト」を宣言し、クラウドを最優先にシステム開発に取り組む事例が数多く出てきています。業界や規模を問わず多くの企業が、クラウド上でシステムを開発するプロジェクトに取り組んでいます。クラウドを活用する場合でも、プロジェクト管理のポイントは従来のプロジェクトと変わらず、PMBOK® Guide等のナレッジを最大限活用して進めることが重要です。一方で、クラウドの特性ゆえに陥りがちな問題もあり、回避策を知り正しく実践することでプロジェクトの成功率を高めることができます。 そこで、著者がカスタマーソリューションマネジャーとしてお客様を支援する中で得られた、クラウドを活用するプロジェクトを進める際の具体的な考慮点を、複数回に分けてお伝えいたします。初回となる本ブログでは、プロジェクトの立ち上げにフォーカスし、目標とするビジネス価値を明確にして関係者と合意することの重要性について記載します。クラウドを活用したプロジェクトの立ち上げをリードする方を主な読者と想定していますが、プロジェクトメンバとして実行に関わる方にも参考になる内容と考えています。 クラウドを活用するプロジェクトで起こりやすい問題 クラウドを活用するプロジェクトは「クラウドの活用」自体が目的となり、具体的なビジネス上の目標が不明確なまま開始されてしまうことがあります。それにより、以下のような問題が発生し、プロジェクトの減速・停滞につながってしまうケースが見られます。 想定外の問題が発生した時や、他の重要案件が発生した時にプロジェクトの優先度を正しく評価できず劣後・停滞してしまう システムのリリース後にコストの削減のみが注目され、「期待していた効果が出ていない」と評価される。またはそもそも効果の評価自体ができない状態となる このような状況を避けるためには、以下2点を注意してプロジェクトを立ち上げることが重要です。 考慮点① クラウド活用で得られる価値を正しく理解し、具体的なビジネス上の目標を設定する クラウドを活用することで得られる価値は多岐にわたります。以下にAWSがこれまで多数・多様なお客様のクラウド移行をご支援する経験に基づいて整理した、クラウドの活用により期待できる価値のフレームワーク( AWS Cloud Value Framework )を記載しています。もちろん実際に期待できる価値は各システムの特性や状況にもよりますが、システムの信頼性向上や俊敏性向上がコスト削減以上にビジネスに大きな価値をもたらすことも多くあります。 そのため、プロジェクト立ち上げの際に、これらを踏まえた広い視点で具体的なビジネス上の目標を定義し、検証できるよう準備をすることが非常に重要となります。そうすることで、想定外の問題が発生した時や、他の重要案件が発生した時に客観的な評価をすることが可能となり、プロジェクトの減速・停滞を防止することができます。また、システムリリース後に効果の計測・評価を適切に行うことも可能となります。 考慮点② ビジネス部門を含めたプロジェクトのステークホルダー全員で目標を合意する 具体的なビジネス上の目標を立てているものの、ステークホルダーの特定や重要度判断が不足することで、ビジネス部門との認識が合致していないケースが見られます。このような状態では、プロジェクトを進める中で、仕様変更の判断が正しくできない、テストや移行準備などで適切な協力が得られない、といった問題につながってしまいます。 そのため、設定した目標をプロジェクトのステークホルダー全体に共有し、合意しておくことが非常に重要です。プロジェクトマネージャーにはこの点を意識し、必要なコミュニケーションを丁寧に行うことが求められます。加えて、合意した内容は極力プロジェクト憲章等に文章化して残すことが推奨されます。それにより、認識相違の防止や、プロジェクトメンバへの共有の効果が高まります。 また、クラウド活用推進をミッションとした、ビジネス部門とIT部門が一体となった組織(CCoE:Cloud Center of Excellence)がプロジェクトの立ち上げを支援することも有効な方法となります。CCoEについてはその役割等を解説している ブログ を是非参考にしていただければと思います。 まとめ クラウド活用プロジェクトを成功に導くためには、プロジェクト立ち上げの時点で達成すべきビジネス価値を明確にし、関係者間で合意することが重要です。具体的には、以下の2点に注意しましょう。 クラウド活用の価値を広く理解し、具体的なプロジェクトの目標を設定する ビジネス部門を含めたステークホルダー全員で目標を合意する プロジェクト立ち上げ後の重要な考慮点については、次回以降のブログでお伝えいたしますので、そちらも是非ご覧ください。 参考リンク 第1回:プロジェクトの立ち上げ 第2回:柔軟なベースライン管理