AWS

UbuntuでもAWS Systems Manager Session Manager for Shell Accessをログ取得まで設定してみた

AWS

お世話になっているクラメソさんの記事(Mac向け)を見て、私のUbuntu PC環境でもいけるかなとやってみました。 dev.classmethod.jp Ubuntu PC側作業 サーバー側 Shell Accessで接続 ロギング設定 参考URL Ubuntu PC側作業 まずはawscliを最新に更新します。…

AWS SAM でGolangのデバッグができるようになったので試してみた

RSSのフィードにAWS SAM CLIでGolangのデバッグができるようになったというニュースが流れてきました。 AWS SAM CLI Now Supports Debugging Go Functions and Testing with 50+ Events 確かにリリースノートにも書いてある。 Release Debug your Lambda Fu…

AWS CDK (AWS Cloud Development Kit) がとても便利そうなので触ってみた

AWS

これ触ってみました。 github.com インストール 使ってみる 架空の要件 開発 プロジェクト作成 初期のディレクトリ構造 初期状態のスクリプトファイル ドキュメント aws-cdk使って定義を書いてみる スタックのデプロイ スタックの一覧 デプロイ実行 スタック…

Aurora Serverlessが出たので早速テスト環境に適用してみた

社内でAuroraのサーバーレスというのが出たらしいというので触ってみました。 Auroraのサーバーレス? 日本語の方が理解しやすかった 検証機のDBを切り替えてみた 手順 スナップショット取得 インスタンス復元 起動を待つ 接続確認 設定を確認してみる 気づい…

サーバーレス開発を始めて6ヶ月間なので振り返りをしてみる

今の会社(BeeX Inc.)に来て、半年くらいサーバーレス開発をやってきました。 やっと人並みに(?)サーバーレス開発進められるようになったのと、開発が一息ついたので振り返りをしてみようと思います。 はじめに サーバーサイドについて 使用サービス Lambd…

AWS LambdaからSAP Jco経由でABAPを呼び出す

タイトルの件、調査がてら書きました。 デプロイ方法 レポジトリ取得 SAP JCoの準備 ビルド AWS Lambda作成 SAMでローカルテストとデプロイ ポイント 最新のライブラリ POJOを利用したデータを受け渡し Gradleにjarやsoを含める VPCでは注意が必要 デプロイ…

AWS SAMでSQSをイベントソースとしたLambda実行がサポートされたので動かしてみた

この件、SAMでも試してみました。 dev.classmethod.jp SAMが対応しているか見てみた 個人的に待ちに待った対応だったので、早速調べてみたら、嬉しいことにSAM側も既に対応されていました。 github.com 該当のCommitはこれでしょうか。 github.com 該当のCom…

AWS API GatewayとSAMとSwaggerとGolang構成での基本設定

調べる効率が悪いのか、タイトルの構成で基本的なところ動くまでも結構時間かかってしまいました。イチから調べるよりこういったスタート地点のがあると良いと思いますので残しておきます。 主にSAMとSwaggerの関連性の部分が厳しかった。。。 コード ディレ…

Vue.js+Bootstrap+Typescript+Highchart+AmazonCloudwatchのサンプルアプリ

これから開発するものの準備を兼ねて、Vue.jsとBootstrapと統合したBootstrap-Vue使ってHighchartsでAWS CloudWatchのグラフ描画するサンプルをTypescriptで作りました。 デモサイト 初期環境構築 追加パッケージインストール Typescript Highcharts Bootstr…

S3のバケットポリシー間違ったら、管理者権限でもアクセス拒否されるようになってしまった

AWS

S3のバケットポリシー調整したいたら、VPNのID間違っていたようで、どこからもアクセスできなくなってしまいました。 設定画面が全て、「アクセス拒否」、「Access Denid」になってしまいました。当然バケットポリシーそのものもアクセスできない。CLIからも…

DynamoDBStream+Lambda(Golang)でProblem Function call failedエラーで1時間くらいハマった

ハマったのでメモ。 ちゃんと設定できているように見えるのに、 こんな感じで、 PROBLEM: Function call failed のエラーが出る。 一応、更新があるとエラーが出るので、動いているようですが、ログ見てもeventがnilって情報が出ているだけで、そもそもHandl…

S3にアップしたZIPを別S3バケットに解凍するアプリでAWS SAM+Golang開発の流れを確認

SAM使っての開発の流れを勉強するために簡単なアプリケーション開発しながら、調べたことなど忘れそうなので備忘兼ねてメモしています。順次追記予定です。 例として作ってみたのは、S3バケットにアップロードしたZIPファイルを、他のS3バケットに展開する処…

AWS SAM ローカルを使用したサーバーレスアプリケーション(Golang版)

こちらの公式ドキュメントの「SAM Local によるシンプルなアプリケーションの構築」の項目をGolang版で動かしたメモ。 docs.aws.amazon.com 準備するのは以下の2ファイル dir/template.yaml dir/main.go ビルドと起動 # productsというファイル名でビルド $ …

ローカルPCを汚さずに手元のDockerでDynamoDBを手軽に検証する

前提 環境構築 awscliで接続してみる 関連URL 前提 この記事の手順で必要なもの。 Docker gitとかawscliとか抜けばDockerだけ。追加のソフトウェアインストールも不要です。 環境構築 この項目がこの記事のメインです。簡単にDynamoDBの検証環境がローカルに…

リードレプリカを使ってRDS(MySQL)をアップグレードする手順を自動化した

AWS

RDS(MySQL)を10台以上アップグレードする必要が出てきたのでこちらの手順をスクリプト化しました。 以下の公式手順を自動化したものになります。 MySQL DB エンジンのアップグレード - Amazon Relational Database Service こちらの記事も参考にさせていただ…

AWS ALB配下のノードが全てUnhealtyになった場合、リクエストが全ターゲットにルーティングされます

AWS

開発環境のALB配下唯一のEC2インスタンスがUnhealtyなのに、普通にアクセスできるので調べてみたらこんな挙動だということが。全く知りませんでした。sorry pageとか最低限のリカバリにはつなげやすいのかな。 ただ、監視をゆるめている開発や検証環境だと全…

AmazonLinuxの古いyumリポジトリを利用したい時の方法

AWS

掲題の件、備忘メモ。 まず、以下のURLで リリースノート の項目を見るとリリースの一覧があるのでリリースの名前がわかります。 https://aws.amazon.com/jp/amazon-linux-ami/ だいたい3月と9月に出るようなので2017.03とか2017.09とか。今現在の最新が2017…

AWS S3を保存先としたプライベートなDocker Registryを公式コンテナから簡単導入

タイトルの通り。作業メモです。 テスト用イメージ作成 テストで利用するイメージを作ります。 Dockerfile作って。 cat <<EOF > Dockerfile from alpine:latest ENTRYPOINT ["echo","myimage"] EOF ビルドして。 docker build --no-cache -t myimage . ビルドされ</eof>…

AWS ALBのアクセスログ分析環境をDockernizeしてローカルPCで実行できるようにした

AWS ALBのアクセスログをサーバ上のBananaで分析していたのですが、Docker使って手元のPC環境でも簡単に実行できるようにしました。 github.com 使い方 Repositoryをダウンロード git clone https://github.com/yomon8/alb-log-analyzer.git cd alb-log-anal…

ALB/ELBのアクセスログを時間指定でダウンロードして標準出力してgrep検索可能にするツール作った

AWS ALBやELBのアクセスログですが、5分毎に出力していると大量のファイルになります。 調査するにしても複数の細かく分かれたファイルを結合したり、JSTとUTCの差を失念していて勘違いしたり、S3のフォルダ構造深かったり、ALBのアクセスログはgzip形式なの…

AWS CLIの利用方法まとめ(主にqueryオプションとTips)

AWS

queryオプションを主にaws cliの使い方をメモしておきます。随時更新予定です。 queryオプション query指定無しだと 基本の使い方 出力形式を知る queryを使ってみる 関数(Functions) contains join starts_withとends_with to_string sort_by length Tips J…

コマンドラインでEC2のコンソール画面テキスト(システムログ)を取得してgrep分析

AWS

EC2が原因不明で接続不可になることは以外に多いです。そんな時にVMWareやHyper-V、KVMみたいにコンソール画面に何が出ているのか確認したくなります。 AWSマネジメントコンソールから「インスタンスの設定」>「システムログの取得」で以下のような画面が取…

【AWS】ALBからCLIでEC2切り離しderegister-targetsはGracefulじゃない?

AWS

ALBからEC2を切り離す時に使う aws elbv2 deregister-targets のコマンド、大量のアクセスがあってもエラーを返すことなく切り離すことができると思っていました。 ① EC2をALBより切り離し aws elbv2 deregister-targets --target-group-arn target_group_ar…

AWS ALBに長いリクエストURLでGETすると414や500でエラーになる

AWS

AWS ALB(Application Load Balancer)に長いURLリクエスト投げてみたら、以下のテーブルのように、ある長さのリクエストからエラーが出ることを発見しました。 URLの長さ(Byte) HTTPレスポンスコード 〜16446 200 OK 16447 500 Internal Server Error 16448〜…

【AWS】ALBから自身(EC2)を切り離したり登録するbashスクリプト

AWS

ALBはELBと異なり複雑な構成も取れるので、必要に応じて修正して使う前提で、LBとTargetGroupとListenerが1:1:1の基本構成で作りました。 EC2をALBから切り離し ほとんどをAPIから取得する構成にしましたが、複雑な構成なら変数として持った方が良いと思われ…

AWS ELBの504ステータスのGateway Timeoutと格闘した話(最終的にALBで直った)

AWS

ELBのメトリクスのステータスには、バックエンドのEC2が返したステータス(HTTPCode_Backend_XXX)と、ELB自身のステータス(HTTPCode_ELB_5XX)があります。 ELB自身のステータスコードの中には504というエラーコードがあります。この504エラーと格闘した話を書…

AMIから構築したEC2は最初EBSが遅い、プレウォーミングが必要

AWS

EC2をAMIから構築したところ、ディスク(EBS)が遅い。CloudWatchでもキュー長が増加してしまっていました。 問い合わせたところ、AMI からEC2インスタンスを作成した場合、各 EBSボリュームは スナップショットからリストアした際と同様、データは S3 がダウ…

AWS EC2のタグを関連するEBSとENIにコピーするスクリプト

AWS

結構前に一回実行用に作ったものだけど、最近使う機会出たのでここにもメモ。 #!/usr/bin/env ruby require 'aws-sdk' require 'pp' region = 'ap-northeast-1' cred = Aws::SharedCredentials.new Aws.use_bundled_cert! cli = Aws::EC2::Client.new(creden…

AWS ALB(Application Load Balancer)のアクセスログをFluentdにInputする

AWS

AWS ELBのログをFluentd(td-agent)で集めて集計していました。最近、いくつかALBを使うサービスが出てきました。 このALBですが、 たぶん ALB(Application Load Balancer) が正式名称だと思っているのですが、たまに Elastic Load Balancing Version 2 と書…

EC2とEIPで冗長構成のApache Load Balancerを構築する(Pacemaker)

ELBはオートスケールで可用性も高く、ミドルウェアの心配しないでいいので便利なのですが、IP固定できないなど課題があるのと、障害時の調査がブラックボックスすぎて大変なため、Pacemakerを利用して冗長化構成のLoadBalancerを構築してみました。 CDPで言…