- 1. [AWS]CloudWatch Logsの配信タイミングはいつなのか@2019.11
- 2. awscli のクレデンシャル関係コマンドの備忘録
- 3. 国内、実証検証済み!!VMware Cloud on AWS アプリケーション高可用性ソリューション
- 4. AWSでのクロスアカウントアクセス(2019年11月版)
- 5. fishを使ってAWS ECRのリポジトリにImageをPushする方法
- 6. ENV[‘AWS_REGION’] (Aws::Errors::MissingRegionError) への対策
- 7. AWS Device FarmでWebRTC(SkyWay)のテストをしよう
- 8. AWS-CLIコマンドでEC2のメトリクスをいろいろ取りたいときのコマンド
- 9. Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #14 (分析)
- 10. AWSコンポーネントで運用格安の要約システムを構築する
- 11. terraformでAWS RDS(Aurora)の設定を変更してないのに must be replacedになってしまう件
- 12. Developers.IO TOKYO 2019参加レポート
- 13. AWSの用語・概念について(その1)
- 14. PHP Slim 環境構築(16) ECS(EC2)+ローリングデプロイ
- 15. AWS CLIでVPCエンドポイントを作成する時のポリシー(JSON)の指定方法
- 16. IAMでサーバ証明書をインポートするCLI手順
- 17. SignalFxでAWSのモニタリングをやってみる
- 18. Aurora MySQL の Audit Log の有効化
- 19. Terraform AWS AssumeRolePolicyのコピペで使えるサンプル集
- 20. S3をstatic webserver にしてるとき、javascript がキャッシュされる問題
[AWS]CloudWatch Logsの配信タイミングはいつなのか@2019.11
# 概要
EC2やコンテナ内をステートレスに保つため、ログファイルをCloudWatch Logsに出力することがよくあると思います。
出力させる手順は公式・非公式問わずたくさんありますが、
最新のCloudWatchエージェントにおいて、実際OSがハングアップしたらどこまでログが残るのか、どの程度の間隔でフラッシュされているのか知りたかったので調べてみました。
私は ”最新のCloudWatchエージェント” について知りたかったです。(大事なこと)# 結論
CloudWatchエージェント設定ファイル内のlogsセッション 「force_flush_interval」 に 秒単位 で設定する。デフォルトは5秒。
また、この設定にかかわらずバッファ内のログサイズが1MBに達するとフラッシュされる。
詳細は、[こちら](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-Agent-Configuration-File-Details.htm
awscli のクレデンシャル関係コマンドの備忘録
MFA 必須のマルチアカウント構成で AWS を利用する場合に必要なコマンドの備忘録です。
# トークンの取得
~~~text:.aws/config
[profile project-profile]
region=ap-northeast-1
mfa_serial = arn:aws:iam::000000000000:mfa/your-iam-user-name
role_arn = arn:aws:iam::111111111111:role/OrganizationAccountAccessRole
source_profile = master-profile
~~~~~~sh:command
aws –profile project-profile sts get-caller-identity
~~~キャッシュされたクレデンシャルのクリア
~~~sh:command
rm -r ~/.aws/cli/cache
~~~# CodeCommit 用 Credential Helper
~~~sh:command
aws –profile proje
国内、実証検証済み!!VMware Cloud on AWS アプリケーション高可用性ソリューション
#はじめに
VMware Cloud on AWSの基盤はVSANを複数アベイラビリティゾーンにまたがって構成し、仮想マシンを切り替えることが可能です。基盤としての耐久性は高いのですが、標準でアプリケーションの監視機能を持たないため、アプリケーション障害時に切り替えることができません。そのため、企業の本番システムを運用するとなると、アプリケーションの可用性を向上させるソリューションが必要となります。VMware Cloud on AWSは、オンプレミスからの基幹システムの移行、オンプレミスとのハイブリッドクラウド、AWSを含めたマルチクラウド構成を考慮する必要があります。必然的に多種多様なOSとアプリケーションの組み合わせに対応する高可用性ソリューションが求められます。
#マルチクラウド対応 高可用性ソリューション
Veritas InfoScale(旧称:Storage Foundation / VCS)は、フォーチュン100の99%の企業で利用されているVeritasの高可用性ソリューションです。単一製品で、ストレージ管理、SDS(S
AWSでのクロスアカウントアクセス(2019年11月版)
# 概要
AWSで使うアカウントが天文学的数字まで膨れ上がってきたので(嘘
今までブラウザ分けてたけど、クロスアカウントアクセスしてみようかなーなんか便利そうだし
と思って調べてみたら、意外と古い記事ばっかりで今とビミョーに違ったので最新情報を乗っけておきます。
皆さんの快適なAWSコンソールライフの一端を担えればと思っております。ちなみに、クロスアカウントアクセス、むっちゃ便利なんでみんな使って下さい!!
# 事前準備
以下のものが必要です。– 常にログインしておきたいアカウント
– 以下メインアカウントと呼称する
– IAMにアクセスできる権限
– メインアカウントに統合したいアカウント
– 以下サブアカウントと呼称する
– IAMにアクセスできる権限双方ともIAMユーザーである必要があり、 rootユーザはNGです!
# 流れ
– サブアカウントで、メインアカウントからのアクセスを許可する
– メインアカウントで、サブアカウントへのアクセスを行う
– Happy!# いざ実践
## サブアカウントでのやること
1. 「IAM >
fishを使ってAWS ECRのリポジトリにImageをPushする方法
まず初めにレジストリに対する Docker クライアントの認証に使用するログインコマンドをAWS CLIを使って取得する必要があります。
AWSのサンプルコマンドは下記のようになっています。
“`
$(aws ecr get-login –no-include-email –region ap-northeast-1)
“`しかしfishの場合は
“`
fish: Command substitutions not allowed
“`
と怒られてしまいますので、“`
aws ecr get-login –no-include-email –region ap-northeast-1 | fish
“`としてあげれば、うまくいきます。
ENV[‘AWS_REGION’] (Aws::Errors::MissingRegionError) への対策
# 問題の背景
“`
missing region; use :region option or export region name to ENV[‘AWS_REGION’] (Aws::Errors::MissingRegionError)
“`上記のようなエラーを踏んだ方への報告です。
# よくある回答
Region設定が間違っているのでRegionを正しく指定しましょう。
参考:
– https://stackoverflow.com/questions/32224995/rails4-1-aws-errors-missing-region
– https://qiita.com/1915keke/items/1302ef830a267be3a828# 今回のケース
環境変数 ENV[‘AWS_REGION’] が読み込めていない為にエラーが出る。
# 対策
僕は zsh を使っているので、そこに一文追加
“`
$ vim ~/.zshrc
“`“`~/.zshrc
eval “$(direnv hook zsh)”
“`
“`
$ s
AWS Device FarmでWebRTC(SkyWay)のテストをしよう
# AWS Device Farm
[AWS Device Farm](https://aws.amazon.com/jp/device-farm/)はクラウドでモバイル端末をエミュレートできる仕組みです。
—
## できること
1. iOS/Android端末がクラウド上で動かせる
2. 2019/11/05時点で利用可能なデバイスは[266種類](http://awsdevicefarm.info/)
3. 「AutomatedTest」と「RemoteAccess」が可能(後述
4. テスト後に動画やログを自動で保存してくれているのでDLできるHueweiが結構WebRTCで問題が起きているのでこの種類がないのが個人的にはネック・・・
—
## AutomatedTest
ios/android共にE2Eテストやモンキーテストを実行できます。
AWS-CLIコマンドでEC2のメトリクスをいろいろ取りたいときのコマンド# aws-cliコマンド
さくっと、EC2のインスタンスの情報をcliで取りたいときのコマンドです。
##EC2のタグについてるサーバの名前を知りたい時
“`
aws ec2 describe-instances | jq -r ‘.Reservations[] .Instances[] .Tags[]|select(.Key==”Name”)|.Value’
“`##ステータスがrunning状態のTagsがKey=Nameのをインスタンスを取得
“`
aws ec2 describe-instances –filter “Name=instance-state-name,Values=running” | jq -r ‘.Reservations[] .Instances[] .Tags[]|select(.Key==”Name”)|.Value’
“`##running状態かつ、 TagsがKey=NameのインスタンスIDとインスタンス名を取得
“`
aws ec2 describe-instances –filter “Name=instance-
Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #14 (分析)
Amazon Web Services (AWS)のサービスで正式名称や略称はともかく、読み方がわからずに困ることがよくあるのでまとめてみました。
Amazon Web Services (AWS) – Cloud Computing Services
https://aws.amazon.com/まとめルールについては下記を参考ください。
Amazon Web Services (AWS)サービスの正式名称・略称・読み方まとめ #1 (コンピューティング) – Qiita
https://qiita.com/kai_kou/items/a6795dbab7e707b0d1a6間違いや、こんな呼び方あるよーなどありましたらコメントお願いします!
## Analytics – 分析
### Amazon Athena
– 正式名称: Amazon Athena
– https://docs.aws.amazon.com/athena/?id=docs_gateway
– 読み方: アテナ
– 略称: なし
– 俗称: なし### Amazon CloudSe
AWSコンポーネントで運用格安の要約システムを構築する
# この記事の内容
– 要約システム(抽出型)を作った
– AWSで運用構成を構築した
– サーバーレス構成でなるべく安くした# この記事で紹介しないこと
– 要約アルゴリズムの中身
– – –
仕事先で「要約システムを作れないか?」と相談があったので、組んでみました。
仕事先はニュースサイトを運営していて、「投稿されるニュースに要約を掲載したい」というのがモチベーションです。確かに、大手新聞社のニュースサイトでも3行要約が掲載されていて、記事全文を読んでる時間がない人にはいいコンテンツです。
編集者が自分で要約を書けることに越したことはないのですが、要約の作成というのはなかなか特殊技能のようです(と、編集者から聞いた)
こういう時に自動要約というのは需要があるんでしょうね。
# で、自動要約ってどんなのがあるの?
自動要約には大きくわけて2つのタイプがあります。
まず1つ目は__文生成型__。
これは入力文書の意味をアルゴリズムが解釈して、__いい感じ__(訓練データと似た傾向が出せるように)に要約されたテキストを作成するタイプ。
深層学習が流行りだして
terraformでAWS RDS(Aurora)の設定を変更してないのに must be replacedになってしまう件
# 何に困っていたの?
– terraform applyする度にRDSがdestroy(replace)されてしまう# なぜそれで困るの?
– **databaseを飛ばすリスク大** (rds用のtfファイルだけ別ディレクトリに配置して回避してた)
– terraform applyする度に**でら長いこと待たされる(人生を削られる)**# それ困ってるの君だけじゃないの?
– No, 同じ悩みを持つ人が居ました。
– [Terraform wants to recreate cluster on every apply](https://github.com/terraform-aws-modules/terraform-aws-rds-aurora/issues/8)
– [RDS instance: Terraform insisting on destroy-recreate RDS instances although their IDs are unchanged](https://github.com/hashicorp/terraform/issues/16
Developers.IO TOKYO 2019参加レポート
先日[Developers.IO TOKYO 2019](https://dev.classmethod.jp/news/developers-io-2019-tokyo/)に参加してきました。
技術の話から、チームマネジメントの話まで非常に盛りだくさんでした。
私が参加したセッション内容をまとめます。# ハイブリッド/マルチVPC環境を構成するためのAWSネットワーク完全理解
[発表資料](https://dev.classmethod.jp/cloud/aws/developoers-io-2019-aws-hybrid-network/)## 概要
複数なVPCを合わせて使うクローズドなネットワーク環境## ポイント
複数環境の通信を適切に制御するルーティング
ネットワーク的にIPで繋がらなければ如何しようも無い## Key Component
* IGW
* VGW
* PCX## 制約
VPCをホップする通信は不可能
全てのVPC・オンプレミスを1対1で繋ぐ必要がある(フルメッシュ型)## After Transit Gateway
* ハブ型での相互
AWSの用語・概念について(その1)
##### マネージドサービス
素のままサーバを貸し出すサービスをアンマネージドサービスと呼び、ソフトウェアなどをインストールしてあらかじめ設定して貸し出すサービスを***マネージドサービス***と呼ぶ。データのバックアップや二重化のデータ保全対策を含めてサービスとして提供してくれる。マネージドサービスを利用した場合、AWSの責任分界点がOS、SWレベルまで拡張されることが多い。
アンマネージドの例は、VPC、EIP、EC2、EBSなどがある。##### クラウドサービスの可用性
SLAによる保証値は稼働率で表現されることが多い、例えば稼働率が99.9%と99.99%の場合、1ヵ月(=43,200 min)と仮定すると99.9%は432min、99.99%は43.2minとなる。##### クラウドサービスの可用性
SLAによる保証値は稼働率で表現されることが多い、例えば稼働率が99.9%と99.99%の場合、1ヵ月(=43,200 min)と仮定すると99.9%は432min、99.99%は43.2minとなる。##### 東京リージョン以外を使用する理由
以下3点
PHP Slim 環境構築(16) ECS(EC2)+ローリングデプロイ
# PHP Slim 環境構築(16) ECS(EC2)+ローリングデプロイ
## Introduction
[前回](https://qiita.com/dynamitecoolguy/items/d6aff53757ef475d7942)は、ECS(Fargate)の構築を行いました。
今回は、一つ戻って、ECS(EC2)のDeployを試してみます。この一連のシリーズは、自分への備忘録が第一目的のため、だいぶ不親切です。
申し訳ございません。## ローリングデプロイ
### 手動
手動で行う方法は、[前々回](https://qiita.com/dynamitecoolguy/items/1074132b8b082910abcf)に記載していますが、適当なec2のshell上で、docker build → docker push → task 更新 → サービス更新です (詳細は割愛)。
“`
# docker build -t hoge-repo:latest –build-arg environment=devaws -f compose/web_h
AWS CLIでVPCエンドポイントを作成する時のポリシー(JSON)の指定方法
CLIでVPCエンドポイントを作成するときに、エンドポイントポリシーのJSONをどうやって渡せばいいのかを悩んだので、そのメモ書きです。
JSONの文字列をシェルの変数に投入してあげるという解決策です。
# 実行例
“`shellAWS_PROFILE=default
POLICY=’
{
“Statement”: [
{
“Action”: “*”,
“Effect”: “Allow”,
“Resource”: “*”,
“Principal”: “*”
}
]
}’aws –profile ${AWS_PROFILE} ec2 create-vpc-endpoint \
–vpc-endpoint-type Interface \
–vpc-id vpc-f1dcfc96 \
–subnet-ids subnet-cde80585 subnet-0bf40020 subnet-742e712f \
IAMでサーバ証明書をインポートするCLI手順
ACM(AWS Certificate Manager)ではなく、IAMでサーバ証明書をインポートするときのCLI手順のメモです。
## サーバ証明書のインポート
“`shell
PROFILE=defaultaws –profile ${PROFILE} iam upload-server-certificate \
–server-certificate-name hoge.com \
–certificate-body file://hoge.com.crt \
–private-key file://hoge.com.key
“`
## インポートしたサーバ証明書の確認
“`shellaws –profile ${PROFILE} iam list-server-certificates
“`
SignalFxでAWSのモニタリングをやってみる
#SignalFxでAWSのmonitoringをやってみる
前にはほぼデフォルトでリソースの取得からdashboardの作成までやってみたので、今回はawsのデータを収集してみようかと思います。
https://qiita.com/saeoshi/items/8898c0a34d52c71906d7
Intergationの画面をみると、Cloudwatchからデータを引っ張ってくるみたいですね。
## Setup
### SignalFx用のIAMロールの作成
下記を参考に、policyを作成してロールに紐づけてください。https://docs.signalfx.com/en/latest/integrati
Aurora MySQL の Audit Log の有効化
備忘録です。
結論として、以下の作業をまとめて実施する必要があります。
## Aurora の設定
### パラメータグループの変更
audit_log を出力するためにはパラメータグループに以下のパラメータの設定が必要です。| parameter name | value |
|:—–|:—–|
| server_audit_logging | 1 |
| server_audit_logs_upload | 1 |
| server_audit_events | CONNECT, QUERY,TABLE |
| server_audit_incl_users | (特定のユーザーのログののみ出力する場合は、こちらでユーザー名を指定) |なお、 **デフォルトのパラメータグループでは設定の変更が行えない** ため、注意をしてください。(Audit Log を有効にしたい場合は、その Aurora クラスタ固有のパラメータグループを割り当てる必要があります。)
### Aurora クラスターのログ出力定義の変更
ログのエクスポート画面で「監査ログ」をチェッ
Terraform AWS AssumeRolePolicyのコピペで使えるサンプル集
#はじめに
古い書き方で恥ずかしいものの、
思い出すのに時間がかかったりするので置いておく。##Config
“`tf
data “aws_iam_policy_document” “assume_role_policy_config” {
statement {
actions = [“sts:AssumeRole”]principals {
type = “Service”
identifiers = [“config.amazonaws.com”]
}
}
}
“`##EC2
“`tf
data “aws_iam_policy_document” “assume_role_policy_ec2” {
statement {
actions = [“sts:AssumeRole”]principals {
type = “Service”
identifiers = [“ec2.amazonaws.com”]
}
}
S3をstatic webserver にしてるとき、javascript がキャッシュされる問題
## htmlから読み込んでるjsファイルが更新されない問題
### こんな場合
– S3で静的WEBホスティングしてる
– シェルコマンド(bash)使ってる
– AWS-CLI でcpコマンドしてローカルのディレクトリのファイルと同期とってる
– JSのキャッシュでブラウザからみると更新が反映されない
– さっき更新したやつだけ反映したい覚えておくこと:
> –cache-control privete(メタ情報 cache-control :privete) をつけると、キャッシュされない
no-cache,no-stroe より楽注意すること:
別の方法で上書きするとメタ情報はなくなる“`up.sh
#– /directory_name にある5分以内に更新したファイルを${copyto_s3_location}にアップロードするwhile read file `find /directory_name/ -type f -cmin -5`
doext=${file##*.}
if [ ‘js’ = “${ext}” ] ; then