Amazon Q と一緒にEC2構築＆トラブル対応【2023年12月時点】

先日ラスベガスで開催された [AWS re:Invent 2023 Las Vegas](https://reinvent.awsevents.com/) に現地参加してきました。

<img width="400" alt="awsreInvent2023" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/d392f269-b415-528c-6f2a-7ea8f513dac6.jpeg">

re:Invent のキーノートでは多くの新サービスが発表されます。

<img width="400" alt="awsreInvent2023" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/e1cb6b46-3c01-6ed5-8f27-435046fe587f.jpeg">

その中で新たに発表されたサービスの１つが 今回取り上げる [Amazon Q](https://aws.amazon.com/jp/quicksight/q/) です。

<img width="400" alt="awsreInvent2023" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/aeaf9af5-1a7c-e47f-ccc8-48434362612c.jpeg">


# １．Amazon Q とは
Amazon Q は、AI を活用した新しいタイプの生成AIアシスタントです。

<img width="400" alt="AmazonQ" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/b24304d2-092d-1e90-a624-dfd336c4e77d.jpeg">

名前が1文字の「Q」というのが気なるところですが、その由来は「007」シリーズに登場するMI6の研究開発部門の課長「Q」や「スター・トレック」シリーズの高次元生命体「Q」をモチーフにしているとのことです。

私はスター・トレックの大ファンで、学生の頃は深夜に放送されるスター・トレックを見るのが楽しみでした。そして、その情熱のまま、20年前には海を渡ってラスベガスの「 STAR TREK THE EXPERIENCE 」(2008年閉館) を訪問しました。人生で初めての海外旅行で、英語も話せない中で四苦八苦しながら現地まで到着し、数々の展示とアトラクションに興奮したのを覚えています。

<img width="400" alt="startrek" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/9ba88b46-139b-3729-02a4-5b485fb251eb.jpeg">

そんなラスベガスの地で　20年後に AWS re:Invent が開催され、スター・トレックに由来する名前のサービスが登場するのは、非常に感慨深いところです。

ちなみに Q はスター・トレックシリーズに度々出てくる高次元生命体です。全知全能であり、不老不死で、宇宙のどこでも瞬間移動が可能で、時間軸も簡単に超える事ができ、神の如き能力を持っている存在です。スター・トレックの Q は謎かけをしてきて簡単に答えを教えてくれませんが、Amazon Q には、解り易い回答を期待したいところです。


# ２．Amazon Q のサービス内容
次は Amazon Q のサービスについて紹介します。
以下のようなサービスがリリースされています。

| 区分 | 内容 |
|:-----------|:-----------|
|[Amazon Q for Business Use](https://docs.aws.amazon.com/ja_jp/amazonq/latest/business-use-dg/what-is.html)|組織内に導入できる、フルマネージド型の生成 AI を活用したエンタープライズ チャット アシスタントです。Amazon Q は、質問への回答、知識の発見、電子メールメッセージの作成、テキストの要約、文書の概要の作成、アイデアのブレインストーミングなどの主要なタスクをサポートすることにより、従業員の生産性を向上させます。ユーザーは Amazon Q に質問すると、会話形式で提示される包括的な回答が得られます。|
|[Amazon Q for AWS Builder Use](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/what-is.html)|生成人工知能 (AI) を活用した会話型アシスタントで、AWS アプリケーションの理解、構築、拡張、操作を支援するだけでなく、サポートに関する質問など、AWS に関する質問に答えることができます。アーキテクチャ、ベストプラクティス、ドキュメント。Amazon Q は、その機能とコンピテンシーを常に更新しており、必要に応じて人間につなぐ機能など、質問に対して最も状況に即した実用的な回答が得られるようにします。|
|[Amazon QuickSight Q](https://docs.aws.amazon.com/ja_jp/quicksight/latest/user/working-with-quicksight-q.html)|機械学習を搭載した Amazon QuickSight Q は、自然言語処理を使用してビジネス上の質問にすばやく答えます。Q を使用すると、ビジネスインテリジェンス (BI) チームの労力を数週間節約できます。|
|[Amazon Q in Connect](https://docs.aws.amazon.com/ja_jp/connect/latest/adminguide/amazon-q-connect.html)|Connect の Amazon Q は、生成 AI カスタマー サービス アシスタントです。これは、Amazon Connect Wisdom の LLM 強化進化版であり、コンタクトセンターのエージェントが顧客の問題を迅速かつ正確に解決できるよう、リアルタイムの推奨事項を提供します。|

Amazon Q for Business Use は自社データを活用した独自のAIアシスタントを構築するサービスで、Amazon Q for AWS Builder Use はAWSアプリケーションに関するAIアシスタントのサービスになります。そして、その他にも QuickSight、Connect といった各種AWSサービスでも Amazon AI の機能が利用可能となっており、今後は他のサービスも Amazon Q と連携していく流れとなりそうです。

<h3>その中で特に気になっているのが、<br> Amazon Q for AWS Builder Use です。</H3>

AWS に関する様々な質問に答えてくれるということで、構築・運用といった様々な場面で活用できそうです。何が出来るのか気になるところですが、Amazon Q for AWS Builder Use の具体的なサービス内容については以下の通りです。

| 機能 | 内容 |
|:-----------|:-----------|
|記憶と複数ターンの会話|Amazon Q は現在の会話のコンテキストを使用して応答を通知するため、フォローアップの質問をしたり、新しい質問をするときにその応答を参照したりできます。Amazon Q は、会話全体のコンテキストを保持しません。|
|[ソフトウェアの構築、更新、改善](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/q-in-IDE-chat.html)|IDE 内では、Amazon Q は、プログラミング、特定のコードがどのように機能するか、コードの改善、コード生成に関する概念的な質問など、ソフトウェア開発プロセスに関連する質問に答えることができます。|
|[変換コード](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/code-transformation.html)|IDE 内で、Amazon Q はコードファイルの言語バージョンを更新できます。これは現在、Java 8 および Java 11 コードを Java 17 に更新するためにサポートされています。|
|[コンソールエラーのトラブルシューティング](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/troubleshoot-console-errors.html)|Amazon Q を使用すると、AWS マネジメントコンソールでコンソールエラーメッセージを直接トラブルシューティングできます。Amazon Q は、エラーに関する情報と解決策の概要を提供します。|
|[AWS サポートに問い合わせる](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/support-chat.html)|AWS サポートケースを作成し、Amazon Q 内でライブサポートエージェントとチャットして、AWS のサービスで発生している問題に対処できます。AWS マネジメントコンソールの Amazon Q を使用して AWS サポートにアクセスできます。|
|[AWS チャットボットの Amazon Q](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/q-and-aws-services.html)|WS Chatbot で設定された Slack および Microsoft Teams チャネルで Amazon Q をアクティブにして、AWS、AWS のサービス、AWS での構築について質問することができます。|
|[AWS コンソールモバイルアプリケーションの Amazon Q](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/setting-up.html)|Amazon Q は、AWS に関する質問に答えるために、AWS コンソール モバイル アプリケーションと統合されています。コンソールで Amazon Q にアクセスするのと同じ方法でアクセスを設定します。|

コンソールエラーのトラブルシューティングなど、気になる機能が多々あります。

# ３．Amazon Q for AWS Builder Use の使い方

サービス内容に対する関心が高まったところで、次は Amazon Q の使い方です。 

色々な利用方法がありますが、まずはコンソールから利用する方法です。コンソール画面の右上に Amazon Q を利用するボタンが追加されています。このボタンは AWS re:Invent のキーノートでサービスが発表されたタイミングで追加されています。

<img width="800" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/c5105057-63f8-b2e5-7a2e-2d3025b630cb.png">

もうちょっとアップしますが、こちらのボタンとなります。

<img width="100" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/5eaaa73d-c459-e368-27a3-453df90b36d4.png">

こちらをプチっと押すと Amazon Q の質問を入力する画面が表示されます。
ここで色々質問することができます。

<img width="400" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/e9db7c99-b65c-8b32-b692-261241ed2af7.png">

注意点としては、プレビュー時点での対応言語は英語のみです。
日本語の対応は今後期待したいところです。
なお、今回の記事では、機械翻訳を実施した日本語訳を参考に掲載していますが、Amazon Q の回答は英文側となりますので、ご承知おきください。

また、Amazon Q は [AWSコンソールモバイルアプリでも利用可能](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-q-preview-console-mobile-app/)です。
ログインすると画面下にAmazon Q のボタンが追加されています。

<img width="400" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/23f3569e-d69a-192e-f4aa-032a9bef0b91.png">

そちらをプチっと押すと、AWSコンソールと同様に質問することが可能です。

<img width="400" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/5dd210e4-b5f5-2b07-48d5-b874434a3691.jpeg">

お手軽にスマホで確認することも可能な訳です。


# ４．Amazon Q for AWS Builder Use 検証：EC2起動＆トラブル対応
この Amazon Q for AWS Builder Use が実際の場面でどのように活用できるか検証してみます。事例としては誰もが解り易いEC2を起動させるまでの流れで検証してみました。トラブルを実際に起こして、その解決にどのように寄与できるかも検証しています。

<img width="800" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/d6ab18a9-2aa3-9af8-cd56-0bf4ead8f1ce.png">

具体的には、各章で以下の対応を検証しています。

| 章 |対応 | 内容 |
|:-----------|:-----------|:-----------|
|4.1|リージョン選定|リージョンの選定についての質問。|
|4.2|ネットワーク環境構築|VPC等のネットワーク構築に関する質問。|
|4.3|EC2起動|EC2起動手順に関する質問をします。|
|4.4|トラブル対応<br>（ネットワーク）|EC2にRDP接続できないトラブル対応。|
|4.5|トラブル対応<br>（コンソールエラー対応）|コンソールに出力されたエラー対応。|
|4.6|トラブル対応<br>（サポート問合せ）|AWSサポート問合せに関する支援対応。|


## ４．1　リージョン選定
まずは、EC2を起動するリージョンを選定する必要があります。

<img width="800" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/2d571e08-ad86-0627-c162-31176e6a6a33.png">

Amazon Q にリージョン選定の注意点を確認してみます。

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|I want to start EC2. Please tell me what to keep in mind when choosing the region to launch.|EC２を起動したいです。起動するリージョンを選定する際の注意点を教えてください。|
|回答|Here are some key factors to consider when choosing an AWS region to launch your EC2 instance:<br><br>1. Availability of services - Not all AWS services and features are available in every region. Verify that the services and features you need, such as the specific EC2 instance types, are supported in the region.<br><br>2. Proximity to users - Launching in a region close to your users can help provide better performance and latency. This is especially important for applications that involve real-time interactions.<br><br>3. Compliance and data regulations - Some regions help satisfy regulatory requirements around data residency and compliance. Storing data and workloads within a particular region may be needed to meet your compliance needs.<br><br>4. Cost and pricing - Costs for AWS services can vary between regions. Running your workloads in a lower-cost region can help optimize expenses, but latency impacts should be considered.<br><br>5. Network connectivity - Some regions provide additional connectivity options through direct connect locations, VPN access, and peering arrangements that can enhance performance and security.<br><br>Sources<br><br>[1] [Select the Region - SAP NetWeaver on AWS](https://docs.aws.amazon.com/sap/latest/sap-netweaver/net-win-select-region.html)<br><br>[2] [Configure the AWS Region - AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-region-selection.html)<br><br>[3] [Which region should I choose?](https://repost.aws/questions/QUg-e6cf9fQi6R3ymNr5bQQQ/which-region-should-i-choose)<br>|EC2 インスタンスを起動する AWS リージョンを選択する際に考慮すべき重要な要素を以下に示します。<br><br>1. サービスの可用性 - すべての AWS のサービスと機能がすべてのリージョンで利用できるわけではありません。特定の EC2 インスタンス タイプなど、必要なサービスと機能がリージョンでサポートされていることを確認します。<br><br>2. ユーザーに近い - ユーザーに近いリージョンで起動すると、パフォーマンスと遅延が向上します。これは、リアルタイムの対話を伴うアプリケーションにとって特に重要です。<br><br>3. コンプライアンスとデータ規制 - 一部の地域では、データの所在地とコンプライアンスに関する規制要件を満たすのに役立ちます。コンプライアンスのニーズを満たすために、特定のリージョン内にデータとワークロードを保存することが必要になる場合があります。<br><br>4. コストと価格設定 - AWS サービスのコストはリージョンによって異なる場合があります。ワークロードを低コストのリージョンで実行すると経費の最適化に役立ちますが、レイテンシーの影響を考慮する必要があります。<br><br>5. ネットワーク接続 - 一部の地域では、パフォーマンスとセキュリティを強化できる直接接続場所、VPN アクセス、ピアリング配置を通じて追加の接続オプションを提供しています。<br><br>情報源<br><br>[1] [リージョンの選択 - SAP NetWeaver on AWS](https://docs.aws.amazon.com/sap/latest/sap-netweaver/net-win-select-region.html)<br><br>[2] [AWS リージョンの設定 - AWS SDK for .NET](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/net-dg-region-selection.html)<br><br>[3] [どのリージョンを選択すればよいですか?](https://repost.aws/questions/QUg-e6cf9fQi6R3ymNr5bQQQ/that-region-Should-i-choose)|

こういった、注意点を確認するような質問には、比較的良質の回答が返ってくると感じました。

回答内容に対して更に質問を実施します。
今回はレイテンシーの低さを重視する前提として、その場合に各リージョンに対するレイテンシーを測定する方法を質問してみます。

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|When considering which region to use, I would like to check the latency from where I live. Please let me know if there are any effective steps or tools.|どのリージョンを利用するかを検討する際には、自分の住んでいる地域からの遅延を確認したいと思います。効果的な手順やツールがあれば教えてください。|
|回答|Here are a few effective steps you can take to check latency from your location to AWS regions:<br><br>1. Use the AWS Latency Tool available at https://www.awsspeedtest.com/latency. This tool measures latency from your current location to all public AWS regions in real-time. Running multiple tests over time can give you a good idea of average latency. <br><br>2. Check the geographic locations of AWS regions to estimate distances from your location. Generally, regions closer to you will have lower latency. However, other network factors also influence latency.<br><br>3. Test connectivity directly from your network to specific AWS regions. You can use ping or traceroute commands like `ping ec2.region.amazonaws.com` to measure latency. Test connectivity at different times and days for reliable data. <br><br>4. Consider using AWS Global Accelerator which routes traffic to the optimal endpoint for your users, based on health checks and route control policies. This can improve performance for applications that integrate with AWS services across multiple regions.<br><br>5. Monitor application performance after deploying to different regions. Factors like average response times and error rates will indicate the most performant region for your use case.<br><br>Sources<br><br>[1] [From my location to AWS network I am getting high latency](https://repost.aws/questions/QUHEw8Edm3TLucbHkq_qXZ5g/from-my-location-to-aws-network-i-am-getting-high-latency)<br><br>[2] [Network latency inside AWS region](https://repost.aws/questions/QUW1FS4eqgTI-T9pdqDgStdw/network-latency-inside-aws-region)<br><br>[3] [Best AWS South American Server location to support latency sensitive application](https://repost.aws/questions/QURfpxCvUWSI2Mv-ncRcILew/best-aws-south-american-server-location-to-support-latency-sensitive-application)|ここでは、自分の場所から AWS リージョンまでのレイテンシーを確認するために実行できる効果的な手順をいくつか示します。<br><br>1. https://www.awsspeedtest.com/latency で入手可能な AWS Latency Tool を使用します。このツールは、現在の場所からすべてのパブリック AWS リージョンまでのレイテンシーをリアルタイムで測定します。複数のテストを長期間実行すると、平均レイテンシを正確に把握できます。<br><br>2. AWS リージョンの地理的位置を確認して、現在地からの距離を推定します。一般に、リージョンに近いほどレイテンシが低くなります。ただし、他のネットワーク要因も遅延に影響します。<br><br>3. ネットワークから特定の AWS リージョンへの接続を直接テストします。 ping または「ping ec2.region.amazonaws.com」などのtraceroute コマンドを使用してレイテンシーを測定できます。信頼できるデータを得るために、さまざまな時間と日に接続をテストします。<br><br>4. ヘルスチェックとルート制御ポリシーに基づいて、ユーザーにとって最適なエンドポイントにトラフィックをルーティングする AWS Global Accelerator の使用を検討してください。これにより、複数のリージョンにわたる AWS のサービスと統合するアプリケーションのパフォーマンスが向上します。<br><br>5. さまざまなリージョンに展開した後、アプリケーションのパフォーマンスを監視します。平均応答時間やエラー率などの要素により、ユースケースで最もパフォーマンスの高い領域がわかります。<br><br>情報源<br><br>[1] [現在地から AWS ネットワークまでのレイテンシが高くなります](https://repost.aws/questions/QUHEw8Edm3TLucbHkq_qXZ5g/from-my-location-to-aws-network-i-am-getting-high-latency )<br><br>[2] [AWS リージョン内のネットワークレイテンシー](https://repost.aws/questions/QUW1FS4eqgTI-T9pdqDgStdw/network-latency-inside-aws-region)<br><br>[3] [レイテンシの影響を受けやすいアプリケーションをサポートする最適な AWS 南米サーバーの場所](https://repost.aws/questions/QURfpxCvUWSI2Mv-ncRcILew/best-aws-south-american-server-location-to-support-latency-sensitive-application)|

回答として「[AWS Latency Tool](https://www.awsspeedtest.com/latency)」というツールを教えてくれました。
実際に使ってみると、レイテンシーの一覧が表示されて分かりやすいツールです。
re:Post の情報なども含めて回答してくれるのは、非常に使い勝手が良いと感じました。

<img width="800" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/3ef83ba9-b650-ab43-1637-b1a19d9bf08c.png">

それ以外にも色々と深堀りした質問ができるのですが、問題のある回答が返ってくる場合もあります。
次のは悪い例です。

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|Please tell me the number of AWS services in the Tokyo region.|東京リージョンのＡＷＳサービスの数を教えてください。|
|回答|For the most up-to-date information on AWS services and features available in each region, including the number of services available in the Tokyo region, please check the AWS Documentation pages for the latest details. The available regions and services are frequently updated by AWS.<br><br>Some key points:<br><br>- AWS has a presence in over 70 Availability Zones within 24 geographic regions around the world.<br><br> - Most large services like EC2, S3, VPC etc. are available in over 20 regions globally. <br><br>- Some newer services may still be rolling out to additional regions. <br><br>- The documentation pages provide region-specific availability details for each individual service.<br><br>I would recommend referring to the AWS Region Table and individual service pages on the AWS Documentation for the most current information on AWS services, features and availability in each region, including Tokyo. The details sometimes change as AWS expands to support more regions.|東京リージョンで利用できるサービスの数など、各リージョンで利用できる AWS のサービスと機能に関する最新情報については、AWS ドキュメント ページで最新の詳細を確認してください。利用可能なリージョンとサービスは AWS によって頻繁に更新されます。<br><br>いくつかの重要なポイント:<br><br>- AWS は、世界中の 24 の地理的地域内の 70 以上のアベイラビリティーゾーンに存在します。<br><br>- EC2、S3、VPC などの大規模サービスのほとんどは、世界中の 20 以上のリージョンで利用できます。<br><br>- 一部の新しいサービスは今後も追加のリージョンに展開される可能性があります。<br><br>- ドキュメント ページには、個々のサービスの地域固有の可用性の詳細が記載されています。東京を含む各リージョンでの AWS のサービス、機能、可用性に関する最新情報については、AWS リージョン表と AWS ドキュメントの個々のサービスのページを参照することをお勧めします。 AWS がサポートするリージョンを拡大するにつれて、詳細が変更されることがあります。|

サービス数等変動が発生する内容に関しては、基本的に最新のドキュメントを参照するように促されます。ただ、上記のように「AWS は、世界中の 24 の地理的地域内の 70 以上のアベイラビリティーゾーンに存在します。」といったかなり古い情報の数字を引用する場合があります。最新情報は[AWS グローバルインフラストラクチャ](https://aws.amazon.com/jp/about-aws/global-infrastructure/)のサイトに掲載されていますが、リージョン数は32となっています。こういった数字に関しては Amazon Q を妄信せず、最新ドキュメントを確認した方がよさそうです。

<img width="800" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/b38b3fbd-6c98-b43b-2380-a8bdb3f782a0.png">

## ４．２　ネットワーク環境構築
次はEC2を起動する為のネットワーク環境を構築します。

<img width="800" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/1c61f4a2-625e-94ab-3e70-374d9d5e1e4a.png">

まずは、VPCを作成するにあたっての注意点を確認してみます。

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|Please let me know if there are any points to note when creating a new VPC.|新規にVPCを作成する際に、注意点があれば、合わせて教えてください。|
|回答|Here are some important points to note when creating a new VPC:<br><br>1. Choose Availability Zones carefully based on your application's fault tolerance and availability requirements. Distributing resources like subnets across multiple AZs increases resilience against single points of failure.<br><br>2. Plan your IP addressing scheme and CIDR blocks for the VPC and subnets based on your network architecture and growth needs. Subnet CIDR ranges must be within the VPC range. <br><br>3. Enable necessary DNS and hostname options for your use case. Public hostnames allow applications to be accessed by domain name from the internet.<br><br>4. Create required networking components like internet gateways, NAT gateways, route tables and configure routing and security appropriately for connectivity between subnets and resources. <br><br>5. Launching instances into public subnets exposes them directly to the internet, while private subnets require a NAT gateway or bastion host for internet access. Place resources appropriately based on your security needs.<br><br>6. Refer to the AWS documentation for latest guidelines and best practices on VPC design and configuration to ensure compliance, optimize performance and reduce costs.<br><br>Sources<br><br>[1] [Create and configure a new VPC - Amazon WorkSpaces Web](https://docs.aws.amazon.com/workspaces-web/latest/adminguide/create-vpc.html)<br><br>[2] [Create a VPC - Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)<br><br>[3] [Amazon VPC FAQs](https://aws.amazon.com/vpc/faqs/)|新しい VPC を作成するときに注意すべき重要な点がいくつかあります。<br><br>1. アプリケーションのフォールト トレランスと可用性の要件に基づいて、アベイラビリティ ゾーンを慎重に選択します。サブネットなどのリソースを複数の AZ に分散すると、単一障害点に対する回復力が向上します。<br><br>2. ネットワーク アーキテクチャと成長のニーズに基づいて、VPC とサブネットの IP アドレス指定スキームと CIDR ブロックを計画します。サブネット CIDR 範囲は VPC 範囲内にある必要があります。<br><br>3. ユースケースに必要な DNS およびホスト名のオプションを有効にします。パブリック ホスト名を使用すると、インターネットからドメイン名によってアプリケーションにアクセスできるようになります。<br><br>4. インターネット ゲートウェイ、NAT ゲートウェイ、ルート テーブルなどの必要なネットワーク コンポーネントを作成し、サブネットとリソース間の接続に合わせてルーティングとセキュリティを適切に構成します。<br><br>5. インスタンスをパブリック サブネットに起動すると、インスタンスがインターネットに直接公開されますが、プライベート サブネットにはインターネット アクセス用の NAT ゲートウェイまたは要塞ホストが必要です。セキュリティのニーズに基づいてリソースを適切に配置します。<br><br>6. コンプライアンスを確保し、パフォーマンスを最適化し、コストを削減するための VPC の設計と構成に関する最新のガイドラインとベストプラクティスについては、AWS のドキュメントを参照してください。<br><br>情報源<br><br>[1] [新しい VPC の作成と設定 - Amazon WorkSpaces ウェブ](https://docs.aws.amazon.com/workspaces-web/latest/adminguide/create-vpc.html)<br><br>[2] [VPC の作成 - Amazon Virtual Private Cloud](https://docs.aws.amazon.com/vpc/latest/userguide/create-vpc.html)<br><br>[3] [Amazon VPC FAQ](https://aws.amazon.com/vpc/faqs/)|

なかなか良い回答が返ってきます。

次は実際のネットワーク構築手順を具体的に確認します。
VPCとパブリックサブネットの作成手順を確認してみます。

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|Please tell me the steps to create a new VPC and create a public subnet, step by step.|新しくVPCを作成して、パブリックサブネットを作成する手順を画面操作単位で教えてください。|
|回答|To create a new VPC with a public subnet:<br><br>1. Open the Amazon VPC console at https://console.aws.amazon.com/vpc [(link)](https://console.aws.amazon.com/vpc/home)<br><br>2. Choose "Launch VPC Wizard" <br><br>3. Choose "VPC with Public and Private Subnets" and select "Select"<br><br>4. For IPv4 CIDR block, specify the IPv4 address range for the VPC<br><br>5. For VPC name, enter a name for the VPC<br><br>6. For Public subnet's IPv4 CIDR, specify the address range for the public subnet<br><br>7. For Availability Zone, select the Availability Zone for the public subnet<br><br>8. For Public subnet name, enter a name for the public subnet<br><br>9. Ensure the relevant options are selected, such as Enable DNS Hostnames, and then choose "Create VPC"<br><br>This will create a new VPC with a public subnet where you can launch EC2 instances that have public IP addresses and can connect to the internet. Refer to the VPC documentation for more details on customizing or modifying the VPC as needed.<br><br>Sources<br><br>[1] [Create and Configure a New VPC - Amazon AppStream 2.0](https://docs.aws.amazon.com/appstream2/latest/developerguide/create-configure-new-vpc-with-private-public-subnets-nat.html)<br><br>[2] [Connecting to a Neptune DB Cluster from an Amazon EC2 instance in the same VPC - Amazon Neptune](https://docs.aws.amazon.com/neptune/latest/userguide/get-started-connect-ec2-same-vpc.html)<br><br>[3] [Create and configure a new VPC - Amazon WorkSpaces Web](https://docs.aws.amazon.com/workspaces-web/latest/adminguide/create-vpc.html)|パブリックサブネットを使用して新しい VPC を作成するには:<br><br>1. https://console.aws.amazon.com/vpc [(リンク)](https://console.aws.amazon.com/vpc/home) で Amazon VPC コンソールを開きます。<br><br>2.「VPC ウィザードの起動」を選択します。<br><br>3.「パブリックおよびプライベートサブネットを持つ VPC」を選択し、「選択」を選択します。<br><br>4. IPv4 CIDR ブロックの場合、VPC の IPv4 アドレス範囲を指定します。<br><br>5. [VPC 名] に、VPC の名前を入力します。<br><br>6. [パブリック サブネットの IPv4 CIDR] に、パブリック サブネットのアドレス範囲を指定します。<br><br>7. [アベイラビリティ ゾーン] で、パブリック サブネットのアベイラビリティ ゾーンを選択します。<br><br>8. [パブリック サブネット名] に、パブリック サブネットの名前を入力します。<br><br>9. [DNS ホスト名を有効にする] などの関連するオプションが選択されていることを確認し、[VPC の作成] を選択します。<br><br>これにより、パブリック IP アドレスを持ち、インターネットに接続できる EC2 インスタンスを起動できるパブリック サブネットを持つ新しい VPC が作成されます。必要に応じて VPC をカスタマイズまたは変更する方法の詳細については、VPC のドキュメントを参照してください。<br><br>情報源<br><br>[1] [新しい VPC の作成と設定 - Amazon AppStream 2.0](https://docs.aws.amazon.com/appstream2/latest/developerguide/create-configure-new-vpc-with-private-public-subnets-nat.html)<br><br>[2] [同じ VPC 内の Amazon EC2 インスタンスから Neptune DB クラスターへの接続 - Amazon Neptune](https://docs.aws.amazon.com/neptune/latest/userguide/get-started-connect-ec2-同じ-vpc.html)<br><br>[3] [新しい VPC の作成と設定 - Amazon WorkSpaces Web](https://docs.aws.amazon.com/workspaces-web/latest/adminguide/create-vpc.html)

…………上記の回答があった訳ですが、GUI が変更になっていて、今ではこの手順の画面は存在しません。今回の情報源を確認すると Amazon AppStream 2.0 や Amazon WorkSpaces Web のドキュメントになっており、古い手順が引用されてしまったようです。この際に本来回答してほしい内容は、例えば Amazon Virtual Private Cloud のユーザガイドの「[VPC を作成する](https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/create-vpc.html#create-vpc-and-other-resources)」になります。AWSのマネージドコンソールの GUI は頻繁に変更が発生するので、新旧情報が混在している事も多いので注意が必要です。操作面に関する質問に対する回答に関しての精度は今後改善されるのを期待したいです。

## ４．３　EC2 起動
次はEC2を起動する為のネットワーク環境を構築します。

<img width="800" alt="AWSBuilderUse" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/2d0d460d-7415-6865-8290-fdb16c5be586.png">

まずは、EC2を起動するにあたっての注意点を確認してみます。

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|Please let me know if there are any points to note when starting up EC2 for the first time.|EC2を新規に起動させる際の注意点があれば教えてください。|
|回答|Here are some key points to note when starting up EC2 for the first time:<br><br>1. Create an AWS account and set up security credentials. <br><br>2. Create a key pair that allows you to connect to your instance securely. <br><br>3. Launch your EC2 instance from one of the Amazon Machine Images (AMIs) provided. Choose an AMI based on the operating system or application server you need.<br><br>4. Configure your instance settings such as instance type, storage, security group rules etc. Make sure the security group allows inbound access on ports you need like SSH (port 22).<br><br>5. Connect to your instance using the key pair file downloaded earlier. For Linux/Unix instances use `ssh -i key-pair-file.pem ubuntu@public_ip` command. <br><br>6. Install and configure any additional software needed on the instance. You have full root access to manage and use the resources on your EC2 instance.<br><br>7. Make sure to stop or terminate instances when not in use to avoid unnecessary charges. You can launch instances on demand as needed.<br><br>Let me know if you have any other questions! AWS documentation also provides detailed getting started guides for EC2 that are very helpful.<br><br>Sources<br><br>[1] [Set up to use Amazon EC2 - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html)<br><br>[2] [Set up to use Amazon EC2 - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/get-set-up-for-amazon-ec2.html)<br><br>[3] [How to start using EC2](https://repost.aws/questions/QU492-buvNS--qwqg5leK7hw/how-to-start-using-ec2)|EC2 を初めて起動するときに注意すべき重要なポイントをいくつか示します。<br><br>1. AWS アカウントを作成し、セキュリティ認証情報を設定します。<br><br>2. インスタンスに安全に接続できるようにするキー ペアを作成します。<br><br>3. 提供された Amazon Machine Image (AMI) の 1 つから EC2 インスタンスを起動します。必要なオペレーティング システムまたはアプリケーション サーバーに基づいて AMI を選択します。<br><br>4. インスタンス タイプ、ストレージ、セキュリティ グループ ルールなどのインスタンス設定を構成します。セキュリティ グループが、SSH (ポート 22) などの必要なポートでの受信アクセスを許可していることを確認します。<br><br>5. 前にダウンロードしたキー ペア ファイルを使用してインスタンスに接続します。 Linux/Unix インスタンスの場合は、「ssh -i key-pair-file.pem ubuntu@public_ip」コマンドを使用します。<br><br>6. インスタンスに必要な追加のソフトウェアをインストールして構成します。 EC2 インスタンス上のリソースを管理および使用するための完全な root アクセス権があります。<br><br>7. 不必要な料金を避けるために、使用していないときは必ずインスタンスを停止または終了してください。必要に応じてオンデマンドでインスタンスを起動できます。<br><br>他にご質問がございましたら、お知らせください。 AWS のドキュメントには、非常に役立つ EC2 の詳細なスタートガイドも記載されています。<br><br>情報源<br><br>[1] [Amazon EC2 を使用するためのセットアップ - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html)<br><br>[2] [Amazon EC2 を使用するためのセットアップ - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/get-set-up-for-amazon-ec2.html)<br><br>[3] [EC2の始め方](https://repost.aws/questions/QU492-buvNS--qwqg5leK7hw/how-to-start-using-ec2)|

基本的な注意点を回答してくれます。

次にEC2を起動するための手順を質問してみます。

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|I would like to start up a new EC2 in an environment where I can connect to the Internet. Please tell me the details of each screen operation.|インターネットから接続できる環境でEC2を新規に立ち上げたいです。画面操作の詳細まで１つずつ教えてください。|
|回答|Here are the steps to start up a new EC2 instance in an environment where you can connect to the Internet:<br><br>1. Sign in to the AWS Management Console and open the Amazon EC2 console [(link)](https://console.aws.amazon.com/ec2/home).<br><br>2. Choose "Launch Instance". <br><br>3. Select an Amazon Machine Image (AMI) like Amazon Linux. <br><br>4. Choose an instance type like t2.micro.<br><br>5. Select an existing key pair or create a new one and download the private key file. <br><br>6. Choose your default VPC and public subnet. <br><br>7. Enable auto-assign public IP under "Network settings".<br><br>8. Select the default security group which allows SSH and HTTP/HTTPS ingress traffic by default.<br><br>9. Review your configuration and launch the instance. <br><br>10. You can now connect to your new EC2 instance using SSH with your private key file and public IP address. The instance will have internet access as well.<br><br>Please refer to the EC2 documentation for more details on prerequisites, configurations and networking aspects involved in launching EC2 instances. Let me know if you need any clarification or have additional questions.<br><br>Sources<br><br>[1] [Set up to use Amazon EC2 - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html)<br><br>[2] [Set up to use Amazon EC2 - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/get-set-up-for-amazon-ec2.html)<br><br>[3] [Setting up Node.js on an Amazon EC2 instance - AWS SDK for JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-up-node-on-ec2-instance.html)|インターネットに接続できる環境で新しい EC2 インスタンスを起動する手順は次のとおりです。<br><br>1. AWS マネジメントコンソールにサインインし、Amazon EC2 コンソール [(リンク)](https://console.aws.amazon.com/ec2/home) を開きます。<br><br>2. 「インスタンスの起動」を選択します。<br><br>3. Amazon Linux などの Amazon Machine Image (AMI) を選択します。<br><br>4. t2.micro などのインスタンス タイプを選択します。<br><br>5. 既存のキー ペアを選択するか、新しいキー ペアを作成して秘密キー ファイルをダウンロードします。<br><br>6. デフォルトの VPC とパブリック サブネットを選択します。<br><br>7. 「ネットワーク設定」でパブリック IP の自動割り当てを有効にします。<br><br>8. デフォルトで SSH および HTTP/HTTPS 受信トラフィックを許可するデフォルトのセキュリティ グループを選択します。<br><br>9. 構成を確認し、インスタンスを起動します。<br><br>10. これで、秘密キー ファイルとパブリック IP アドレスを使用して SSH を使用して、新しい EC2 インスタンスに接続できるようになります。インスタンスはインターネットにもアクセスできます。<br><br>EC2 インスタンスの起動に関連する前提条件、構成、ネットワークの側面の詳細については、EC2 のドキュメントを参照してください。説明が必要な場合や追加の質問がある場合はお知らせください。<br><br>情報源<br><br>[1] [Amazon EC2 を使用するためのセットアップ - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html)<br><br>[2] [Amazon EC2 を使用するためのセットアップ - Amazon Elastic Compute Cloud](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/get-set-up-for-amazon-ec2.html)<br><br>[3] [Amazon EC2 インスタンスでの Node.js のセットアップ - AWS SDK for JavaScript](https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/setting-up-node-on-ec2-instance.html)|

こちらの手順はVPCのときと違って、最新の手順が表示されました。
こちらを前提にEC2の起動を実施します。

その起動手順の中に Amazon Q の機能が1つ追加になっているのでご紹介します。
[EC2 インスタンスタイプの選択の最適化をサポート](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/amazon-q-optimal-ec2-instance-selection-workload/)する機能です。
EC2の起動画面のインスタンスタイプのところに「Get advice」が追加されています。

<img width="600" alt="Getadvice" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/3ecaa080-36b7-c123-70cb-095c3e496422.png">

こちらを選択すると、条件を入力する画面が表示されます。

<img width="600" alt="Getadvice" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/ad917cb4-3a75-9b85-7cbd-179b60328b8f.png">

条件を入力すると、Amazon Q の質問が作成され、回答を得られるという流れです。
今回の入力条件の場合、以下のような質問文と回答が得られます。

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|入力|Use Case：Web Hosting<br>Workload type：Web/App Server<br>Priority：Low cost<br>CPU Manufacturers：Intel|ユースケース：Webホスティング<br>ワークロードの種類：Web/アプリサーバー<br>優先事項：低コスト<br>CPUメーカー：インテル|
|質問|What are the EC2 instance families that are based on Intel platform and are best suited for deploying Web/App Server workload type for Web Hosting use case? My highest preference is for lowest cost EC2 instance families. Use the format below to create the final output: EC2 Instance Selection Assistant Recommends Instance Families: Comma separated list of recommended Instance Families only goes here. EC2 Instance Selection Assistant reasoning for recommendations: Bullet list of step-by-step reasoning for the EC2 Instance Selection Assistant recommendations goes here. Do not skip steps.|Intel プラットフォームに基づいており、Web ホスティングのユースケースで Web/App Server ワークロード タイプをデプロイするのに最適な EC2 インスタンス ファミリーは何ですか?私が最も優先するのは、最も低コストの EC2 インスタンス ファミリーです。以下の形式を使用して最終出力を作成します。 EC2 インスタンス選択アシスタントがインスタンスファミリーを推奨: 推奨されるインスタンスファミリーのカンマ区切りリストはここにのみ入ります。 EC2 インスタンス選択アシスタントの推奨事項の推論: EC2 インスタンス選択アシスタントの推奨事項のステップバイステップの推論の箇条書きリストがここにあります。手順を飛ばさないでください。|
|回答|EC2 Instance Selection Assistant Recommends Instance Families:<br><br>T3, T3a, T4g<br><br>EC2 Instance Selection Assistant reasoning for recommendations:<br><br>1. The question asks for lowest cost EC2 instance families best suited for deploying a Web/App Server workload type for Web Hosting use case on Intel platform.<br><br>2. T3, T3a and T4g instance families provide burstable performance at low cost making them well suited for application development, testing and web hosting workloads.<br><br>3. T3 instances are the baseline burstable general purpose instance type providing consistent CPU performance at lowest cost.<br><br>4. T3a instances are the next generation burstable general purpose instances providing 25% better CPU performance than T3 instances at a slightly higher cost.<br><br>5. T4g instances are Graviton2 based and provide additional savings compared to equivalent Intel-based instances.<br><br>6. All the recommended instance families are based on Intel or Arm platform and provide good availability suited for deploying Web/App Server workloads.<br><br>7. Refer AWS documentation for the latest pricing and other details of different instance types to evaluate and select the optimal instance family meeting your requirements and budget.<br><br>Sources<br><br>[1] [Overview of Amazon EC2 and Amazon RDS Instance Families - Right Sizing: Provisioning Instances to Match Workloads](https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-right-sizing/overview-amazon-ec2-amazon-rds.html)<br><br>[2] [Amazon EC2 T3 Instances – Amazon Web Services (AWS)](https://aws.amazon.com/ec2/instance-types/t3/)<br><br>[3] [get-ec2-instance-recommendations — AWS CLI 1.31.8 Command Reference](https://docs.aws.amazon.com/cli/latest/reference/compute-optimizer/get-ec2-instance-recommendations.html)|EC2 インスタンス選択アシスタントが推奨するインスタンス ファミリ:<br><br>T3、T3a、T4g<br><br>EC2 Instance Selection Assistant による推奨事項の推論:<br><br>1. この質問では、Intel プラットフォーム上で Web ホスティングのユースケース向けの Web/App Server ワークロード タイプをデプロイするのに最適な、最も低コストの EC2 インスタンス ファミリを尋ねます。<br><br>2. T3、T3a、および T4g インスタンス ファミリは、低コストでバースト可能なパフォーマンスを提供するため、アプリケーション開発、テスト、および Web ホスティングのワークロードに最適です。<br><br>3. T3 インスタンスは、最低コストで一貫した CPU パフォーマンスを提供するベースラインのバースト可能な汎用インスタンス タイプです。<br><br>4. T3a インスタンスは、若干高いコストで T3 インスタンスよりも 25% 優れた CPU パフォーマンスを提供する次世代のバースト可能な汎用インスタンスです。<br><br>5. T4g インスタンスは Graviton2 ベースであり、同等の Intel ベースのインスタンスと比較してさらなる節約を実現します。<br><br>6. 推奨されるすべてのインスタンス ファミリは Intel または Arm プラットフォームに基づいており、Web/App Server ワークロードのデプロイに適した優れた可用性を提供します。<br><br>7. さまざまなインスタンス タイプの最新の料金設定やその他の詳細については、AWS ドキュメントを参照して、要件と予算を満たす最適なインスタンス ファミリーを評価して選択します。<br><br>情報源<br><br>[1] [Amazon EC2 および Amazon RDS インスタンスファミリーの概要 - 適切なサイジング: ワークロードに合わせたインスタンスのプロビジョニング](https://docs.aws.amazon.com/whitepapers/latest/cost-optimization-right-sizing/overview-amazon-ec2-amazon-rds.html)<br><br>[2] [Amazon EC2 T3 インスタンス – アマゾン ウェブ サービス (AWS)](https://aws.amazon.com/ec2/instance-types/t3/)<br><br>[3] [get-ec2-instance-recommendations — AWS CLI 1.31.8 コマンドリファレンス](https://docs.aws.amazon.com/cli/latest/reference/compute-optimizer/get-ec2-instance-recommendations.html)|

このように、求める条件に対して、推奨するインスタンスタイプとその理由を教えてくれます。
インスタンスタイプの選択は最初は非常に迷うところですので、こういったサポート機能が追加されたのは非常に良い事だと感じます。今後は同じように他の画面においてもアドバイス機能が増えていく事を期待したいです。

## ４．４　トラブル対応（ネットワーク）
ここからはトラブル対応についてです。
いざ、EC2 を起動してみましたが、RDP接続ができないという事があったりします。
その原因を調査する為の機能が Amazon Q から提供されています。
[Amazon Q network troubleshooting](https://docs.aws.amazon.com/ja_jp/vpc/latest/reachability/overview-of-amazon-q-network-troubleshooting.html) です。
Amazon VPC Reachability Analyzer と連携する Amazon Q の機能で、AWS アカウント内の 2 つのリソース間の到達可能性をクエリし、わかりやすい英語で質問することでネットワーク接続の問題をトラブルシューティングできます。
プレビューリリース中は米国東部 (バージニア北部) リージョンで利用可能です。

では、さっそくいくつかのパターンを試してみます。
まず、Amazon Q に対してRDP接続が出来ない旨を質問します。

<img width="400" alt="network" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/1fe6597e-de2c-1573-1939-50daa19b73f8.png">


| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|Please investigate the reason why RDP connection cannot be made from the Internet side to EC2 with instance ID: i-0f87cd286a******.|インスタンスID：i-0f87cd286a******eのEC2に対してインターネット側からRDP接続ができない原因を調査してください。||
|回答|It looks like you need help with network connectivity issues. Amazon Q works with VPC Reachability Analyzer to provide an interactive generative AI experience for troubleshooting network connectivity issues. You can try the preview experience here (available in US East N. Virginia Region).|ネットワーク接続の問題についてサポートが必要のようです。 Amazon Q は VPC Reachability Analyzer と連携して、ネットワーク接続の問題をトラブルシューティングするためのインタラクティブな生成 AI エクスペリエンスを提供します。ここでプレビュー エクスペリエンスを試すことができます (米国東部、バージニア北部地域で利用可能)。|

AWS Q for Reachability Analyzer での確認を促されるので、「 preview experience here 」を選択して、画面を遷移します。

AWS Q for Reachability Analyzer に画面遷移すると、先ほど Amazon Q に質問した対象のEC2インスタンスにRDP接続出来ない理由の調査結果が表示されます。

今回は以下のネットワーク構成で、接続できない3つのパターンと、その時の AWS Q for Reachability Analyzer 調査結果を確認してみました。

<img width="800" alt="network" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/cb283ddd-11d1-d8bc-d957-2fff34ddee57.png">

### パターン１：セキュリティグループのインバウンドルールでRDP未許可
まずは、セキュリティグループのインバウンドルールにRDPプロトコルの許可を与えていない場合です。

<img width="800" alt="network" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/57a55557-b39b-1626-d300-09ae3d78bebb.png">

以下の通り、セキュリティグループのインバウンドルールに問題がある旨、回答してくれます。

<img width="800" alt="network" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/22cebe81-3d49-7419-6ca6-9873da2279b2.png">

### パターン２：ネットワークACLのインバウンドルールでRDP未許可
次は、ネットワークACLのインバウンドルールでRDPの許可を設定していない場合です。

<img width="800" alt="network" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/a84ac325-d689-25b0-339b-0722fb0a8d7f.png">

以下の通り、インバウンドルールに問題があることを回答してくれます。

<img width="800" alt="network" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/60ce7c6d-9729-cbe4-15e0-381b4e986583.png">

### パターン３：ネットワークACLのアウトバウンドルールでRDP未許可
次は、ネットワークACLのアウトバウンドルールでRDPの許可を設定していない場合です。

<img width="800" alt="network" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/f52711d2-1bcc-8d39-c438-9df641b21c72.png">

以下の通り、アウトバウンドルールに問題があることを回答してくれます。

<img width="800" alt="network" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/2ba5b961-4da4-5e21-c462-3f02e38c7feb.png">

Reachability Analyzer の機能と Amazon Q が連携することにより、ネットワークでトラブルが発生した際に、簡単に調査することができるようになりました。今後、他の機能と Amazon Q が連携することにより、色々なトラブル対応が容易に実施することができるようになる未来が期待できそうです。


## ４．５　トラブル対応（コンソールエラー対応）
AWSコンソール上でエラーが発生した場合に、トラブル対応をサポートしてくれる機能もあります。[Troubleshoot console errors with Amazon Q](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/troubleshoot-console-errors.html) で、エラー発生時に「 Troubleshoot with Amazon Q 」というボタンが表示されるので、これを押すと、回答を受けれます。プレビューリリース中は米国西部 (オレゴン) リージョンで利用可能です。

<img width="800" alt="Troubleshoot" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/14278c08-fd71-5cd5-a655-cd375faadeed.png">

上記のエラーは、「停止保護」設定を入れたEC2インスタンスを停止しようとしているために発生しています。

<img width="800" alt="Troubleshoot" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/4896f525-9adf-1d1e-f4c4-527d27d951e4.png">

「 Troubleshoot with Amazon Q 」ボタンを押すと、以下の画面が表示されます。原因の分析と解決策を提示してくれます。

<img width="800" alt="Troubleshoot" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/43fa4bd1-63f5-5b2f-8070-e8de828d24a1.png">

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|インスタンス i-034ca15a75cb***** の 停止 に失敗しました The instance 'i-034ca15a75cb*****' may not be stopped. Modify its 'disableApiStop' instance attribute and try again.|インスタンス i-034ca15a75cb***** の停止に失敗しました インスタンス 'i-034ca15a75cb*****' を停止できない可能性があります。 「disableApiStop」インスタンス属性を変更して、再試行してください。|
|分析|The instance appears to have its "disableApiStop" attribute enabled, which prevents it from being stopped through the EC2 API or AWS Management Console. This attribute must first be disabled on the instance before it can be stopped programmatically or through the console.|インスタンスの「disableApiStop」属性が有効になっているようです。これにより、EC2 API または AWS マネジメント コンソールを介してインスタンスを停止できなくなります。この属性は、プログラムまたはコンソールを通じてインスタンスを停止する前に、まずインスタンスで無効にする必要があります。|
|解決|Amazon Q recommends the following steps to resolve your error<br><br>To resolve this issue, follow these steps:<br><br>Use the describe-instance-attribute AWS CLI command to get the current value of the 'disableApiStop' attribute for instance 'i-034ca15a75cb*****':<br><br>aws ec2 describe-instance-attribute --instance-id i-034ca15a75cb***** --attribute disableApiStop<br><br>Use the modify-instance-attribute AWS CLI command to set the 'disableApiStop' attribute to false for instance 'i-034ca15a75cb*****':<br><br>aws ec2 modify-instance-attribute --instance-id i-034ca15a75cb***** --disable-api-stoppage "false"<br><br>Retry stopping the instance 'i-034ca15a75cb*****' through the EC2 console.|Amazon Q は、エラーを解決するために次の手順を推奨します。<br><br>この問題を解決するには、次の手順に従います。<br><br>description-instance-attribute AWS CLI コマンドを使用して、インスタンス「i-034ca15a75cb*****」の「disableApiStop」属性の現在の値を取得します。<br><br>aws ec2 describe-instance-attribute --instance-id i-034ca15a75cb***** --attribute disableApiStop<br><br>edit-instance-attribute AWS CLI コマンドを使用して、インスタンス「i-034ca15a75cb*****」の「disableApiStop」属性を false に設定します。<br><br>aws ec2 modify-instance-attribute --instance-id i-034ca15a75cb***** --disable-api-stoppage "false"<br><br>EC2 コンソールからインスタンス「i-034ca15a75cb*****」の停止を再試行します。|

対象の EC2インスタンスの状態を確認して、「停止保護」が設定されている事を認識し、それを解決する為にCLIで実行するコマンドを提示してくれています。環境に合わせた解決策まで提示してくれるのが非常に良いですね。

ただ、回答してもらったコマンドをそのまま実行すると、「Unknown options: --disableapistop, false」と表示されてエラーとなりました。一応、ユーザーガイド「[インスタンスの停止と起動](https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection)」に記載のある「aws ec2 modify-instance-attribute --instance-id i-034ca15a75cb***** --no-disable-api-stop」というコマンドで停止保護を解除できたことは補足しておきます。

単純に一般的な回答を返すのではなく、ユーザーの環境の状態から解決策を提示してくれるこの機能は、今後期待したい機能ではあります。まだプレビュー期間ということですが、今後の進化に期待したいです。


## ４．６　トラブル対応（サポート問合せ）
最終的にサポートに問合せたい場合、Amazon Q が問合せを作成してくれる機能があります。[Chat with AWS Support](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/support-chat.html) という機能で、以下のようにサポートに問合せたい旨を質問すると、入力内容を検討して回答してくれます。内容に問題なければ、そのまま起票できてしまう訳です。

<img width="400" alt="Support" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/e089ed36-1fb3-c733-4339-9ac5e14167e9.png">

| 区分 | 英語（原文） |　日本語訳　|
|:-----------|:-----------|:-----------|
|質問|I am unable to connect to my bastion instance. I have tried restarting it as well as generating new key pairs but still nothing works. This started this morning after a planned deployment. I can confirm that no other network related changes were made. Can I talk to someone?|Bastion インスタンスに接続できません。再起動したり、新しいキーペアを生成したりしてみましたが、まだ何も機能しません。これは計画された展開の後、今朝始まりました。他にネットワーク関連の変更が加えられていないことが確認できました。誰かに話してもいいですか？|
|回答|Sure, I've drafted the following support case for you. Review details and make required changes before continuing. I will also add our recent conversation to the case description once submitted.|もちろん、私はあなたのために次のサポートケースの草案を作成しました。続行する前に詳細を確認し、必要な変更を加えてください。また、提出され次第、最近の会話をケースの説明に追加します。|

サポートの起票では、何を入力すればよいか悩む場面もあると思いますが、これでそのハードルは低くなるのではないでしょうか。

## ４．７　利用した Amazon Q サービスのまとめ
今回EC2構築＆トラブル対応の検証に利用したサービスを以下にまとめます。

| 章 |対応 | 内容 | 内容 |
|:-----------|:-----------|:-----------|:-----------|
|4.1|リージョン選定|[Amazon Q in the console](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/q-in-console.html)|Amazon Q パネルのテキストバーで質問する機能。|
|4.2|ネットワーク環境構築|[Amazon Q in the console](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/q-in-console.html)|Amazon Q パネルのテキストバーで質問する機能。|
|4.3|EC2起動|[Amazon Q in the console](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/q-in-console.html)|Amazon Q パネルのテキストバーで質問する機能。|
|4.4|トラブル対応<br>（ネットワーク）|[Amazon Q network troubleshooting](https://docs.aws.amazon.com/ja_jp/vpc/latest/reachability/amazon-q-network-troubleshooting.html)|VPC で実行されるアプリケーションのネットワーク接続の問題のトラブルシューティング機能<br>※米国東部 (バージニア北部) リージョンでのみ利用可能。|
|4.5|トラブル対応<br>（コンソールエラー対応）|[Troubleshoot console errors with Amazon Q](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/troubleshoot-console-errors.html) |AWS サービスの操作中に発生するエラー (アクセス許可の不足、誤った設定、サービス制限の超過など) をトラブルシューティングできます。<br>※米国西部 (オレゴン) リージョンでのみ利用可能|
|4.6|トラブル対応<br>（サポート問合せ）|[Chat with AWS Support](https://docs.aws.amazon.com/ja_jp/amazonq/latest/aws-builder-use-ug/support-chat.html)|Amazon Q を使用してサポートケースを作成し、AWS サポートセンターコンソールを含む AWS マネジメントコンソールのどこからでも AWS サポートに問い合わせることができます。|

# ５．まとめ
この記事では EC2構築＆トラブル対応を実施する場面を想定して Amazon Q の機能について説明をしてきました。Amazon Q の機能は多岐に渡るので、まずは分かりやすい状況から理解を進めて頂ければと思いました。いくつのかの場面では思ったような回答が返ってきていませんが、プレビュー期間中ということで、今後に期待しています。

Amazon Q がスター・トレックの Q のような全知全能の存在に近づくことを楽しみにしています。

<img width="400" alt="Troubleshoot" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2253105/0945351e-85e0-20d5-ad68-5c578bd99cbc.jpeg">