2017-11-08 48 views
1

私はタスク定義を持つecsサービスを持つecsクラスタを作成しました。タスクはマウントポイントを含んでいます。タスクを停止すると、ecsサービスはそれを再起動し、データを失う原因となるタスク定義に新しいコンテナIDを提供します。私たちがタスクの定義を再開したときにデータボリュームを保持する方法は?ecsにデータボリュームを永続化する方法は?

答えて

0

EFSボリュームを使用することをおすすめします。

アマゾンECSを使用してのAMI(そうRed Hatの)を最適化する場合は、EC2インスタンスそのファイルシステムを扱うためのパッケージのnfs-utilsのにインストールする必要があると思います。あなたはその後、/etc/fstabファイルエントリ/mnt/efsディレクトリを作成し、そのインスタンスにすることができます

:あなたのサービス定義では

<YOUR EFS CLUSTER DOMAIN NAME>:/ /mnt/efs nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,fsc 0 0 

を、あなたのaccross共有されるよう/mnt/efs/myvolumeなどのボリュームを宣言することができますEC2インスタンス

この新しいネットワークボリュームを有効にするには、sudo mount -aを実行します。


そして、あなたが作成した各インスタンスでそれを行うにはしたくないので、あなただけのEC2インスタンスのユーザデータセクション作成画面(または起動コンフィギュレーションにこのコードの束を追加することができます自動スケーリンググループの場合作成画面)。独自のEFSクラスタドメイン名を使用して編集することを忘れないでください。

Content-Type: multipart/mixed; boundary="==BOUNDARY==" 
MIME-Version: 1.0 

--==BOUNDARY== 
MIME-Version: 1.0 
Content-Type: text/text/x-shellscript; charset="us-ascii" 
#!/bin/bash 
yum install -y nfs-utils 

mkdir "/mnt/efs" 
echo "<YOUR EFS CLUSTER DOMAIN NAME>:/ /mnt/efs nfs4 
nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,fsc 0 0" >> /etc/fstab 
mount -a 
--==BOUNDARY==-- 

これは、インスタンス作成時にすべての手順を実行します。

制限付きセキュリティグループを使用している場合は、NFSネットワークポートへのアクセスを追加する必要があります(私にもわかっていれば2049)。

関連する問題