Deploy a container instance in AWS

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

Amazon Elastic Container Service (Amazon ECS) is a highly scalable, fast, container management service that makes it easy to run, stop, and manage your containers. You can host your containers on a serverless infrastructure that is managed by Amazon ECS by launching your services or tasks on AWS Fargate. For more information on Fargate, see AWS Fargate for Amazon ECS.

Step 1: Sign in to AWS account

Sign in to the AWS portal.

If you do not have an AWS account, then register for a new AWS account.

Step 2: Create a virtual private cloud

You can use Amazon Virtual Private Cloud (Amazon VPC) to launch AWS resources into a virtual network that you've defined. We strongly suggest that you launch your container instances in a VPC.

If you have a default VPC, you can skip this section and move to the next task, Create a security group. To determine whether you have a default VPC, see Supported Platforms in the Amazon EC2 Console in the Amazon EC2 User Guide. Otherwise, you can create a nondefault VPC in your account using the steps below.

For information about how to create a VPC, see Create a VPC only in the Amazon VPC User Guide, and use the following table to determine what options to select.

Option Value
Resources to create VPC only
Name Optionally provide a name for your VPC
IPv4 CIDR block IPv4 CIDR manual input
The CIDR block size must have a size between /16 and /28
IPv6 CIDR block No IPv6 CIDR block
Tenancy Default

For more information about Amazon VPC, see What is Amazon VPC? in the Amazon VPC User Guide.

Step 3: Create a security group

Security groups act as a firewall for associated container instances, controlling both inbound and outbound traffic at the container instance level. You can add rules to a security group that enable you to connect to your container instance from your IP address using SSH. You can also add rules that allow inbound and outbound HTTP and HTTPS access from anywhere. Add any rules to open ports that are required by your tasks. Container instances require external network access to communicate with the Amazon ECS service endpoint.

For information about how to create a security group, see Create a security group in the Amazon EC2 User Guide and use the following table to determine what options to select.

Option Value
Region The same Region in which you created your key pair
Name A name that is easy for you to remember, such as ecs-instances-default-cluster
VPC The default VPC (marked with "(default)"
Note
If your account supports Amazon EC2 Classic, select the VPC that you created in the previous task

Step 4: Create a ECS Cluster

On the AWS portal homepage, search "ECS" in the search box and select "Elastic Container Service". Or open the console at https://console.aws.amazon.com/ecs/v2.

Search ECS

Select "Create cluster".

Create cluster

Enter the "Cluster name". Select only "AWS Fargate (serverless)" in Infrastructure section.

Create cluster values

Leave the other values as their defaults, then select Create.

Step 5: Create a Task Definition

After the cluster is created, select Task Definitions.

Create task definition

Select "Create new task definition", then select "Create new task definition".

Create new task definition

On the Task definition configuration section, enter the value for Task definition family.

Task definition configuration section

On the Infrastructure requirements section, enter the following values for Launch type, CPU, Memory, Task role, and Task execution role.

  • Launch type: Only AWS Fargate
  • CPU: 1 vCPU
  • Memory: 2 GB
  • Task role: ecsTaskExecutionRole
  • Task execution role: ecsTaskExecutionRole

Infrastructure requirements

On the Container - 1 section, enter the following values for Name, Image URI, Container port, Port name, and Environment variables.

  • Name: mycontainer
  • Image URI: Use ironsoftwareofficial/ironsecuredoc for the latest or specify by tag ironsoftwareofficial/ironsecuredoc:2024.7.1
  • Container port: 8080
  • Port name: 8080
  • Add Environment variables:
    • ENVIRONMENT: Production
    • HTTP_PORTS: 8080
    • IronSecureDoc_LicenseKey: YOUR-LICENSE-KEY

For IronSecureDoc_LicenseKey, it is not recommended to add directly into Environment variables for security. It is recommended to retrieve the environment file from an encrypted Amazon S3 bucket, see Pass sensitive data to an Amazon ECS container.

Container section

Leave the other values as their defaults, then select Create.

Step 6: Create a Service

Go back to the Clusters page > Select your cluster (IronSecureDoc).

Select your cluster

Select the "Service" tab > then select "Create".

Create service

In the Environment section, enter the following values for Compute options and Launch type.

  • Compute options: Select Launch type
  • Launch type: Select FARGATE

Service environment

In the Deployment configuration section, enter the following values for Application type, Family, Revision, Service name, and Desired tasks.

  • Application type: Select Service
  • Task definition:
    • Family: Select the created task definition ironsecuredoc
    • Revision: Select task definition revision 1 (LATEST)
  • Service name: myservice
  • Desired tasks: 1

Service deployment configuration

Please note that for networking you may need to create a VPC and a Security group if they do not exist.

Leave the other values as their defaults, then select Create.

When the deployment starts, a notification appears that indicates the deployment is in progress. Another notification is displayed when the service has been deployed.

View your service > then open the task.

Open created task

In Task Configuration, you can use the Public IP to run a curl command to check if the API is working correctly, which should return 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

Congratulations! By configuring just a few settings, you've deployed a publicly accessible application in 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
テクニカルライター

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

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

準備はいいですか?
バージョン: 2024.10 ただ今リリースされました