C# コンテナインスタンスを使用して IronSecureDoc を AWS にデプロイする

This article was translated from English: Does it need improvement?
Translated
View the article in English

Amazon Elastic Container Service (Amazon ECS) は、コンテナの実行、停止、管理を容易にする、高度にスケーラブルで高速なコンテナ管理サービスです。 AWS Fargate でサービスまたはタスクを起動することで、Amazon ECS によって管理されるサーバーレスインフラストラクチャ上でコンテナをホストできます。 Fargate の詳細については、 "Amazon ECS 向け AWS Fargate"を参照してください。

ステップ1: AWSアカウントにサインインする

AWSポータルにサインイン。

AWS アカウントをお持ちでない場合は、新しい AWS アカウントを登録してください

ステップ2: 仮想プライベートクラウドを作成する

Amazon Virtual Private Cloud (Amazon VPC) を使用すると、定義した仮想ネットワークに AWS リソースを起動できます。 コンテナ インスタンスを VPC で起動することを強くお勧めします。

デフォルトVPCをお持ちの場合は、このセクションをスキップして次のタスク"セキュリティグループの作成"に進んでください。デフォルトVPCがあるかどうかを確認するには、Amazon EC2 ユーザーガイドの"Amazon EC2 コンソールでサポートされているプラットフォーム"を参照してください。そうでない場合は、以下の手順に従ってアカウントにデフォルト以外のVPCを作成できます。

VPC の作成方法については、"Amazon VPC ユーザーガイド"の"VPC のみの作成"を参照し、次の表を使用して選択するオプションを決定してください。

オプション Value
作成するためのリソース VPCのみ
名前 オプションでVPCの名前を入力します
IPv4 CIDRブロック IPv4 CIDR手動入力
CIDRブロックサイズは/16から/28までの範囲でなければなりません
IPv6 CIDRブロック IPv6 CIDRブロックなし
賃貸借 デフォルト

Amazon VPC の詳細については、"Amazon VPC とは?"を参照してください。 Amazon VPC ユーザーガイド。

ステップ3: セキュリティグループを作成する

セキュリティ グループは、関連付けられたコンテナ インスタンスのファイアウォールとして機能し、コンテナ インスタンス レベルで受信トラフィックと送信トラフィックの両方を制御します。 SSH を使用して IP アドレスからコンテナ インスタンスに接続できるようにするルールをセキュリティ グループに追加できます。 どこからでも受信および送信の HTTP および HTTPS アクセスを許可するルールを追加することもできます。 タスクに必要なポートを開くためのルールを追加します。 コンテナインスタンスは、Amazon ECS サービスエンドポイントと通信するために外部ネットワークアクセスを必要とします。

セキュリティグループの作成方法については、"Amazon EC2 ユーザーガイド"の"セキュリティグループの作成"を参照し、次の表を使用して選択するオプションを決定してください。

オプション 価値
地域 キーペアを作成したのと同じリージョン
名前 ecs-instances-default-cluster など、覚えやすい名前
VPC デフォルトの VPC ("(default)"とマークされています)
注記
アカウントがAmazon EC2 Classicをサポートしている場合は、前のタスクで作成したVPCを選択します。

ステップ4: ECSクラスターを作成する

AWS ポータルのホームページで、検索ボックスで"ECS"を検索し、"Elastic Container Service"を選択します。 または、 https://console.aws.amazon.com/ecs/v2でコンソールを開きます。

Search ECS

"クラスターの作成"を選択します。

Create cluster

"クラスター名"を入力します。 インフラストラクチャセクションで"AWS Fargate (サーバーレス)"のみを選択します。

Create cluster values

他の値はデフォルトのままにして、 [作成]を選択します。

ステップ5: タスク定義を作成する

クラスターが作成されたら、タスク定義を選択します。

Create task definition

"新しいタスク定義の作成"を選択し、"新しいタスク定義の作成"を選択します。

Create new task definition

タスク定義構成セクションで、タスク定義ファミリの値を入力します。

Task definition configuration section

インフラストラクチャ要件セクションで、起動タイプCPUメモリタスク ロールタスク実行ロールに次の値を入力します。

  • 起動タイプ: AWS Fargateのみ
  • CPU: 1 vCPU
  • メモリ: 2 GB
  • タスクロール: ecsTaskExecutionRole
  • タスク実行ロール: ecsTaskExecutionRole

Infrastructure requirements

コンテナー - 1セクションで、名前イメージ URIコンテナー ポートポート名環境変数に次の値を入力します。

  • 名前: mycontainer
  • 画像URI: 最新版にはironsoftwareofficial/ironsecuredocを使用するか、タグironsoftwareofficial/ironsecuredoc:2024.7.1で指定します。
  • コンテナポート: 8080
  • ポート名: 8080
  • 環境変数を追加します:
    • 環境: Production
    • HTTP_PORTS: 8080
    • IronSecureDoc_LicenseKey: YOUR-LICENSE-KEY

IronSecureDoc_LicenseKeyの場合、セキュリティ上の理由から環境変数に直接追加することはお勧めしません。 暗号化された Amazon S3 バケットから環境ファイルを取得することをお勧めします。 "機密データを Amazon ECS コンテナに渡す"を参照してください。

Container section

他の値はデフォルトのままにして、 [作成]を選択します。

ステップ6: サービスを作成する

クラスター ページに戻り、クラスター (IronSecureDoc) を選択します。

Select your cluster

"サービス"タブを選択し、"作成"を選択します。

Create service

環境セクションで、コンピューティング オプション起動タイプに次の値を入力します。

  • コンピューティングオプション: Launch typeを選択
  • 起動タイプ: FARGATE選択

Service environment

デプロイメント構成セクションで、アプリケーション タイプファミリリビジョンサービス名、および必要なタスクに次の値を入力します。

  • アプリケーションの種類: Serviceを選択
  • タスク定義:
    • ファミリー: 作成されたタスク定義ironsecuredocを選択します
    • リビジョン: タスク定義リビジョン1 (LATEST)を選択します。
  • サービス名: myservice
  • 希望するタスク: 1

Service deployment configuration

ネットワークの場合、 VPCセキュリティ グループが存在しない場合は作成する必要がある場合があることに注意してください。

他の値はデフォルトのままにして、 [作成]を選択します。

デプロイメントが開始されると、デプロイメントが進行中であることを示す通知が表示されます。 サービスがデプロイされると、別の通知が表示されます。

サービスを表示し、タスクを開きます。

Open created task

タスク構成では、パブリック IP を使用して curl コマンドを実行し、API が正しく動作しているかどうかを確認できます。このコマンドはpongを返します。

curl http://18.118.166.206:8080/v1/document-services/ping
curl http://18.118.166.206:8080/v1/document-services/ping
SHELL

Public IP

おめでとうございます! いくつかの設定を行うだけで、Amazon Elastic Container Service にパブリックにアクセス可能なアプリケーションをデプロイできます。

よくある質問

ドキュメントのセキュリティのためにAWSを設定するにはどうすればよいですか?

ドキュメントのセキュリティのためにAWSを設定するには、Amazon ECSを介してコンテナインスタンスをデプロイできます。これには、仮想プライベートクラウド(VPC)の作成、セキュリティグループの設定、サーバーレスインフラストラクチャのためのAWS Fargateの使用が含まれます。IronSecureDocを統合することで、安全なドキュメント管理を確保できます。

AWSで仮想プライベートクラウド(VPC)を作成する目的は何ですか?

AWSでVPCを作成することにより、AWSリソースを論理的に分離された仮想ネットワークに起動することができます。このセットアップは、ネットワーク環境を制御することができ、IronSecureDocなどのサービスを通じてドキュメントのセキュリティを管理するために非常に重要です。

ECSのデプロイにおいてセキュリティグループを設定することがなぜ重要なのですか?

セキュリティグループを設定することは、ECSコンテナインスタンスへの受信および送信トラフィックを制御するために重要です。これは仮想ファイアウォールとして機能し、AWS上で展開されたIronSecureDocサービスに許可されたトラフィックのみが到達することを保証します。

AWS Fargateを使用してコンテナインスタンスをデプロイするにはどうすればよいですか?

AWS Fargateを使用してコンテナインスタンスをデプロイするには、まずECSクラスターを作成する必要があります。その後、CPU、メモリ、コンテナ設定などの要件を指定したタスク定義を作成します。最後に、IronSecureDocのデプロイを管理するためのサービスをECSクラスター内に作成します。

Amazon ECSでのタスク定義はどのような役割を果たしますか?

Amazon ECSでは、タスク定義はアプリケーションの設計図として機能します。これは、ローンチタイプ、CPU、メモリ、コンテナの定義など、コンテナを実行するための要件を説明します。これはIronSecureDocのようなアプリケーションをデプロイするために不可欠です。

AWSで環境変数を安全に管理するにはどうすればよいですか?

AWSでは、IronSecureDocのライセンスキーのような機密データを暗号化されたAmazon S3バケットから取得することで、環境変数を安全に管理できます。このアプローチにより、機密情報の不正アクセスから保護されます。

ECSサービスのデプロイをどのように確認できますか?

ECSサービスのデプロイを確認するには、パブリックIPを使用してcurlコマンドを実行します。例えば、curl http://:8080/v1/document-services/pingを実行することで、'pong'が返され、IronSecureDocサービスが正しく稼働していることを示します。

デプロイごとに新しいVPCとセキュリティグループを作成する必要がありますか?

デフォルトのVPCとセキュリティグループが存在しない場合は、適切なネットワークとセキュリティ設定を確保するためにそれらを作成する必要があります。この設定は、IronSecureDocのようなアプリケーションの安全な動作に不可欠です。

カーティス・チャウ
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

開発以外にも、CurtisはIoT(Internet of Things)への強い関心を持ち、ハードウェアとソフトウェアの統合方法を模索しています。余暇には、ゲームをしたりDiscordボットを作成したりして、技術に対する愛情と創造性を組み合わせています。

準備はできましたか?
Version: 2024.10 リリース