投稿

ラベル(S3)が付いた投稿を表示しています

3大クラウドのストレージ使ってsyslogのログローテーションしてみる

Samba使ってマウントしたファイルサーバ ってのを以前に準備しました。 その応用で業務にてsyslogサーバ立ててマウントしてそこにログを逃がす形式で構築する機会がありました。しかしながら、よく考えると マウント したディレクトリに移動させるより ローテート の際にコマンドで直でストレージに送ればいいかなと思って試してみました。AWSだけだと面白くないので GC Sと AzureBlob にも対応してみました。次回やるときに苦労するの嫌なので現時点で一撃でやれるようにShellにしてます。 ◆Shellスクリプト実行環境の前提 ・AWS:IAMロールでS3フルアクセス可能なものが存在しEC2に付与されている。AWS-CLIインストール済でクレデンシャル発行済 ・GCP:GCEのアクセススコープで[ストレージ]がフル設定となっている ・Azure:V-NETとストレージアカウントとBlobコンテナーが設定されていること ・Ubuntu22.04LTSにて確認(ロケールと言語は日本語に変換済) ◆Shell本体 #!/bin/bash LOGDIR=/var/log/remote CONFIG=10-remoete.conf LOGNAME=syslog S3BUCKET=s3://202402-syslog-srv-test GCSBUCKET=gs://202402-syslog RESOURCENAME=syslogexam AZ_ACCOUNTNAME=202402storageaccount AZ_CONTAINERNAME=202402-syslog-test EXPIRY=$(date -d "+10 years" +%Y-%m-%dT00:00:00Z) CMD="logrotatecommand" # AWS read -p "## Do you want to setting AWS ? (y/n) [y]: " -e -i "y" awsResponse if [ "$awsResponse" == "y" ] || [ "$awsResponse" == "Y" ]; then ...

3大クラウドでVMとストレージを組み合わせた構成を一撃で構築する

  EC2+S3でSambaサーバ組み合わせて ファイルサーバ的なものを前回やってみましたが、 GCP とか Azure でも同じことやってみました。 GCPの場合は GCE + GCS に gcsfuse を組み合わせて構成、Azureの場合は AzureVM に Blob の機能でNFSv3を指定してやるやり方です。 Azureは 以前にredmineでAzureFiles使ってマウントしたこと がありましたが今回はBlobのコンテナ使って NFSマウント してみました。 AWSの場合はgoofysがパフォーマンスいいみたいです。GCPとAzureも書込みとか変更は我慢できないほどではないけどファイル削除に若干、時間がかかる。 頻繁な削除が発生しないなら、まぁどれでもいいんじゃなかろうかという感じです。コストはあまり見ていないですけどVMのコスト+ストレージのコスト+読み書き発生するみたいですね。 ◆Shellスクリプト実行環境の前提 ・AWS:IAMロールでS3フルアクセス可能なものが存在しEC2に付与されている。AWS-CLI用のクレデンシャルが発行済 ・GCP:GCEのアクセススコープで[ストレージ]がフル設定となっている ・Azure:V-NETとストレージアカウントが設定されていること ・Ubuntu22.04LTSにて確認(ロケールと言語は日本語に変換済) ◆Shell本体 #!/bin/bash ACCESS_KEY_ID=AKXXXXX ACCOUNT_ACCESS_KEY_ID=XXXXX ACCOUNT_REGION_ID=ap-northeast-1 ACCOUNT_OUTPUT=json S3_BUCKET_MP_PUBLIC=s3test-mountpoint-samba S3_BUCKET_S3FS=s3test-s3fs-samba S3_BUCKET_GFYS=s3test-goofys-samba GCS_BUCKET=gcstest-samba AZURE_STORAGE_ACOUNT=azuresambatest AZURE_CONTAINER=azure-samba-test MOUNT_DIR_MPS3=/mnt/test-mountpoint-s3 MOUNT_DIR_S3FS=/mnt/test-s3fs M...

EC2からS3をマウントしてみる

  AWSでEC2使ってS3をマウント したいとかいう要望がったので調査がてら検証する過程で3つのマウント方法を試してみた。ついでにSambaでアクセス制御もやってみた。 MountPoint for S3 goofys s3fs MountPointの方は新規と削除しかできないのでファイルサーバ的な用途ではやや厳しく、ログファイルを新規書込みするケースのみにしか使えなさそうで、goofysとs3fsを比較すると新規作成の場合はs3fsだと作成済ファイル表示までに時間がかかってgoofysの方はすぐに作成済ファイルが表示された。ローカルからのコピーだといずれも体感差はない感じ。 AmazonLinux2023の場合MountPointとs3fsはEC2にIAMロールアタッチで使えたもののgoofysではcredentialsを登録してあげないと動かない。UbuntuではいずれもIAMロールアタッチで対応できた。なのでAmazonLinuxでEC2にIAMロールアタッチでsamba使ってS3をマウントするという要件だと今のところs3fsしかないかなという感じでした。 コマンドラインからSamba叩くのは嫌だとか言う人もいるだろうから Webmin 試してみました。rootユーザにパスワード設定しないといけないのでそこだけ注意ですかね。ひとまずお手軽にSambaユーザ追加できました。 次やる機会があるのかわかりませんが、ひとまずShellスクリプトにして再利用できるようにしときました。けどAmazonの推奨パターンは、こういうケースだとEC2+ EFS か AmazonFSx と組み合わせて使うようですね。 ◆Shell本体 #!/bin/sh ACCESS_KEY_ID=AKIXXXXXXXXX ACCOUNT_ACCESS_KEY_ID=XXXXXXXX ACCOUNT_REGION_ID=ap-northeast-1 ACCOUNT_OUTPUT=json S3_BUCKET_MP_PUBLIC=test-mountpoint-samba S3_BUCKET_S3FS=test-s3fs-samba S3_BUCKET_GFYS=test-goofys-samba MOUNT_DIR_MPS3=/mnt/test-mountpoint-s3 MOUNT_D...

AWSの静的サイトホスティングパターン構築用CloudFormation作ってみた

やりつくされた感のあるAWSの静的サイトホスティングパターンの CloudFormation でやってみる系のやつです。まぁ先人が色々としてくださっているので今更ネタです。 そしてAWSは5年ほど触ってますが、いまだに初心者を脱出できていないですし、コピペしかできないへっぽこです。なんで急にCloudFormationやってみようと思ったかというと 静的サイトホスティング二重化 を Terraform で一本でまとめてやりたいなぁと思っていて、その練習がてらどうせならCloudFormation勉強してみようと思ってやってみました。 2021年1月31時点に構築しました。 aws-cli/1.18.39 Python/3.7.7 Linux/5.4.0-64-generic botocore/1.15.3 ◆作成したもの 1.ディレクトリ構成 . |-- create_stacks.sh |-- delete_stacks.sh `-- yml |-- acmsetting.yml |-- makehostedzone.yml `-- static-site.yml 2.シェルスクリプト群 「create_stacks.sh sample.com」とか「delete_stacks.sh」で起動すると一気に静的サイトホスティングのCloudFormationテンプレート呼び出してくれます。 ・create_stacks.sh #!/bin/bash SLEEP_TIME=30 R53_YML_NAME="makehostedzone.yml" R53_STACK_NAME="route53set" ACM_YML_NAME="acmsetting.yml" ACM_STACK_NAME="acmbuild" STATIC_YML_NAME="static-site.yml" STATIC_STACK_NAME="staticsitebuild" BREAK_WORD="CREATE_COMPLETE" if [ $# != 1 ]; then echo 'Empty Domain! Pl...

静的Webサイトホスティング二重化してみる(その1)

イメージ
 AWSの 静的Webサイトホスティングパターン はされつくしている感じがありますが、それ関連の記事です。CloudFrontってそこそこの頻度で障害を起こしているのでCloudFront障害時でもなんとかサイトのサービスを継続して提供できないかと思い色々と調べてみました。 こんな風 にとか こんな感じ で KeyCDN を使っているケースが多いみたいです。まぁそのパターンでやってみるという手もあるのですが、裏側がS3だとAWSが壊滅したときにアウトです。 Route53は100%の可用性 を誇っているので、まぁそこは利用するとしてそのほかで色々と構成を考えていきたいと思います。今回はその1なのでまずはAWSでCloudFront+S3を使って独自ドメインでサイトを立てるところからスタートします。 ◆シリーズ その1:AWSでCloudFront+S3構成を作る その2:GoocleCloudでLoadBaranser+GCS構成を作りDNSでフェイルオーバ その3:S3とGCSにGitHubActions使ってコンテンツ同期 その4:TerraformでIaC化 ◆手順 1.Route53でホストゾーン作成 2. Freenom で取得したドメインにRoute53情報登録 3.S3バケット作成 4.ACMで証明書作成 5.CloudFrontの設定 6.Route53のAレコード設定 1.Route53でホストゾーン作成 ・Route53で[ホストゾーン]を選びホストゾーンを作成をクリックする ・「ホストゾーンの作成」が表示されるので[ドメイン名]を入力し[ホストゾーンの作成]をクリックする。 ・[ホストゾーン]を選ぶとNSレコードができているのでそのNSレコードをメモする。 2.Freenomで取得したドメインにRoute53情報登録 *ドメインの取得は参考サイト見てやってください。 ・freenomにログインし[Services]→[MyDomains]をクリック ・取得したドメインの横にある[ManageDomain]をクリック ・[ManagementTools]をクリックし[Nameservers]をクリック ・[Use custom nameservers (enter below)]をクリックしNameserver1~4までにRoute53で...