- 1. AWS Athena API利用時にQUEUEDステータスが数十秒も引っかかることがある
- 2. AWSの資格についての整理・ソルーションアーキテクト受験準備
- 3. QuickSightのEmbedのバックエンドフロー
- 4. CloudMapperをDockerで動かして、AWSのネットワーク構成を可視化しよう。
- 5. centos7 に Laravel6をインストール
- 6. サーバーレスとは
- 7. OPTIONSにAccess-Control-Allow-Originが付けれない環境でのPOST送信時のCROS対処法
- 8. AuroraServerlessへcsv形式で一括データ挿入する
- 9. AWS Lambda で Javaを使う ー実装編Tips – ReagionとInstanceIDからInstance名を取得する
- 10. AWS Lambda で Javaを使う ー実装編 – CloudWatchの引数を確認する
- 11. AWS S3 上のデータを Splunk に取り込んでみる
- 12. [知識ゼロから30時間で]AWS認定クラウドプラクティショナーに合格する方法
- 13. プルリクに対して検証環境を自動で起動/終了するプログラムを作ったら、検証が捗った話
- 14. インベントリー/ナレッジ管理系のElasticsearchフロントアプリを1日で作る
- 15. Amazon Elasticsearch ServiceのKibana Cognito認証設定をゼロから最小限の設定で実現する
- 16. AWS Systems ManagerでEC2インスタンスを管理するための初期設定
- 17. CloudFormationテンプレートを1からしっかり理解しながらECS on Fargateなアプリを自動構築する(後編)
- 18. ただのWebエンジニアがaws認定11冠達成できた話
- 19. AWS アカウントについて
- 20. サーバーレスWebアプリにメールフォームを追加実装する 〜 バックエンド編 〜
AWS Athena API利用時にQUEUEDステータスが数十秒も引っかかることがある
# 引っかかった話
AWS Athena API(AWS SDK for JavaScript)を呼び出してるLambda関数で**本当にたまにタイムアウトによるエラーが発生**されました。
Lambda関数で設定して置いたタイムアウト時間は40秒で短い時間でしたが、平均2秒±1ぐらいのクエリ時間がたまに40秒を超えるのはおかしいでした。
Athenaの対象データ(S3 Objects)がどんどん増えてAhtenaのクエリが比較的に重くなることはありえますが、速度改善のためパーティショニングも真面目にしているクエリに40秒のタイムアウトに引っかかったのはQuery Running Time (RUNNING)とは違う原因でしょう。
(API呼び出しの前後に時間が秒以上かかるところもありませんでした)
また、AthenaにもAPIごとに 「1 秒あたりのデフォルトの呼び出し数」と 「バーストキャパシティー」のクォータがありますが、これに引っかかったら明確にFAILEDで返してくれるのでこの原因じゃないでした。もっと確認した結果、**たまにQuery Queuing Time(QUEU
AWSの資格についての整理・ソルーションアーキテクト受験準備
# AWSて?
Amazon Web Service
仮想空間にサーバーを建てることが可能なサービス
他社もあるMicroSoft社:Azure, Google社 : GCP ( Google Cloud Plattfrom ) …## なんで使うの?(使ってメリット)
#### 接近性
– 物理サーバーが不要(データーセンター)
– DashBoard(Console)を提供し、操作が便利
– サーバー・HDに詳しくない人もボタン操作でなんとかサーバーは立ち上げる
– 設計によってコスパが良い(Case by Case)
– 拡張性(Scale In, Scale Outが便利)#### 問題ないの?(デメリット)
– サービスの数が多すぎる(2020年1月基準191個のサービスが存在)
– 設定しなきゃいけないの多すぎる
– 設定によってコスパー悪いのがもっと多い
– 自分が運営するサービスがどの組み合わせが良いか誰も知らない
– AWS社も認識し、カウンセリングサービスを運営してる
– 独自の用語が多い(VPCて?ECSて?FARGATEは?) → learning
QuickSightのEmbedのバックエンドフロー
### QuickSightのEmbedのフロー
こんな感じかな。自分用メモ
userArnでいろいろな認証を指定することができサポートしているようだ#### GetDashboardEmbedUrl
https://docs.aws.amazon.com/quicksight/latest/APIReference/API_GetDashboardEmbedUrl.html
UserArn
Amazon QuickSightユーザーのAmazonリソースネーム(ARN)。QUICKSIGHTIDタイプで使用します。 これは、次のいずれかとして認証されたアカウント内のすべてのAmazon QuickSightユーザー(リーダー、作成者、ま
CloudMapperをDockerで動かして、AWSのネットワーク構成を可視化しよう。
こんにちは。
AWSいいですよね。
でも、AWSって一つ一つのサービスがしっかり役割分担されているので、いざ一つのシステムとしてネットワーク構成図がどうなっているのかをみようとすると頭がこんがらがっちゃうんです、私。そんなとき[CloudMapper](https://github.com/duo-labs/cloudmapper)にお世話になりたくなります。READMEを読んでいただければですが、現在のAWSのネットワーク構成図を自動生成してくれるやつです。
ただ、何度かチャレンジしているのですが、いつも何かが足りなくてうまく動かないんです、私。最近は何をやるにもDockerでやっちゃっているのでローカル環境もあんまり汚したくなくて…CloudMapper公式や他の方々もDockerで動くようにソースコードを公開していたりするんですが、なんでかうまく行かなかったりしたので、今回は自分でDockerfileから作ってみようという記事です。
# 前提
– AWSアカウントがあること
– `SecurityAudit`と`ViewOnlyAccess`の権限をもったIAM
centos7 に Laravel6をインストール
centos7にLaravelを入れるまでの道のりです。
くっそ苦労しました。
たくさんの方の記事を参考にさせていただいた結果、最後に掲載している方々の記事が参考になったので、掲載させていただきます。# 環境
* AWS EC2(t2.micro)
* centos7
* Apache2.4系
* MySQL5.7系
* PHP7.2系
* composer# とりあえず必要なもろもろ
一つずつコマンドでやったほうがいいですが、めんどくさいのでシェルスクリプトにで入れます。
`$ vi hoge.sh`とかでファイルを作成すればよいですね。
`sudo bash hoge.sh`で使えます(`hoge`は適宣変えてください)“`centos_lamp.sh
#!bin/bash#とりあえず必要なものいろいろ
yum -y update #update
yum install -y vim #vim
yum install -y epel-release #epelリポジトリ
yum install -y fish #fishシェル
yum install -y
サーバーレスとは
# 概要
* サーバーレスとは何かの定義と特徴をまとめ、AWSの主なサービスおよびユースケースをまとめました
* 対象読者はサーバーレスの入門者およびサーバーレスで実装してみたいユースケースのある方です# 定義
利用者によるサーバーのプロビジョニングやメンテナンス、耐障害性の確保が不要なサービス
> プロビジョニングとは、必要に応じてネットワークやコンピューターの設備などのリソースを提供できるよう予測し、準備しておくこと
耐障害性は、何か障害が起きたときでもシステムのパフォーマンスを落とすことなくシステムを稼働し続けられる冗長構成のこと## 代表的なサーバーレスAWSサービス
### Amazon QuickSight
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/221272/18b98166-9f96-4d09-c93c-c097b1a2da17.png)
クラウド駆動の高速なBI(ビジネスインテリジェンス)サービス### Amazon Kinesis
![image.p
OPTIONSにAccess-Control-Allow-Originが付けれない環境でのPOST送信時のCROS対処法
# はじめに
別ドメインのサーバにブラウザ上からPOSTを送りたい場合に、特定の条件を満たしていないと必ずpreflightとしてOPTIONSを送信を行い、確認がとれた後にPOSTを送信します。
最近使えるようになったAWSのAPI GatewayのHTTP APIでは、CROS設定を行っていてもOPTIONSにはAccess-Control-Allow-Originはつきません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58795/6791735c-b94d-e854-bc09-91120f64616c.png)
そのため、ブラウザ側でPOSTを送信するまえにOPTIONSでCROS設定がされていないと拒否されてPOST送信にまでいきません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/58795/2907a716-70b2-2313-dd33-f124e12a92f5.png
AuroraServerlessへcsv形式で一括データ挿入する
S3に置いたcsvファイルのデータをAuroraServerlessにdataAPIを介して挿入するlambda。
“`python
import json
import csv
import boto3
import osrdsData = boto3.client(‘rds-data’)
s3 = boto3.resource(‘s3’)
bucket = s3.Bucket(‘バケット名’)
tableName = “テーブル名”
clusterArn = ‘クラスターARN’
secretArn = ‘シークレットARN’def lambda_handler(event, context):
# S3からファイル取得
bucket.download_file(‘S3上のファイル名.csv’, ‘/tmp/保存時のファイル名.csv’)# 最終的にAuroraServerlessに投げるSQL文
allSqlstr = “”# csv → json変換
with open(‘/tmp/names.csv
AWS Lambda で Javaを使う ー実装編Tips – ReagionとInstanceIDからInstance名を取得する
##AWS Lambda で Javaを使う 目次
・[Eclipse準備編](https://qiita.com/t_ookubo/items/a71a9bd05282bf20e023)
・登録実行編(いつか)
・[実装編 – EC2を止める/立ち上げる](https://qiita.com/t_ookubo/items/3b12bd985a65a73b4c59)
・[実装編 – CloudWatchの引数を確認する](https://qiita.com/t_ookubo/items/18d47265d39bba4364b8)
・[実装編Tips – ReagionとInstanceIDからInstance名を取得する](https://qiita.com/t_ookubo/items/619d8029546447e61391)### ReagionとInstanceIDからInstance名を取得する
引数にReagionコードとInstanceIDを渡すと、Instance名を返してあげる。
また、二回目以降、同じReagionコードを渡した場合、Mapに格納している値を返
AWS Lambda で Javaを使う ー実装編 – CloudWatchの引数を確認する
##やりたいこと
Lambdaで実行するJavaで、CloudWatchに登録してある引数を取得する。###背景・経緯
前回の記事で作成したEC2の起動停止するLambdaファンクションを、
CloudWatchEventsのCronで、8時、9時、17時、18時など複数の時間帯で起動するようにしていた。
が、どのインスタンスをどの時間に起動するようにしたか忘れてしまい、
いちいちCloudWatchEventsに登録した引数を確認しなければならなかった。
面倒だったので、引数を取得するファンクションを作成した。
(メモを取ると、登録している引数とメモを同期させないといけないので、避けたかった。)##AWS Lambda で Javaを使う 目次
・[Eclipse準備編](https://qiita.com/t_ookubo/items/a71a9bd05282bf20e023)
・登録実行編(いつか)
・[実装編 – EC2を止める/立ち上げる](https://qiita.com/t_ookubo/items/3b12bd985a65a73b4c59)
・[実装編 –
AWS S3 上のデータを Splunk に取り込んでみる
## はじめに
最近では AWS S3をベースとしたデータレイクを構築してデータをまとめているケースも多くあると思います。そこで今回はS3上のログをSplunkに取り込むまでをやってみたいと思います。いろいろな取り込み方法があるのですが、今回はとにかくシンプルかつ早い設定をテーマにやってみます。
##設定の流れ
大きく分けると AWS上の設定とSplunk上の設定の2つが必要になります。**AWS上の設定**
1. AWS S3 Bucket の作成
2. S3 上にデータをアップロード
3. IAMユーザー作成 & ポリシー作成しユーザーへの権限付与**Splunk上の設定**
4. APPの追加 (Add-on for AWS)
5. Configuration (User追加)
6. Input設定## AWS上の設定
###1. AWS S3 Bucket の作成
まずは通常通り S3 Bucke を作成します。Publicアクセスはすべてブロックで大丈夫です。
![image.png](https://qiita-image-store.s3.ap-no
[知識ゼロから30時間で]AWS認定クラウドプラクティショナーに合格する方法
## この記事はなに?
先日、AWS認定クラウドプラクティショナーを取得したので
その時の学習方法を紹介する記事です。
取得前はAWSに関する知識ゼロでした。
学習時間は大体30時間くらい。## この記事に向いている人
・AWSの知識ゼロの人
・効率的にAWS認定クラウドプラクティショナーに合格したい人## AWSってなに?
AWSとは、Amazonが提供するクラウドサービスのこと。
余談なんですが、その他の有名なクラウドサービスとしては
GoogleのGCP、MicrosoftのAzureなんかがあるらしい。## AWS認定クラウドプラクティショナーってなに?
AWSに関する知識を認定する資格がAWS認定試験です。
AWS認定試験の中でも一番基礎的なレベルの試験がAWS認定クラウドプラクティショナーです。
公式サイトによると、他のAWS認定試験との関係はこんな感じ。
全部で11種類の試験があるみたいですね。
![AWS認定試験_全体像.png](https://qiita-i
プルリクに対して検証環境を自動で起動/終了するプログラムを作ったら、検証が捗った話
# 記事の概要
GitHub Flowでの開発、つまり単純なプルリク運用での開発を、営業も巻き込んで実践したいと思い、そのような環境を作りました。その際、いくつか足りない機能を補うウェブアプリを作って公開したので、それに関する様々な話を書きます。
(実際にこのウェブアプリを使えるかどうかというよりは、似たようなフローで開発を改善できるといいなというような目的の話です。)# ウェブアプリのリポジトリ
https://github.com/uniaim-event-team/pullre-kun
このウェブアプリの使い方と機能については、一応README.mdに書いていますが、この記事では少し背景的な話も含めて順番に書きます。
issue対応やその他追加開発などは絶賛募集中です。# 背景
## 開発に関するよくある課題
これまで、既存のウェブアプリ(サービス)の機能追加開発において、以下のような課題がありました。
– 検証が十分にできていない機能がある
– 追加した機能の使い方を十分にレクチャーできていない/一部の人にしか認知されず**隠し機能**になる
– 時間が経過
インベントリー/ナレッジ管理系のElasticsearchフロントアプリを1日で作る
# はじめに
Elasticsearchを使って、インベントリーデータをささっと検索して必要な情報を取り出すようなアプリをゼロから1日で作る手順です。所持品やナレッジを分類データ化したものをパソコンやスマホから検索できるようにします。当然データ自体は自分で用意する必要があります。# 作成するもの
バックエンドはAmazon Elasticsearch Serviceを用意し、データはそこに蓄積します。
フロントエンドはブラウザで動作するReactアプリで、Reactivesearchというコンポーネントを活用して、Elasticsearch Serviceのデータを検索できるようにします。ブラウザ(のJavaScript)から直接Elasticsearch Serviceにアクセスします。
また、Reactアプリを自動でビルドしデプロイする環境もCodepipelineで作ります。### アプリの画面イメージ
(この画面はインベントリー管理になっていませんが流用はできると思います)
Amazon Elasticsearch ServiceのKibana Cognito認証設定をゼロから最小限の設定で実現する
# はじめに
Amazon Elasticsearch ServiceではIAMによる認証機能が提供されています。この記事では、最初にElasticsearch Serviceの認証について概要を説明した後、ElasticsearchのKibana利用時にこの認証機能を設定する手順について説明します。# Amazon Elasticsearch Service認証機能の理解
ソフトウェアのElasticsearchにはBasic認証などもありますが、Amazon Elasticsearch ServiceにはIAM認証しかありません。セキュリティ上はよいことですが、少し利用の敷居を上げることにはなります。
Amazon Elasticsearch Serviceでは、インフラ操作のAWS APIと、データ操作のElastcisearch APIの2種類のAPIがあり、そのどちらもIAM認証となります。AWS APIの方は、AWS CLIやSDKからの操作となるのでIAM認証もうまい具合に隠蔽してやってくれますが、Elasticsearch APIはクライアント側でIAM認証処理=
AWS Systems ManagerでEC2インスタンスを管理するための初期設定
AWS Systems Manager (SSM) を用いて、EC2インスタンスを管理するための初期設定について記載します。
# AWS Systems Manager (SSM) とは
AWS Systems Manager (以下、SSM) は、AWSリソースの設定や状態を収集して閲覧したり、AWSリソースに対してタスクの自動実行が行える運用自動化サービスです。
最近、業務で使用していて、便利さを実感しているサービスの一つです。# 初期設定
ここから初期設定に入ります。## 1. IAMロールの作成
管理対象のEC2インスタンスにアタッチするためのIAMロールを作成します。
このIAMロールは、EC2インスタンス内のSSMエージェントとSSMがやり取りするために必要になります。
「AmazonSSMManagedInstanceCore」というビルトインポリシーを割り当てます。
![FireShot Capture 037 – IAM Management Console – console.aws.amazon.com.png](https://qiita-image-
CloudFormationテンプレートを1からしっかり理解しながらECS on Fargateなアプリを自動構築する(後編)
# 前提条件
[前編](https://qiita.com/neruneruo/items/06b073f3846803f415e5)で作ったALBとECS、[中編](https://qiita.com/neruneruo/items/d62140f29f067b28925b)で作ったデプロイの設定をもとにCodePipelineを使ってCI/CDパイプラインを作るので、それぞれ理解しておく。前回から引き続き、記事中には、備忘のためにリファレンスに書かれていないデフォルト値を整理しておくが、2020年3月時点の情報であり、後でAWSが仕様を変えたとしても追従する予定はないので、挙動が違ったらリファレンスを見直してほしい。あと、今回の構成(ECS on FargateのBlue/Greenデプロイメント)以外の構成以外のデフォルト値まで調査はしていないのであしからず。
# CI/CDパイプラインを作成する
## IAMロールの作成
パイプライン中で作成しても良いのだけど、ロールが増えすぎてもなので、以下のような信頼関係のポリシで、CodePipeline, CodeCommit,
ただのWebエンジニアがaws認定11冠達成できた話
苦節、2年半。ようやくフルコンプできたので記事にしました。
来月からまた一つ増えて11冠ではフルコンプと呼べなくなってしまうのでなんとか滑り込み。
受かってホッとした。この記事はどういうスキルセットの人間がどういう過程で11冠したのかという感じの記事となります。
得意不得意、有効な方法とかは人それぞれだと思いますのでご参考までに# 目次
– スキルセット
– 俺的ランキング(難易度順)
– 勉強方法## スキルセット
– 今回でaws認定11冠
– しがないWebエンジニア
– 過去には広く浅くでサーバー構築してwebサービス作って運営して、ってことをやってる
– aws歴2年半くらい
– awsのインフラもけっこう浅いところまで
– フルスタックであり、ノンスタックでもあるまあWeb系なんでもやってた人です。昔は今ほど住み分けはできてなくて、デザイナーとプログラマーぐらい分けしかなかったです。
ちっちゃい会社だとインフラエンジニアなんてのも居なくて、**出来る人**とりあえずやるという感じでした。
エンジニアになる前から自宅の固定IPでサーバー立ててみてたりした俺がそ
AWS アカウントについて
# はじめに
AWSを始めるに当たって、アカウントをまず作成します。
下記のリンクからアカウントを作成することができます。
https://aws.amazon.com/jp/1. AWSアカウントを作ったらまずやること
– 作業用のIAMユーザーを作成する
– Cloud Trailを設定する
– 料金アラートを設定する# RootユーザとIAMユーザー
## Rootユーザー
– 全てのAWSサービスを使用できる
– アカウントの設定変更、サポートプランの変更などはルートユーザのみ変更可
– 通常の作業にルートユーザを用いてはならない(※)Rootアカウントの情報のパスワードが漏洩したり、試行錯誤によってパスワードが解析されてしまうのを防ぐために、MFA(Mutli-Factor Auhentication。多要素認証)という仕組みを備えている。
簡単に言うと、ログインするときにパスワードに加えて、もう一つ認証することで、二段階認証しないとサインインできないようにする仕組みになります。IAMの設定を開き、ダッシュボードのルートアカウントのM
サーバーレスWebアプリにメールフォームを追加実装する 〜 バックエンド編 〜
# サーバーレスWebアプリにメールフォームを追加実装する 〜 バックエンド編 〜
## はじめに
[AWSを活用したサーバーレスWebアプリの制作](https://qiita.com/w2or3w/items/87b57dfdbcf218de91e2)で作ったWebアプリにメールフォームを追加実装します。
2部構成にしていて、先にフロントエンド編から見ると良いと思います。
[サーバーレスWebアプリにメールフォームを追加実装する 〜 フロントエンド編 〜](https://qiita.com/w2or3w/items/b05df2bf49cba13a542e)## バックエンド
ベースとしたWebアプリはAppSyncを利用していますので、フロントエンドからメールを送るLambdaを呼び出す手段もAppSyncとします。### Lambda関数の作成
Lambda関数の新規作成時、実行ロールの選択と作成で「Amazon SNS 発行ポリシー」を加えておきます。
![Screenshot 2020-03-29 at 08.53.11.png](https://qiita-im