初めまして!エンジニアの結城です!
今回は、AlibabaCloudのプロダクトであるECS(Elastic Compute Service)とOSS(Object Storage Service)を使って
簡単に分かりやすくマウントする方法について記載します。
■ECS(Elastic Compute Service)
https://jp.alibabacloud.com/product/ecs
■OSS(Object Storage Service)
https://jp.alibabacloud.com/product/oss
・リージョン (Japan)
・ECS (ecs.t5-lc2m1.nano)
・OS (CentOS 7.7 64-bit)
・OSS バケット
【事前準備】
・ECSインスタンスを1つ作成
⇨ IPアドレスはPublicIP or ElasticIPで設定
・OSSでバケットを1つ作成・OS (CentOS 7.7 64-bit)
・セキュリティグループで接続元IPがPort22(SSH)への接続が許可されていることを確認
今回は、OSSFS(Object Storage Service File System)を使用します。OSSFSとはAlibabaCloudが提供するFUSEをベースにしたファイルシステムです。
OSSFSデータボリュームは、OSSバケットをデータボリュームとしてパッケージ化できます。OSSは99.999999999%(11 nines)の可用性があります。
OSSFSは以下の点がローカルファイルシステムと異なります。
・ランダム書き込みまたは追加書き込みにより、ファイル全体が上書きされます。
・ディレクトリのリスト化などのメタデータ操作はパフォーマンスがよくありません。システムが OSS サーバーにリモートアクセスする必要があるためです。
・ファイル/フォルダの名前の変更操作はアトミックではありません。
・複数のクライアントが同じ OSS バケットにマウントされている場合、各クライアントのアクションを自ら調整します。
たとえば、複数のクライアントが同じファイルを書き込むことを避けます。
・ハードリンクがサポートされません。
上記のことから、OSSバケットから頻繁に呼び出すシステムや、複数クラアントが操作をする状況が発生するシナリオがある場合は、NASをご利用することをおすすめします。
■NAS
https://jp.alibabacloud.com/product/nas
■マウント手順
|| wgetでrpmパッケージをダウンロード※適当な作業ディレクトリを作成して作業を行うことを推奨。
|| リネームを実施ダウンロードファイルを.rpmファイルに変更
|| ダウンロードしたrpmパッケージのインストール
パッケージ ossfs_1.80.5_centos7.0_x86_64.rpm はインストールされていません。
[root@test-centos7 test.space]# rpm -iUh ossfs_1.80.5_centos7.0_x86_64.rpm
エラー: 依存性の欠如: fuse >= 2.8.4 は ossfs-1.80.5-1.x86_64 に必要とされています fuse-libs >= 2.8.4 は ossfs-1.80.5-1.x86_64 に必要とされています
|| yumで足りないossfsパッケージのインストール
[root@test-centos7 test.space]# yum install ossfs*
========================================================================================================================
Package アーキテクチャー バージョン リポジトリー 容量
========================================================================================================================
インストール中:
ossfs x86_64 1.80.5-1 /ossfs_1.80.5_centos7.0_x86_64 4.2 M
依存性関連でのインストールをします:
fuse x86_64 2.9.2-11.el7 base 86 k
fuse-libs x86_64 2.9.2-11.el7 base 93 k
トランザクションの要約
========================================================================================================================
インストール 1 パッケージ (+2 個の依存関係のパッケージ)
|| インストールされたことを確認
|| マウント状況を確認する
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/vda1 40G 2.0G 36G 6% /
devtmpfs 486M 0 486M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 420K 496M 1% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/0
|| アクセスキー等、諸々設定
※事前に/etc配下にpasswd-ossfsファイルを作成しておく(パーミッションは640)
※事前に/tmp配下にossfsディレクトリを作成しておく。
[root@mount-test ~]#echo my-bucket:my-access-key-id:my-access-key-secret > /etc/passwd-ossfs
・OSSバケットのマウント書式 )
[root@mount-test ~]#ossfs my-bucket my-mount-point -ourl=my-oss-endpoint
実行例 )
[root@mount-test ~]#ossfs my-bucket /tmp/ossfs -ourl=http://oss-cn-hangzhou.aliyuncs.com
|| Object Storage Service(OSS)がマウントされたことを確認
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/vda1 40G 2.0G 36G 6% /
devtmpfs 486M 0 486M 0% /dev
tmpfs 496M 0 496M 0% /dev/shm
tmpfs 496M 420K 496M 1% /run
tmpfs 496M 0 496M 0% /sys/fs/cgroup
tmpfs 100M 0 100M 0% /run/user/0
ossfs 256T 0 256T 0% /tmp/ossfs ・・・追加された
動作確認は、/tmp/ossfsディレクトリに実際にファイルをアップロードまたは作成を行い、AlibabaCloudのコンソール上のOSSで対象ファイルを確認ができればおk。
|| バックエンドのマウント解除
※アンマウント後は、dfコマンドでディスクのマウントが外れたか確認を行う。
■最後に
ログローテーションが出来ない場合や、長期間ログを保持する運用だと、ログファイルによってディスク容量をひっ迫させる事が中にはあるかと思いますが、
ECS内で全てのデータを保持していると、ごく稀に発生する(・・・個人的には何回かある。。)ファイルシステムの破損やハングアップがあった時など、直近のログを取得できない状況が発生します。
コストを抑える事も大事ですが、可用性を高める事も大事です。
ECSのみで運用されている方、そうでない方も是非やってみてください!!
これから技術に関する内容をエンジニアブログに投稿して行きますので、是非ご購読ください♪
最後まで読んでいただき有難うございました!