AWS

AWS Certified Big Data – Specialty 認定試験を受けました

AWS

AWSの認定資格でビッグデータの専門知識を問われる試験のAWS Certified Big Data – Specialtyを受験しました。何とか合格できたので、この試験に向けて勉強した内容などを残しておきたいと思います。 試験概要 試験の概要は以下参照 AWS 認定ビッグデータ – …

fish shellでaws-cliのコマンド補完

AWS

fish shellでaws cliのコマンド補完を設定してみたので設定方法を紹介したいと思います。 環境 Mac Sierra fish 2.2.0 設定方法 bashやzshについては以下の公式で設定方法が紹介されているのですがfishはありませんでした。 docs.aws.amazon.com色々調べたと…

ec2-scheduleでEC2のインスタンスタイプの自動変更

AWS

ec2-scheduleではインスタンスタイプの変更も可能です。 今回はインスタンスタイプを自動で変更する方法を紹介したいと思います。 設定方法 DynamoDBのConfigTableに以下を設定 テーブル名はスタック名+ConfigTableになっています。 ex) 月曜から金曜までの9…

ec2-schedulerでRDSを定期的に起動・停止する

AWS

前回、ec2-schedulerでEC2の定期起動・停止を試してみましたが、今回はRDSで実行してみたいと思います。RDSについてもほぼEC2と同様の設定になります 設定方法 DynamoDBのConfigTableに以下を設定 テーブル名はスタック名+ConfigTableになっています。 ex) …

ec2-schedulerでEC2を定期的に停止してコストを節約しよう

AWS

AWS Answerで公開されているec2-schedulerを使ってみました。 EC2の自動起動、停止についてはLambdaを使って色々と工夫されているかと思いますが、このec2-schedulerはかなり高機能なソリューションになっていますのでぜひ利用を検討してもらえればと思いま…

SecurityGroup設定のポイント

AWS

AWSのインフラ設計にあたって、セキュリティグループの設計は結構重要だと思うのですが、あまり意識して設計されていないケースも見受けられます。 メンテナンス性が考慮されていないと、後々かなり変更しづらくなりますし、誤って設定してしまい障害を発生…

AWS GlueのJob Bookmarkの使い方

実際にETLで処理するケースとしては、1日1回定期的に処理するなどのケースが多いと思います。 この場合、追加分のみを抽出してETL処理をする必要があります。 Glueには、前回どこまで処理したかを管理するJob Bookmarksという機能があります。 今回はこのJob…

AWS Glueの開発環境をDockerで構築する(その2)

前回、Glueの開発環境をDockerで作りましたが、zeppelinコンテナを起動してホストからsshフォワードを実行して接続するという構成でホストを意識する必要がありましたが、せっかくzeppelinをdockerで作っているのでsshフォワードを行う部分もdockerで実現で…

AWS GlueでVPCフローログ用のclassifiersを作ってみた

GlueでVPCフローログをparquet形式に変換させる定期ジョブを作ろうと思いクロール処理を追加したところ、ビルトインのClassifiersにはなかったため自動でテーブル構造を認識してくれませんでした。 認識させるためにはカスタムClassifiersを作る必要があるこ…

AWS Glueで新しくScalaがサポートされました

AWS GlueのETLスクリプトを作成する言語として、新たにScalaが追加されました。画面を確認すると以下のようにPythonに加えてScalaも選択できるようになっています。 以下はScalaで自動生成されたETLスクリプトになります。 import com.amazonaws.services.gl…

AWS Glueの開発環境(Zeppelin)をDockerで構築する

AWS Glueで自動生成されたETL処理のPySparkの開発について、AWSコンソール上で修正して実行確認は可能ですがかなり手間になります。 そこで開発エンドポイントを使って開発する方法が提供されており、Apache Zeppelinなどを使ってインタラクティブに開発する…

AWSで時刻同期サービスがリリースされました

これまでAWS上では時刻同期について、外部のサーバを利用する必要がありましたが、 AWS内で利用できるサービスがリリースされました。 これで外部へアクセスする必要がなくなりました。またうるう秒も自動で調整してくれるため是非利用するべきだと思います …

AutoScalingでEC2のDetach/StandByができない場合の対処法【cloudpack 大阪 BLOG】

AWS

はじめに AutoScalingを設定していて手動で設定を変更していると、たまに台数がずれるなどして最低台数の制限に引っかかりAutoScalingGroupからEC2をDetachやStandByにできない場合があります。スケーリングポリシーに基づいてインスタンスの増減が実施され…

起動後のEC2にIAM Roleを付与する【cloudpack 大阪 BLOG】

AWS

待望の機能追加があったので実際にやってみました。 これまで起動後のec2インスタンスにはiam-roleが付与できなくて不便な思いをしてきましたがやっと開放されそうです現時点ではawscliからのみしかできません。 またawscliの更新が必要になりますので気をつ…

Terraformで[Error reading config for xxxx : Invalid dot index found:]エラー【cloudpack 大阪 BLOG】

最近Terraformを触っていて少し躓いたので備忘録として残しておこうと思います。 現象としては、mapping定義にドットで参照しようとしてエラーが発生しました variable "vpc_subnet_cidr" { default = { public-a = "10.1.10.0/24" public-c = "10.1.20.0/24…

AWS Certificate Managerでサブドメインを発行する時に承認メール送信先を変更する【cloudpack 大阪 BLOG】

AWS

AWS Certificate Managerで証明書を発行する際のドメイン認証については、現在、メール承認のみとなっています。 例えばexample.comのサブドメインでSSL証明書を発行した場合で、ドメイン管理者が管理者のメールアドレスを公開していないと、デフォルトで以…

AWS Lambda(Python)を手っ取り早く高速化する方法【cloudpack 大阪 BLOG】

aws lambdaでは、CPUの使用時間に対し100ミリ秒単位で課金されるため、処理を高速化できるとその分料金も下がります。今回は簡単にLambda(Python)を高速化する方法を紹介します。 方法 処理系をJITコンパイル機能を持つPyPyに変更します。 これだけです。特…

NewRelicでEC2をモニタリング【cloudpack 大阪 BLOG】

AWS

NewRelicでEC2にWordPressをセットアップしてモニタリングしてみました。リソース状況が視覚的によく分かるので、パフォーマンス分析に使いやすいです。また、単にCPU使用率だけでなくプロセスごとのCPU使用率・メモリの推移やアプリケーションのレスポンス…

EC2の鍵を入れ替える手順【cloudpack 大阪 BLOG】

AWS

別のアカウントからAMIを共有して起動した際に、OSによっては公開鍵をうまく変更できていないことがあるので、公開鍵を入れ替える方法についての備忘録 手順概要 EC2からrootボリュームをデタッチ 別のEC2にrootボリュームをアタッチ rootボリュームをマウン…

AWS Lambdaの簡易コマンド(lambda-controller)を作ってみた【cloudpack 大阪 BLOG】

やりたかったこと 外部ライブラリを使ってlambdaを開発しているとローカル環境で開発してアップロードしてAWSコンソールから実行という手間がすごく面倒だったので、開発時の簡単な実行確認については、ローカル環境のコマンドラインで全て完結できないかと…

Route53にドメインをコマンドラインで登録する【cloudpack 大阪 BLOG】

Route53にドメインを大量に登録する必要があったので、cliでのやり方を調べてみるとインプットにjsonファイルが必要なことがわかりました。ちょっと面倒だったので別の方法を探してみるとcli53というツールを見つけました。使い勝手はかなりいい感じだったの…

AWS LambdaでGmail APIの呼び出し 第2回【cloudpack 大阪 BLOG】

前回でGmailAPIにアクセスする準備は整いましたので、引き続きLambdaでアクセスしてみたいと思います。 2.Lambdaの設定 ① Lambda用プロジェクトの作成 プロジェクトのディレクトリを作成します。また、GmailAPIにアクセス用のライブラリなども利用するためvi…

AWS LambdaでGmail APIの呼び出し 第1回【cloudpack 大阪 BLOG】

AWS LambdaからGmailAPIを呼び出したいと思い方法を調べてみました。当初はGmailAPIにアクセスするためのQuickstartが用意されていたため簡単にできるかと思っていました。が、サンプルがOAuth認証のみとなっていました。OAuthではプログラム実行時に手動で…

AWS IOTでDynamoDBへ登録する【cloudpack 大阪 BLOG】

仕事でAWS IOTを使って簡単なデモを作成しました。センサーから送信されたデータは、IOTからDynamoDBへ直接連携できる機能が用意されていたため、DynamoDBへ登録することにしました。今回はその手順を残しておきます。 手順(概要) 1.テーブル作成 2. AWS …

EC2インスタンスにRaspberry Piで電源スイッチを付けてみた【cloudpack 大阪 BLOG】

久しぶりにRaspberryPiを触ってみて思いついたので早速作ってみました。以前はLチカやったところで終わっていましたが、Pythonを少し覚えたので何かAPIと連携させてみようと考えていました。最近、EC2インスタンスを触ることが多くなりましたが、サーバの電…

boto3(AWS SDK for Python)でCloudWatchからメトリクスを取得する【cloudpack 大阪 BLOG】

boto3を使ってCloudWatchからメトリクスを取得する必要が出てきたので勉強がてら簡単なサンプルを作ってみました。 環境 サーバ:CentOS6.6 Python:2.6.6 boto3:1.2.1 boto3(AWS SDK for Python)のインストール AWSのリソースにアクセスするためのSDKをイ…