AWS関連のことを調べてみた2019年12月09日

AWS関連のことを調べてみた2019年12月09日
目次

AWS re:Invent 2019 ノート

AWS re:Invent 2019 に参加したまとめ。

### 感想
設計について blast radius というキーワードが目についたので個人的に頭に入れる必要がある。

キーとして train your builders というものがあり、学習型カンファレンスである re:invent 自体もそうだし、 builders’ library によるベストプラクティスの提供、DeepRacer のような機械学習に対する開発者の学習サービスの提供など、aws がその機会を提供しているのも各所で感じられた。

動向としては新サービスとしては ai/ml 系、on-prem との障壁を無くすために高性能な処理と低遅延のネットワーク系の追加が主であるように見えた。

### イベントについてメモ
las vegas のホテル&カジノ群で行われる大規模なイベントという感じで、隣の会場まで歩いて 20 min くらい掛かるので歩き疲れた(Bally’s という交通の便が最適ではないホテルに滞在したので顕著だった)。 可能なら会場となるホテルのどれかに滞在した方がシャトルでの移動で楽になりそう

元記事を表示

AWS マルチアカウントの管理を Toil にしないために

この記事は [GLOBIS Advent Calendar 2019 – Qiita](https://qiita.com/advent-calendar/2019/globis) の9日目です。

7月に GLOBIS へ SRE として参画してから、集中的に取り組んできたことの1つである「AWSマルチアカウントの構成や運用効率化」に関して書いていきます。

## AWS マルチアカウント構成について

GLOBIS では AWS アカウントを環境ごとに分ける構成を取っています。各サービスにつき開発、ステージング、本番環境という形で 3 アカウントを設けており、現在その総数は 20 に届こうかというところです。私が参画し始めた後にもアカウントは増えています。

マルチアカウント構成はポピュラーな AWS アカウントの使い方だとは思いますが、 GLOBIS の場合以下のメリットを感じています。

* GLOBIS はサービスごとに開発チームが分かれており、各チームへ的確に分割された AWS IAM 権限を付与しやすい。
* AWS リソースを操作する際に、誤ったサービス / 環境を操作

元記事を表示

AWS認定セキュリティ専門知識(SCS)を、1年の空白期間を経て取得したやったことまとめ

# はじめに
AWS認定セキュリティ専門知識(SCS)について、受験者数の絶対数が少ないのか試験対策に関する参考記事の投稿が少なく情報収集に苦労しました。

今回、2ヶ月ほどの準備をして取得できた試験準備のコツなどについてまとめてみました。セキュリティ専門知識に関わるAWS関連サービスのイメージを掴んでいただければ幸いです。

# 本記事の主な対象者
– AWS認定の他の試験区分は取得済みで、セキュリティ専門知識の受験を検討している方
– 取得に向けて有効な学習方法などの情報収集したい方

# 筆者のAWS認定履歴

|AWS認定 |取得日 |
|—|—|—|
|ソリューションアーキテクト – アソシエイト |2018-05-13|
|デベロッパー – アソシエイト |2018-06-03|
|SysOpsアドミニストレーター – アソシエイト | 2018-06-10|
|ソリューションアーキテクト – プロフェッショナル |2018-07-29|
|DevOpsエンジニア – プロフェッショナル |2018-08-26|
|ビッグデータ専門知識 |201

元記事を表示

AWS SDK for PHPv3でAWS SNSからSMSを送信するよ

おはようございます。パグと申します。

今日は、AWSのSimpleNotificationServiceで「日本国内の携帯電話に」
SMS送信をしてみます。ちょくちょく書き方を忘れてしまうので、備忘録です。
めっちゃ簡単です。

“`
use Aws\Sns\SnsClient;←これは読み込んで。
use Aws\Exception\AwsException;←これは別になくてもいいけど
“`

まずPHPのComposer.pharでphpSDKのV3を落としておきましょう。
Classの上部でClientを読み込みします。あとIAMで、
SNS操作権限のあるユーザーを作っておきます。

“`
$aws = [‘credentials’ => [‘key’ => ‘IAMで作ったユーザーのキー’,
‘secret’ => ‘IAMで作ったシークレットキー’],
‘region’ => ‘ap-northeast-1(環境のあるregion)’,
‘version’ => ‘2010-03-31’←ここは落としたSDKのVersionにより異なる
];

元記事を表示

イベントレポート(AWS / インフラエンジニアのスキルアップとキャリア戦略

AWS関連のイベント、セミナーに参加してきましたので、自分に対する備忘も兼ねて要点を纏めておきたいと思います。

・参加イベント
AWS / インフラエンジニアのスキルアップとキャリア戦略
https://engineer_career.splashthat.com/

3人の方の豊富な経験から若手に向けたキャリアについてのメッセージを桑原 宜昭 氏がディスカッション形式で進行するイベントでした。

パネルディスカッションは6つのテーマで構成されていました。(自分は遅刻で参加したので、最初の方は聞けませんでした)
技術についてというよりは考え方についての話がメインだったと思います。

# イベントの概要と主催三者の取り組みについて
遅刻で聞けず。。
塩谷 啓 氏 クラスメソッド株式会社
Gavin Zhou 氏 フリーランス
塚田 朗弘 氏 アマゾン ウェブ サービス ジャパン株式会社
桑原 宜昭 氏 モデレーター

# パネルディスカッション

## ???
遅刻で聞けませんでした。。

## 技術のこと
議題:AWS登場前と後のイ

元記事を表示

AWS Amplify の ServiceWorker で Web Push 対応を実装してみる – クライアント編

Web Push、送りたいことありますよね。

この記事は Web Push 通知を使うアプリを AWS Amplify で作ってみる話です。
特にクライアント側を AWS Amplify でどう実装するかを見てみます。
当初サーバー側もあわせて書こうとしたのですが、分量が多くなりそうだったので今回は一旦クライアント編として、サーバー編はまた Amplify の API カテゴリを絡めたものを後日書きます(たぶん)。

# Web Push やりたいときにやらなきゃいけないこと

Web Push を運用しようとすると、けっこう色々やることがあります。

1. Push を受け取るクライアント側
1. Service Worker の実装
* 購読状態管理、Service Worker 登録等を行うフロントアプリケーションの実装
* 購読処理時に払い出されるエンドポイントをサーバーサイドに送信
1. Push を送るサーバー側
1. 秘密鍵・公開鍵の生成、管理
* クライアントから送られてきたエンドポイント情報をサービスのユーザーと紐付けて保存、管理
* [Web Push

元記事を表示

AWS Athena で CREATE TABLE する

# はじめに

AWS AthenaでCREATE TABLEを実行するやり方を紹介したいと思います。
CTAS(CREATE TABLE AS)は少し毛色が違うので、本記事では紹介しておりません。

AWS GlueのCrawlerを実行してメタデータカタログを作成、編集するのが一般的ですが、Crawlerの推論だとなかなかうまくいかないこともあり、カラム数やプロパティが単純な場合はAthenaでデータカタログを作る方が楽なケースが多いように感じます。

# S3に配置されたデータに対してテーブルを作成する

`CREATE EXTERNAL TABLE` 構文を用いてテーブルを作成いたします。

例として、今回は[日本の人口推移データ](https://www.e-stat.go.jp/stat-search/files?page=1&layout=datalist&cycle=0&toukei=00200521&tstat=000001011777&tclass1=000001094741&stat_infid=000031524010)をs3://inu-is-dog/athe

元記事を表示

CloudFormerとCloudFormationで既存リソースもIaCしたい

# マネジメントコンソールが仕様書

という状況ありませんか?

新規機能を開発でテスト/検証のために、検証で動かしてる環境のリソースを自分用に立ち上げたいとかはよくある話だと思います。

その際に構築用のスクリプトやコード、それがなくてもせめてドキュメントなどが整備されていれば良いのですが
ドキュメント/スクリプトがまともに更新されてなかったり、そもそもなかったりしたら悲惨です。

AWSマネジメントコンソールで動いてるリソースを別ウィンドウで開いて、それを参考にぽちぽちリソースを新規作成しないといけません。

辛いので、少なくとも自分が環境を構築するときは、なるべくCloudFormationテンプレートを残すようにしています。
Infrastructure as Codeをチームで統一とかできればいいんですが、なかなか難しいのかなと思います。

# CloudFormationに慣れるのは時間かかる

AWSでのIaCとしてはCloudFormationが一般的だと思うのですが[^1]
CloudFormationは学習コストがそこそこ高いと個人的には思っていまして

例えば、C

元記事を表示

基本無料でリモート開発環境を作るためのレシピ(Visual Studio Code+AWS)

こんにちは!
エイチームブライズでサイト開発を行っている@aoi_coro_です。

この記事は[Ateam Brides Inc. Advent Calendar 2019](https://qiita.com/advent-calendar/2019/a-t-brides) 9日目の記事です。

今日は備忘録も兼ねて、簡単に環境を構築する方法を書こうと思います。
過去の自分がこんな記事が欲しかったなぁと思ったので。
きっともっとLV高い記事は他のメンバーが書いてくれるから、気軽にいこう:lollipop:

-背景-
Web開発をするには開発環境がいるらしい。

同僚A < Dockerいれちゃえば簡単ですよ〜
転職したての私 < 今度にする。(Dockerいるほどじゃないんだ、まだ)

:thinking:
さて、でもどうやってやろうか。
クラウド9とか使えば簡単だろうけど、自動的に課金されるのはやだなぁ
ちゃんとお金かかるところはわかってる状態で、自分で使うときに払いたいし。

# ローカルに何も入れたくない病患者
ローカルにはVisual Studio Codeを入れます。こ

元記事を表示

AWS UltraWarm 詳細解説

re:invent 2019 で発表された Elasticsearch service の新しいデータノード **UltraWarm** について解説していきたいと思います。
ですが、[AWS New Blog](https://aws.amazon.com/jp/blogs/aws/announcing-ultrawarm-preview-for-amazon-elasticsearch-service/) に書いてあることをここで書いてもしょうがないので、 Chalk Talk [^1]で仕入れてきた、ブログには載っていない情報も書いておきます。

## UltraWarm とは
とはいえ基本的なことは書いておきます。
UltraWarmは 巨大なサイズのログ解析を低コストで可能とする、新しいタイプのデータノードです。
下記に UltraWarm の特徴を書いていきます。

### 低コスト
UltraWarm はいわゆるウォームストレージと呼ばれるものです。
アクセス頻度の低いデータを保管コストの安いストレージに保存することで、コスト削減を測ります。
UltraWarm はウォー

元記事を表示

リアルタイム画像リサイズAPIをGo + Serverless Application Modelで作った時の感想

ちょっと遅れましたすみません。
fushimiと申します。投稿させていただきます。

## Api Gateway + Lambda + Go + S3 で リアルタイム画像変換処理

Goで画像リサイズをやる機会があったので記述します。

今回は、事前に動画のエンコード済みパターンを作っておくのではなく、さくらの[imageflux](https://www.sakura.ad.jp/services/imageflux/)のように、**リアルタイムで動画のサイズを命令通りに変換しよう**っていう試みです。

数年前初めてこのアイディアを聞いたときは、「キャッシュに乗らないエンコードパターンいくらでもパラメータで作り放題だけど不正アクセスとか大丈夫かなあ…」と思ったものですが、各社なんだかんだやっていっている試みがあるようです。類似のものは結構見つかるかと思います。

サービスの画像が重くて困り始めた社内の人間から、「うちもLambdaとかでサクッと作れない…?」と聞かれたのもあり、試しにやってみました。

## image-resizer-service

まず、aws

元記事を表示

NextcloudをモニタリングしてNew Relic APMのexternal serviceを理解する。

#目的
OSSのクラウドストレージソフト、Nextcloudをモニタリング対象にして
New Relic APMのexternal serviceがどのように見えるか確認していきます。
NextcloudはバックエンドストレージとしてS3を利用したり、機能追加にGithubを利用するLAMP構成のアプリケーションのため、

New Relic APMのPHPエージェントと外部サービスとの関係を理解する参考になります。

#nextcloud構築
##インスタンス作成

UserDataを入力してAmazon Linux 2 でインスタンスを作成します。

“`bash:userdata
#!/bin/bash
#環境変数
dbname=nextcloud #DB名
dbuser=nextadmin #DBユーザ名
dbpassword=nextpass #DBパスワード

#パッケージインストール
yum update -y
amazon-linux-extras install epel redis4.0 lamp-mariadb10.2-php7.2 -y
yum install

元記事を表示

Amazon API GatewayとAWS LambdaでつくるインタラクティブなSlackAppその2(Interactive Components)

[昨日](https://qiita.com/ikeisuke/items/097fee72073a26ee4d9d)はコマンドを作成し、レスポンスによってボタンを表示しましたが、
今回の記事ではSlackAppにおける機能として`Interactive Components`を利用しています。

また、この記事では以下の要素を利用して、SlackAppを構築するための基本的な部分を実装していますが、
個々の要素の具体的な利用方法や言語の実装についてはあまり触れません。

– Amazon API Gateway
– AWS Lambda (Golang)
– CloudFormation (AWS SAM)

# TL;DR

[昨日](https://qiita.com/ikeisuke/items/097fee72073a26ee4d9d)の続き
ボットが送信したボタンのクリックに対して対応した内容にメッセージを書き換える仕組み

以下の動作を参考にしてください。
![command.gif](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

Amazon SageMaker での機械学習モデルのメトリクス監視をさっと良くする方法

この記事は [ミクシィグループ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/mixi) 、9日目の記事です

# 概要
(3行まとめ)

* 機械学習のトレーニングジョブの精度モニタリング、モデル比較をいい感じにやりたい
* Amazon SageMaker では CloudWatch メトリクスのチャートが提供されるが、見づらい・・
* SageMaker SDK または 独自コードでメトリクス収集して、メトリクスデータやグラフをモデルと同じ場所(S3)に置くとよかった

# 課題 :innocent:

Amazon SageMaker では、トレーニングジョブのメトリクス監視用に [CloudWatch メトリクスをベースとしたチャートが提供](https://aws.amazon.com/jp/blogs/news/easily-monitor-and-visualize-metrics-while-training-models-on-amazon-sagemaker/) され、マネジメントコンソ

元記事を表示

CloudFormation の管理が壊れてしまったのを復旧させた話

この記事は [Opt Technologies Advent Calendar 2019](https://qiita.com/advent-calendar/2019/opt-technologies) 8 日目の記事です。
7 日目の記事は @peko-858 さんの [【ScalikeJDBC 入門】SQLInterpolation を QueryDSL に書き換えてみた](https://qiita.com/peko-858/items/76f5b3fa114953a9da1e)です
9 日目の記事は @technicakidz さんの `AWSのChalice ハンズオンにいったよ` です

# CloudFormation の管理が壊れてしまったのを復旧させた話

誤って CloudFormation(以下 CFn)管理から外れてしまった Aurora の DBCluster を最近リリースされた [リソースのインポート](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/resourc

元記事を表示

【AWS】 EKS on Fargate のクラスタを構築してみる

# はじめに
[UL Systems Advent Calendar 2019](https://qiita.com/advent-calendar/2019/ulsystems) の9日目です。

先日のAWS re:invent で Fargate for EKS が発表されました([AWSブログの記事](https://aws.amazon.com/jp/blogs/news/amazon-eks-on-aws-fargate-now-generally-available/))。
そしてなんと東京リージョンで利用できます。
もうEC2を管理しなくていいんです!!

これまでは EC2 の管理を避けるため(泣く泣く) ECS + Fargate を使っていた方もいらっしゃったのではないでしょうか。
この記事はそのような方を含めて、はじめて EKS をさわる方のためのチュートリアルです。
Fargate の EKS クラスタを構築するという基本的な操作を通して、実際の動きを確認してみます。

それでは、はじめてみましょう。

## 準備
### 作業用の EC2 インスタンスを構築

元記事を表示

AWS Lambda書いてて、Python引数のデフォルト値で少しハマった話

# 経緯

AWS LambdaのPythonコード内で、指定した日付(指定なければ1年前)を元に結果を返す関数を作った。
※下のコードは単に値を返しているだけだが、実際はboto3のリクエスト投げて結果を返している。

<コード>

“`python
from datetime import datetime
from dateutil.relativedelta import relativedelta

one_year_ago = (datetime.now() – relativedelta(years=1)).isoformat()[:-3] + “Z”

def lambda_handler(event, context):

# 問題の関数
def test_func(last_time: str = one_year_ago) -> str:
return “last_time: ” + last_time

print(one_year_ago)

# 関数呼んでるところ
print(test_func(“2

元記事を表示

AWS SAMでSlack bot作ってみた【Golang】

# TL; DR
AWS SAMを利用してLambdaをこねこねしたことがなかったので、テストなども交えつつやってみようと思います。
今回は簡単なbotをGoを利用して作ってみたいと思います。

# Tutorial
公式ドキュメントのチュートリアルをサクッとやっていきます。

“`bash
# インストール
$ pip install aws-sam-cli
$ sam –version
SAM CLI, version 0.37.0

# 初期化
$ sam init –runtime go1.x –name go-api
$ tree go-api
go-api
├── Makefile
├── README.md
├── hello-world
│   ├── main.go
│   └── main_test.go
└── template.yaml
“`

“`go:go-api/hello-world/main.go
// 初期ファイル
package main

import (
“errors”
“fmt”
“io/ioutil”
“net/htt

元記事を表示

【CentOS8】AWS CLIでS3にファイルをアップロード & バックアップ用のシェルスクリプトを作成する

# 概要
本書ではCentOS8にAWS CLIをインストールし、S3にローカルのファイルをアップロードします。またAWS CLIとS3を利用して、バックアップ用シェルスクリプトを作成します。

## 0. 前提条件
* AWS S3のバケットを作成していること。
* IAMユーザーを作成し、AWS S3のIAMロールを適用していること。
* 作成したIAMユーザーのアクセスキーID,シークレットアクセスキーを生成していること。
* <注意>AWSを不正に利用されないために、アクセスキーIDとシークレットアクセスキーの取り扱いに十分気を付けてください。
* 本書ではCentOS 8.0.1905 (Hyper-V上にインストール)を使用します。

## 1. AWS CLIのインストール

1. Python3.6をインストールする。

“`
# dnf install python36
“`

2. Python,pipがインストールされたことを確認する。

“`
# python3 -V
Python 3.6.8

元記事を表示

Lambda で Switch ロールに対応した複数アカウントのインスタンス一覧の取得

# 概要
AWS を**複数アカウント**で運用する場合、**Switch ロールでアカウントユーザを切り替えることがベストプラクティス**になっています。
これは**マスターアカウントでユーザを一元管理**し、マスターアカウントに紐づく**子アカウントではユーザを作成せずロールの切り替え**によって権限管理ができるからです。

この方法を利用することでユーザの管理はマスターで一元管理できるので便利ですが、一方で、不用意なユーザを子アカウントに作成しないといった制限もかかります。ユーザを作成できなければ不用意なシークレットキー、アクセスキーの管理からも開放されます。

一方、プログラムから AWS リソースにアクセスする場合、一般的にシークレットキー、アクセスキーを発行することがあると思います。しかし、Switch ロールを利用する場合は**子アカウントへのユーザ作成を極力避けなければなりません**。

今回はこのような場合でもリソースにアクセスできるような **「Switch ロールに対応した複数アカウントのインスタンス一覧の取得」**の例を解説します。

# 仕組み
Lambda

元記事を表示

OTHERカテゴリの最新記事