HULFT10 for Container Services の ECS on Fargate 環境構築してみた

# はじめに
こんにちは、すぎもんです:smile:

今回は、2024年6月にリリースされる「HULFT for Container Services Ver.10.1.0」の環境構築を実施してみました。

サーバーレスな環境を構築することが出来る為、運用の自動化などコンテナ化によるメリットを最大限に活かすことが可能になります。既に、EC2を利用したコンテナ版HULFTを構築された方も、今回のリリースを期にサーバーレスなHULFTに触れてみてください。

:::note info
**AWS Fargateを利用したHULFT10 for Container Servicesとは**
「2024年6月リリースVer.10.1.0」にて、「AWS Marketplace」からサブスクライブを実施する際に、従来のEC2インスタンスにコンテナ実行環境を構築する方式に加えて、新たに「AWS Fargate」を利用したサーバーレスなコンテナ運用になりました。

:::

# 今回やること

AWS Fargateを利用したHULFT10 for Container Servicesの環境構築を行います。

■オンラインマニュアル
https://www.hulft.com/help/ja-jp/HULFT-V10/CONT-SUGF/Content/HULFT_SUGF_CONT/aws_marketplace/aws_marketplace.htm

:::note info
**HULFT10 for Container Servicesの環境構築ステップ**
**１. 事前準備・設定**
　　・HULFT 10 for Container Servicesの導入に必要な情報の確認及び決定。
　　　（AWSの各種サービスの設定）
**２. サブスクライズ及びCloud Formation 1の実行**
　　・AWSのMarketplaceからのHULFT 10 for Container Servicesのサブスクライブ。
　　・Cloud Formation 1の実行。
**３. HULFT管理画面の起動とログイン**
:::

**HULFT10 for Container Servicesの環境構成**
HULFT10 for Container Servicesの環境は、**AWS CloudFormation**を利用して構築します。



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/9f904960-833a-f296-947b-d25e87d60a35.png)



# 1.事前準備設定
HULFT10 for Container ServicesをAWS Marketplaceからサブスクライブ前に、下記の事前準備を行います。

**①導入ユーザーの権限設定（必須）**
様々なリソースの作成、ECSサービス登録のためにIAM設定を行うためAdministratorAccessの実行権限が必要になります。事前にIAMロールとして CloudFormationサービスで利用できる Admin権限のロールを作成してください。


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/545ccfe9-52c2-5c75-4f06-9ca4640da683.png)


**②サービスクォータの確保（必須）**
CloudFormationで作成するリソースの中にはクォータが定められているものがあります。CloudFormationで作成されるリソースのうち、初期クォータ数が少なく枯渇しやすい下記リソースについては、リソースに余裕があることをご確認ください。

| サービス名 |作成数|サービスクォータ     | 
| --- | --- | --- | 
|VPC|1|VPCs per Region| 
|Internet gateway|1|Internet gateway per Region| 
|NATgateway|1|NAT gateways per Availability Zone| 
|Elastic IP|1|Ec2-VPC Elastic IPs| 
|Amazon Simple Storage Service(Amazon S3)|2|General purpose buckets| 

**③導入に必要な情報の確認**
CloudFormationの実行時に必要な情報を、導入作業の前に決定しておきます。

:::note warn
[オンラインマニュアル](https://www.hulft.com/help/ja-jp/HULFT-V10/CONT-SUGF/Content/HULFT_SUGF_CONT/aws_marketplace/aws_after_introduction_settings.htm?Highlight=S3)より、「Amazon S3を使用するための設定」や「HULFT10への接続を許可するIPリストの更新」について、併せてご確認ください
:::

**CloudFormation1実行に必要なパラメータ**

**1. システム名の決定**　（必須）
任意のシステム名を決定します。CloudFormationで作成するAWSのリソース名およびDNS名に使用します。
所属する組織の運用ルールに則って決めてください。

**2. 新規作成するVPCのCIDRの確認**　（必須）
CloudFormationで新規に作成するのVPCのアドレス空間を指定する必要があります。アドレス空間は最小 /24で確保し、ほかのVPCやオンプレミスのCIDRと**重複**しないようにする必要があります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/f98032b5-4ac5-e978-6fc6-2f8acf893b9e.png)


**3. S3接続の準備**　（必須）
プラットフォームにAWS Fargate（以降、Fargate）を使用してコンテナを動かす場合、HULFT10 for Container Servicesでの配信先および集信先には、S3を使用します。
S3接続の準備として、以下が必要です。
・配信先および集信先としてのS3バケットの作成
・ECSタスクがS3にアクセスするために使用するIAMポリシーの作成。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/7e031e19-16a6-1349-d6b6-10654b9580a5.png)


**4. Route53へのホストゾーン登録**　（必須）
HULFT10 for Container Servicesをホストとするためのドメインを、Route 53でホストゾーンとして登録および管理しておく必要があります。HULFT10導入時にACMを利用してTLSの証明書を発行してください。
これにより、インターネットに公開するホスト名として使用できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/08fb37fc-100e-b51c-4f4e-dd00019d29b5.png)


**5. HULFT10への接続を許可するIPリストの確認**　（必須）
HULFT10 for Container Servicesに接続許可するIPをHULFT10導入時に設定します。**事前に接続を許可するIPを確認**しておく必要があります。

接続には以下の2種類があります。
・HULFT管理コンソールへの接続
・HULFT転送受付時の接続

接続の制限をかけない場合は接続を許可するIPに0.0.0.0/0を設定しますが、セキュリティを確保するために接続許可の設定を推奨します。導入時にIPを3つまで指定できます。うち1つ目は入力必須ですが、2つ目以上の入力は任意です。


**6. HULFT8導入VPCID、CIDR情報**　（任意）
CloudFormationで新規に作成したVPCとPeering接続を行うVPCの情報を指定する必要があります。
今回はHULFT8を導入したVPCとの接続を行わないため対応不要としました。

:::note warn
HULFT10 for Container Services をサブスクライブすると、Cloud Formationの設定に遷移します。CloudFormationの実行には、パラメータを設定する必要があります。
:::

# ２. サブスクライズ及びCloud Formation 1の実行

:::note alert
本記事で環境構築したのはリリース前の「検証環境」です。リリース後、お客様が構築した環境とは画面詳細が異なる場合がある点、ご留意ください。
:::


**①　サブスクライズ**
AWS Marketplaceからサブスクライブを実施します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/94b0e077-ec92-e18d-6009-fce133952f80.png)


「Configure this software」では「Deployment to ECS on Fargate」を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/d6c983d2-07f4-42e2-36cd-e5ed11762d96.png)

**②　CloudFormationの実行**
HULFT10を導入する新規VPCの作成とネットワークの設定、および既存VPCとのPeering設定を行います。

:::note info
**Point**
システム名やドメイン名、オートスケーリング実施時の最大/最小コンテナ数、DBサイズなどをパラメータに設定することで、CloudFormationによる自動構築します。

:::


**②‐1　CloudFormationスタックテンプレートの読み込み**
　「CloudFormation NewDeployTemplate1」のリンクをクリックし、「スタックの作成」ページにリダイレクトします。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/32a73d47-ad06-22b6-72e2-aaf8409c3238.png)

**②‐2　リージョンを指定**
　開いているコンソールを東京リージョンに切り替えます。

**②‐3　パラメーター入力**
　「**1.事前準備設定**」で準備した「**CloudFormation1実行に必要なパラメータ**」を参考にパラメータを登録します。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/3436c9f2-67c4-4981-22e3-92fd85bc9a0e.png)

**②‐4　CloudFormationの実行**
　レビュー画面で入力内容を確認後、チェックを付けて実行します。
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/c424bac3-f60b-a32f-8c05-31cb94095ae9.png)

**②‐5　CloudFormationの実行結果を確認**
CloudFormationを実行後、およそ30分で実行が完了します。
スタックの情報-ステータスが「**CREATE_COMPLETE**」になっていることを確認します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/52379390-557c-4eef-61ed-10953378008c.png)

**②‐6　HULFT管理画面のURL取得**
CloudFormationの実行後、出力タブにControlURLとして表示されていたURLにアクセスすると、HULFT管理画面が起動します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/0a036d60-9947-8d50-92a4-5ad3e29735a5.png)

**②‐７　HULFT管理画面の管理者パスワード取得**
AWS Secrets Managerからシークレットの値を取得します。
こちらが管理者パスワードになります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/787e3019-54f0-14ad-f859-35802e473adb.png)




# ４. 環境構築後の対応






# ３. HULFT管理画面の起動とログイン
環境構築が完了しましたら、起動確認として管理画面へのログインを行います。

事前に取得した情報を元に、「管理画面のURL」にアクセスし、ユーザーID「root」と「管理者パスワード」を入力します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/2c1fde47-e364-68d6-3c95-e1fbc1e7a8ab.png)

ログインを押下し、管理画面に遷移できたら起動確認は完了です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/458288/a26995e9-6d41-d830-a61f-4e3e3186c984.png)

# 最後に
いかがだったでしょうか。
今回は、AWS Fargateを利用した HULFT10 for Container Service の環境を構築し、動作確認まで行うことが出来ました。
AWS Fargateを利用することによりサーバーレス環境を実現したHULFTは、運用の自動化やオートスケール等、コンテナのメリットを最大限に活用することが可能になります。AWS EC2を利用した環境も引き続き構築可能ですので、メリットデメリットを比較して最適な環境を選択して頂ければと思います。

今後の予定としては、今回作成した環境を利用して、実際にファイル転送を行った結果を投稿したいと考えています。

ここまで読んでいただきありがとうございました。それでは、また！