見出し画像

【全999問(601~700)】AWS認定ソリューションアーキテクトアソシエイト【AWS Certified Solutions Architect - Professional】SAP-C02の練習問題集と解析

◐601.ある企業がオンプレミスのリソースをAWSに移行する必要があります。現在の環境は、合計40TBのストレージを持つ100台の仮想マシン(VM)で構成されています。ほとんどのVMはビジネスアワー中のみサポートする機能を持っているため、オフラインにすることができますが、一部はミッションクリティカルであるため、ダウンタイムを最小限に抑える必要があります。オンプレミスネットワークの管理者は、移行のために10 Mbpsのインターネット帯域幅を用意しましたが、ネットワークスループットは上限に達しており、増加させるのはコストがかかります。ソリューションアーキテクトは、次の3ヶ月以内に移行を完了するためのソリューションを設計する必要があります。

選択肢: A. 1 GbpsのAWS Direct Connect接続を設定します。次に、プライベート仮想インターフェースをプロビジョニングし、AWS Server Migration Service (SMS) を使用して、VMをAmazon EC2に移行します。

B. AWS Application Discovery Serviceを使用して各アプリケーションを評価し、AWSサービスまたはAWS Marketplaceソリューションを使用してリファクタリングと最適化の方法を決定します。

C. VMをローカルでエクスポートし、最もミッションクリティカルなサーバーから始めます。エクスポート後、AWS Transfer for SFTPを使用して、各VMをAmazon S3に安全にアップロードします。VM Import/Exportを使用して、VMをAmazon EC2にインポートします。

D. ミッションクリティカルなVMをAWS SMSで移行します。他のVMをローカルでエクスポートし、AWS Snowballを使用してAmazon S3に転送します。VM Import/Exportを使用して、VMをAmazon EC2にインポートします。

正解: A

解説:

  • A. 1 GbpsのAWS Direct Connect接続を使用することで、オンプレミスとAWS間のデータ転送速度を大幅に向上させることができます。これにより、大量のデータを迅速に移行でき、AWS Server Migration Service (SMS)を使用してVMをAmazon EC2に移行するのに必要な時間が短縮されます。この方法は、ネットワークスループットの制約を回避し、移行の要件を満たすのに適しています。


◐602.ある会社が遺伝子レポーティングデバイスを開発しています。このデバイスは、研究者が多様なサンプルデータを収集するのを支援するために、ゲノムデータを収集します。デバイスは毎秒8 KBのゲノムデータをデータプラットフォームに送信し、データプラットフォームはこのデータを処理・分析して研究者に情報を提供する必要があります。データプラットフォームは以下の要件を満たす必要があります:

  • インバウンドのゲノムデータのほぼリアルタイムの分析を提供する

  • データが柔軟で並行性があり、耐久性があることを保証する

  • 処理結果をデータウェアハウスに提供する

どの戦略をソリューションアーキテクトが採用すれば、これらの要件を満たすことができますか?

選択肢:

A. Amazon Kinesis Data Firehoseを使用してインバウンドセンサーデータを収集し、Kinesisクライアントでデータを分析し、結果をAmazon RDSインスタンスに保存します。

B. Amazon Kinesis Data Streamsを使用してインバウンドセンサーデータを収集し、Kinesisクライアントでデータを分析し、結果をAmazon Redshiftクラスターに保存します(Amazon EMRを使用)。

C. Amazon S3を使用してデバイスデータを収集し、Amazon SQSからデータを分析し、結果をAmazon Redshiftクラスターに保存します。

D. Amazon API Gatewayを使用してリクエストをAmazon SQSキューに入れ、AWS Lambda関数でデータを分析し、結果をAmazon Redshiftクラスターに保存します(Amazon EMRを使用)。

正解: B

解説:

B. Amazon Kinesis Data Streamsを使用してインバウンドセンサーデータを収集し、Kinesisクライアントでデータを分析し、結果をAmazon Redshiftクラスターに保存します(Amazon EMRを使用)。

  • 理由: Amazon Kinesis Data Streamsは、データをリアルタイムで収集し、処理するためのサービスです。これにより、ほぼリアルタイムでデータを分析できます。Kinesis Data StreamsとAmazon Redshiftを組み合わせることで、スケーラブルで並行性のあるデータ処理が可能です。さらに、Amazon EMRを使用してデータ処理の複雑なクエリを実行し、その結果をAmazon Redshiftに保存することで、高度なデータ分析とデータウェアハウジングの要件を満たすことができます。

A. Amazon Kinesis Data Firehoseは、データのストリーミングとリアルタイム配信に適していますが、データ分析の機能は限られています。また、Kinesis Data FirehoseはAmazon RDSには直接データを保存できないため、要件には合いません。

C. Amazon S3はデータの保存に適していますが、リアルタイムのデータ処理や分析には適していません。また、Amazon SQSとKinesisの組み合わせもリアルタイムの分析には適していない可能性があります。

D. Amazon API GatewayとAWS Lambdaを組み合わせる方法は、リアルタイムのデータ処理には向いていますが、データのスケーラビリティと並行処理の要件を満たすのは難しいです。また、Amazon API Gatewayは大量のデータ処理には適していません。


◐603.ある会社がAWSで運用している内部アプリケーションを使用して、倉庫での出荷を追跡・処理しています。現在、システムが注文を受け取ると、スタッフに出荷に必要な情報をメールで送信しています。パッケージが出荷されると、スタッフがメールに返信し、注文が「出荷済み」とマークされます。会社はメールの使用をやめ、サーバーレスアーキテクチャに移行したいと考えています。

メールを使わずにサーバーレスアーキテクチャを実現するには、どのアーキテクチャソリューションが適切ですか?

選択肢:

A. AWS Batchを使用してパッケージ出荷に必要なタスクを設定します。AWS BatchがAWS Lambda関数をトリガーして、出荷ラベルを作成して印刷します。ラベルがスキャンされ、倉庫を出ると、別のLambda関数がプロセスを次のステップに進めます。

B. 新しい注文が作成されると、注文情報をAmazon SQSに保存します。AWS Lambdaがキューを5分ごとにチェックして、必要な作業を処理します。出荷が必要な注文があると、Lambdaが倉庫でラベルを印刷します。ラベルがスキャンされると、Amazon EC2インスタンスがAmazon SQSを更新します。

C. アプリケーションを更新して、新しい注文情報をAmazon DynamoDBに保存します。新しい注文が作成されると、AWS Step Functionsワークフローをトリガーし、注文を「進行中」とマークし、倉庫にパッケージラベルを印刷します。ラベルがスキャンされて処理が完了すると、アプリケーションがAWS Lambda関数をトリガーし、注文を「出荷済み」とマークし、ワークフローを完了します。

D. 新しい注文情報をAmazon EFSに保存します。インスタンスがNFSから新しい情報を取得し、倉庫のプリンターに送信します。ラベルがスキャンされると、Amazon API Gatewayがインスタンスを呼び出して、注文情報をAmazon EFSから削除します。

正解: A

解説:

A. AWS Batchを使用してパッケージ出荷に必要なタスクを設定し、AWS Lambda関数をトリガーして出荷ラベルを作成・印刷します。ラベルがスキャンされると、別のLambda関数がプロセスを次のステップに進めます。

  • 理由: AWS Batchを使用すると、複雑なタスクの処理をバッチ処理で管理でき、AWS Lambdaを使ってサーバーレスで出荷ラベルの生成や印刷を行うことができます。ラベルのスキャンが完了した後にプロセスを次のステップに進めるためのLambda関数も組み合わせることで、完全にサーバーレスのワークフローを実現できます。このアプローチにより、メールを使わずに自動化された出荷プロセスを構築できます。

B. Amazon SQSを使用するアプローチでは、リアルタイムの処理やサーバーレスのスケーラビリティが制限される可能性があり、またEC2インスタンスを利用するのはサーバーレスではありません。

C. AWS Step FunctionsとLambdaを使用するアプローチも適切ですが、AWS Batchを使用する方法に比べて、複雑なタスクのバッチ処理に対する最適な対応が難しい場合があります。

D. Amazon EFSとAPI Gatewayを使用するアプローチでは、サーバーレスの要件に合わず、EFSとインスタンスの管理が必要になるため、サーバーレスアーキテクチャには適していません。


◐604.ある企業が人気のある公開向けeコマースウェブサイトを運営しています。ユーザーベースがローカル市場から全国市場に急速に成長しています。ウェブサイトは、オンプレミスデータセンターのウェブサーバーとMySQLデータベースでホストされています。企業は、ワークロードをAWSに移行したいと考えています。ソリューションアーキテクトは、以下の要件を満たすソリューションを作成する必要があります:

  • セキュリティの向上

  • 信頼性の向上

  • 可用性の向上

  • レイテンシの削減

  • メンテナンスの削減

選択肢: A. Amazon EC2インスタンスを2つのAvailability ZoneでAuto Scalingグループの背後にApplication Load Balancerと共に使用します。

B. データベースをMulti-AZのAmazon Aurora MySQL DBクラスターに移行します。

C. 2つのAvailability ZoneでAmazon EC2インスタンスを使用して、高可用性のMySQLデータベースクラスターをホストします。

D. 静的ウェブサイトコンテンツをAmazon S3にホストします。S3 Transfer Accelerationを使用して、ウェブページの提供時のレイテンシを削減します。AWS WAFを使用してウェブサイトのセキュリティを向上させます。

E. 静的ウェブサイトコンテンツをAmazon S3にホストします。Amazon CloudFrontを使用して、ウェブページの提供時のレイテンシを削減します。AWS WAFを使用してウェブサイトのセキュリティを向上させます。

F. データベースを単一AZのAmazon RDS for MySQL DBインスタンスに移行します。

正解: DEF

解説:

  • D. 静的ウェブサイトコンテンツをAmazon S3にホストし、Amazon CloudFrontを使用してレイテンシを削減することで、グローバルなユーザーに対して高速なコンテンツ配信を実現します。AWS WAFを使用してセキュリティを強化します。

  • B. データベースをMulti-AZのAmazon Aurora MySQL DBクラスターに移行することで、可用性と信頼性を向上させ、障害時の自動フェイルオーバーを実現します。

  • F. データベースを単一AZのAmazon RDS for MySQL DBインスタンスに移行することで、管理の手間を削減しますが、信頼性と可用性の面ではMulti-AZ構成ほどの強化はされません。


◐605.ある会社がモバイルゲームを開発しました。ゲームのバックエンドは、オンプレミスのデータセンターにある複数の仮想マシンで運用されています。ビジネスロジックはREST APIを通じて公開されており、プレイヤーセッションデータは中央ファイルストレージに保存されています。バックエンドサービスは、スロットリングやライブとテストトラフィックの区別のために異なるAPIキーを使用しています。

ゲームのバックエンドへの負荷は一日を通じて変動します。ピーク時にはサーバーの容量が不足し、プレイヤーセッションデータを取得する際に遅延の問題もあります。経営陣は、ゲームの変動する負荷に対応し、低遅延のデータアクセスを提供できるクラウドアーキテクチャを提案するようにソリューションアーキテクトに依頼しました。APIモデルは変更しないものとします。

この要件を満たすソリューションはどれですか?

選択肢:

A. REST APIをNetwork Load Balancer (NLB)を使って実装します。ビジネスロジックをNLBの背後にあるAmazon EC2インスタンスで実行し、プレイヤーセッションデータをAmazon Aurora Serverlessに保存します。

B. REST APIをApplication Load Balancer (ALB)を使って実装します。ビジネスロジックをAWS Lambdaで実行し、プレイヤーセッションデータをAmazon DynamoDBのオンデマンドキャパシティで保存します。

C. REST APIをAmazon API Gatewayを使って実装します。ビジネスロジックをAWS Lambdaで実行し、プレイヤーセッションデータをAmazon DynamoDBのオンデマンドキャパシティで保存します。

D. REST APIをAWS AppSyncを使って実装します。ビジネスロジックをAWS Lambdaで実行し、プレイヤーセッションデータをAmazon Aurora Serverlessに保存します。

正解: A

解説:

A. REST APIをNetwork Load Balancer (NLB)を使って実装し、ビジネスロジックをAmazon EC2インスタンスで実行し、プレイヤーセッションデータをAmazon Aurora Serverlessに保存します。

  • 理由: NLBは高いパフォーマンスを提供し、TCPトラフィックの負荷分散に適しています。Amazon EC2インスタンスでビジネスロジックを実行することで、既存のAPIモデルに合わせて構成が容易です。また、Amazon Aurora Serverlessを使用することで、データベースのスケーリングと高可用性を確保し、ピーク時の負荷にも対応できます。

B. ALBとAWS Lambdaを使用するオプションは、サーバーレスの利点を活かしつつ、APIモデルの変更が可能であれば適しているかもしれませんが、APIモデルの変更ができない場合には適していません。

C. Amazon API GatewayとAWS Lambdaを使用するオプションも、サーバーレスの利点がありますが、APIモデルを変更せずにそのまま適用するのが難しい場合があります。

D. AWS AppSyncは主にGraphQL APIのためのものであり、REST APIの要件には適していません。また、Aurora Serverlessも適切ですが、APIモデルを変更せずに直接対応するには最適ではありません。


◐606.ある企業が、開発者にAWS Marketplaceを通じてサードパーティ製ソフトウェアを購入できるようにしたいと考えています。企業はAWS Organizationsのアカウント構造を使用しており、各組織単位(OU)に共有サービスアカウントがあり、調達マネージャーが使用します。調達チームのポリシーによれば、開発者は承認されたリストからのみサードパーティソフトウェアを取得し、Private Marketplaceを利用してこの要件を満たす必要があります。調達チームはPrivate Marketplaceの管理を「procurement-manager-role」という名前のロールに制限したいと考えています。このロールは調達マネージャーが引き受けることができるようにし、他のIAMユーザー、グループ、ロール、およびアカウント管理者にはPrivate Marketplace管理アクセスを拒否する必要があります。

選択肢: A. すべてのAWSアカウントに「procurement-manager-role」という名前のIAMロールを作成します。このロールにPowerUserAccess管理ポリシーを追加します。すべてのAWSアカウントのIAMユーザーおよびロールに対して、AWSPrivateMarketplaceAdminFullAccess管理ポリシーに対するアクセスを拒否するインラインポリシーを適用します。

B. すべてのAWSアカウントに「procurement-manager-role」という名前のIAMロールを作成します。このロールにAdministratorAccess管理ポリシーを追加します。AWSPrivateMarketplaceAdminFullAccess管理ポリシーを含む権限境界を定義し、すべての開発者ロールに適用します。

C. すべての共有サービスアカウントに「procurement-manager-role」という名前のIAMロールを作成します。このロールにAWSPrivateMarketplaceAdminFullAccess管理ポリシーを追加します。組織ルートレベルのSCPを作成し、Private Marketplaceを管理する権限を「procurement-manager-role」以外のすべてのユーザーに対して拒否します。さらに、組織ルートレベルのSCPを作成し、組織内のすべてのユーザーに対して「procurement-manager-role」を作成する権限を拒否します。

D. すべての開発者が使用するAWSアカウントに「procurement-manager-role」という名前のIAMロールを作成します。このロールにAWSPrivateMarketplaceAdminFullAccess管理ポリシーを追加します。OrganizationsでSCPを作成し、Private Marketplaceを管理する権限を「procurement-manager-role」以外のすべてのユーザーに対して拒否します。このSCPを組織内のすべての共有サービスアカウントに適用します。

正解: D

解説:

D. すべての開発者アカウントに「procurement-manager-role」というIAMロールを作成し、そのロールにAWSPrivateMarketplaceAdminFullAccess管理ポリシーを追加します。OrganizationsでSCP(Service Control Policy)を作成し、Private Marketplaceを管理する権限を「procurement-manager-role」以外のすべてのユーザーに対して拒否するように設定します。このSCPをすべての共有サービスアカウントに適用することで、調達マネージャー以外のすべてのユーザーに対するアクセスを制限し、Private Marketplaceの管理を適切に制御できます。


◐607.ソリューションアーキテクトは、新しいアプリケーションのデータストレージと取得アーキテクチャを設計しています。このアプリケーションは、世界中のデバイスから毎分数百万件の小さなレコードを取り込みます。各レコードは4KB未満で、耐久性のある場所に保存し、低レイテンシで取得する必要があります。データは一時的であり、会社は120日間のみデータを保存する必要があり、その後はデータを削除できます。

ソリューションアーキテクトは、1年間のストレージ要件が約10〜15 TBであると計算しました。最もコスト効率が良く、設計要件を満たすストレージ戦略はどれですか?

選択肢:

A. アプリケーションを設計して、各受信レコードをAmazon S3バケットに単一の.csvファイルとして保存し、インデックス付きの取得を可能にします。ライフサイクルポリシーを設定して、120日を超えたデータを削除します。

B. アプリケーションを設計して、各受信レコードをスケールに適切に構成されたAmazon DynamoDBテーブルに保存します。DynamoDBのタイム・トゥ・リブ (TTL) 機能を設定して、120日を超えたレコードを削除します。

C. アプリケーションを設計して、各受信レコードをAmazon RDS MySQLデータベースの単一テーブルに保存します。毎晩のcronジョブを実行して、120日を超えたレコードを削除するクエリを実行します。

D. アプリケーションを設計して、受信レコードをバッチ処理してAmazon S3バケットに書き込みます。オブジェクトのメタデータを更新して、バッチ内のレコードのリストを含め、Amazon S3のメタデータ検索機能を使用してデータを取得します。120日後にデータを削除するライフサイクルポリシーを設定します。

正解: B

解説:

B. アプリケーションを設計して、各受信レコードをスケールに適切に構成されたAmazon DynamoDBテーブルに保存し、DynamoDBのTTL機能を設定して、120日を超えたレコードを削除します。

  • 理由: DynamoDBは、スケーラブルで高パフォーマンスなNoSQLデータベースであり、データが数百万件のレコードを取り込む大規模なスケールにも対応できます。また、TTL機能を使用することで、データが自動的に指定した期間(この場合は120日)を超えると削除されるため、データの管理が簡単になります。DynamoDBは低レイテンシのデータアクセスを提供し、コスト効率の良いストレージを実現します。

A. S3に各レコードを単一の.csvファイルとして保存するアプローチは、管理とパフォーマンスの面で非効率的です。また、データ取得の際にインデックス付けや検索が難しい場合があります。

C. RDS MySQLデータベースにデータを保存するアプローチは、RDSのコストが高く、データの管理やスケーリングに関してはDynamoDBほど効果的ではありません。さらに、頻繁にデータの削除を行うためには、ストレージコストが増加する可能性があります。

D. レコードをバッチ処理してS3に保存するアプローチは、データの取得と管理が複雑であり、メタデータ検索機能の利用は効率的でない場合があります。DynamoDBの方が、特に低レイテンシでのアクセスが必要な場合にはより適しています。


◐608.会社は、新しいバージョンの人気ビデオゲームを開発し、一般公開用にダウンロード可能にしたいと考えています。新しいリリースパッケージは約5 GBのサイズです。会社は、Linuxベースの公開FTPサイトをオンプレミスのデータセンターでホストしており、既存のリリースのダウンロードを提供しています。新しいリリースは、世界中のユーザーによってダウンロードされると予想しています。会社は、ユーザーの位置に関係なく、改善されたダウンロードパフォーマンスと低い転送コストを提供するソリューションを求めています。

どのソリューションがこれらの要件を満たしますか?

選択肢:

A. ゲームファイルをAmazon EBSボリュームに保存し、それをAuto Scalingグループ内のAmazon EC2インスタンスにマウントします。EC2インスタンスでFTPサービスを構成し、Auto Scalingグループの前にApplication Load Balancerを設定します。ユーザーがパッケージをダウンロードするためのゲームダウンロードURLを公開します。

B. ゲームファイルをAmazon EFSボリュームに保存し、それをAuto Scalingグループ内のAmazon EC2インスタンスにアタッチします。各EC2インスタンスでFTPサービスを構成し、Auto Scalingグループの前にApplication Load Balancerを設定します。ユーザーがパッケージをダウンロードするためのゲームダウンロードURLを公開します。

C. Amazon Route 53とAmazon S3バケットをウェブサイトホスティング用に構成します。ゲームファイルをS3バケットにアップロードします。Amazon CloudFrontをウェブサイト用に使用します。ユーザーがパッケージをダウンロードするためのゲームダウンロードURLを公開します。

D. Amazon Route 53とAmazon S3バケットをウェブサイトホスティング用に構成します。ゲームファイルをS3バケットにアップロードします。S3バケットに対してRequester Paysを設定します。ユーザーがパッケージをダウンロードするためのゲームダウンロードURLを公開します。

正解: C

解説:

C. Amazon Route 53とAmazon S3バケットをウェブサイトホスティング用に構成し、ゲームファイルをS3バケットにアップロードします。Amazon CloudFrontをウェブサイト用に使用します。ユーザーがパッケージをダウンロードするためのゲームダウンロードURLを公開します。

  • 理由: Amazon S3は、静的コンテンツのホスティングに非常に適しており、Amazon CloudFrontはコンテンツ配信ネットワーク (CDN) を提供して世界中のユーザーに低レイテンシのダウンロード体験を実現します。S3とCloudFrontの組み合わせにより、パフォーマンスが向上し、コストが最適化されます。また、Route 53はドメイン名の管理に役立ちます。このアプローチは、グローバルに分散したユーザーに対して一貫したパフォーマンスを提供します。

A.B. は、オンプレミスのFTPサービスやEC2インスタンスを使用するため、スケーリングとパフォーマンスの管理が複雑になり、コストも高くなる可能性があります。

D. は、Requester Paysオプションを設定すると、ダウンロードするユーザーが費用を負担することになりますが、これによりユーザーの利用体験が悪化する可能性があります。また、CloudFrontを使用することでパフォーマンスとコスト効率が改善されるため、Dのアプローチは最適ではありません。


◐609.ある会社がアートワークのオークションサービスを提供しており、ユーザーは北米とヨーロッパに広がっています。会社はアプリケーションをus-east-1リージョンのAmazon EC2インスタンスでホストしています。アーティストは、モバイルフォンから大サイズの高解像度画像ファイルを中央のAmazon S3バケットにアップロードしますが、ヨーロッパのユーザーは画像アップロードのパフォーマンスが遅いと報告しています。

選択肢: A. アプリケーションをS3のマルチパートアップロードを使用するように再デプロイします。

B. Amazon CloudFrontディストリビューションを作成し、アプリケーションをカスタムオリジンとして設定します。

C. バケットをS3 Transfer Accelerationを使用するように設定します。

D. EC2インスタンス用にAuto Scalingグループを作成し、スケーリングポリシーを作成します。

正解: C

解説:

C. バケットをS3 Transfer Accelerationを使用するように設定します。S3 Transfer Accelerationを使用することで、Amazon CloudFrontのエッジロケーションを介して、地理的に離れた場所からのデータアップロードのパフォーマンスを改善できます。これにより、ヨーロッパのユーザーが画像をアップロードする際の速度が向上し、全体的なパフォーマンスが改善されます。


◐610.新しいスタートアップがAWS Lambdaを主要なコンピューティングリソースとして使用するサーバーレスアプリケーションを運用しています。アプリケーションの新しいバージョンは、すべてのユーザーに展開する前にサブセットのユーザーに利用可能にする必要があります。開発者はまた、デプロイメントを中止し、簡単なロールバックメカニズムにアクセスする必要があります。ソリューションアーキテクトは、CodeDeployを使用して新しいバージョンの変更を展開することを決定しました。

どのCodeDeploy設定をソリューションアーキテクトは使用すべきですか?

選択肢:

A. 青/緑デプロイメント(Blue/Green Deployment)

B. 線形デプロイメント(Linear Deployment)

C. カナリアデプロイメント(Canary Deployment)

D. 一度に全てデプロイメント(All-at-Once Deployment)

正解: D

解説:

D. 一度に全てデプロイメント(All-at-Once Deployment)

  • 理由: CodeDeployの「一度に全てデプロイメント」設定は、新しいバージョンのコードをすべてのインスタンスに一度にデプロイします。この設定は、サーバーレスアプリケーションやLambda関数で使用する場合、迅速なデプロイが可能で、すぐに変更を全ユーザーに適用できます。迅速な展開が必要で、簡単なロールバックが可能である場合、この設定が適しています。問題の要件では、デプロイメントの中止とロールバックが容易である必要があるため、この設定が最も適していると考えられます。

A. 青/緑デプロイメント(Blue/Green Deployment)は、新しいバージョンを既存のバージョンとは異なる環境で実行し、トラフィックを新しい環境に切り替える方法ですが、サーバーレスアプリケーションには通常適していません。

B. 線形デプロイメント(Linear Deployment)は、新しいバージョンを段階的にデプロイする方法ですが、全ユーザーへの迅速な展開には適していません。

C. カナリアデプロイメント(Canary Deployment)は、新しいバージョンを少数のユーザーに最初にデプロイし、その後全体に展開する方法で、段階的なロールアウトが可能ですが、全ユーザーへの迅速な展開には向いていません。


ここから先は

110,245字
この記事のみ ¥ 500

この記事が気に入ったらサポートをしてみませんか?