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

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

Route53 ヘルスチェックのエンドポイント設定のわな

こんにちは!
こちらは、ラクス Advent Calendar 2019 の20日目になります。
昨日は@danonb10さん「PostgreSQL 宣言的パーティショニングの制約事項」でした。

# はじめに
2019年10月に現場に変わりました。
ちょうど配属前にAWSソリューションアーキテクト アソシエイトを取得、勉強したことがしっかり頭に残っている状態でのAWS現場だったので、なんだかテンションがあがります。とはいえ、実際に業務でサービスを触るのは初めてなのですが、毎日新鮮な気持ちで勤しんでおります。

はじめてしっかり携わったプロジェクトとして、マルチCDNをフェイルオーバー構成にするという、ちょっとめずらしいことをやりました。今の現場が映像配信サービスをしてい

元記事を表示

AWS Systems Manager と EC2 Instance Connect を利用して鍵管理、 Public IP なしで SSH 接続出来る EC2 インスタンス構築

この記事は [Opt Technologies Advent Calendar 2019](https://qiita.com/advent-calendar/2019/opt-technologies) 6 日目の乗っ取り記事です

5 日目の記事は @kadokusei さんの [UTM に VyOS と WireGuard を入れてみる](https://kadokusei.hatenablog.com/entry/2019/12/05/221601) です
7 日目の記事は @peko-858 さんの [【ScalikeJDBC 入門】SQLInterpolation を QueryDSL に書き換えてみた](https://qiita.com/peko-858/items/76f5b3fa114953a9da1e) です

# AWS Systems Manager と EC2 Instance Connect を利用して鍵管理、 Public IP なしで SSH 接続出来る EC2 インスタンス構築

## tl;dr

– EC2 Instance Conne

元記事を表示

lambda_handler外のグローバル変数に気をつけよう(datetime)

# はじめに
ジョブが作成されてからLambdaが実行されるまでの間の時間(滞留時間)を取得する
Lambdaを作成していた時に
現在日時を取得するためにdatetimeを使用していたのですが、
そこで「AWS Lambdaは関数インスタンスを再利用」というのに見事にハマったので、
記事にしてみたいと思います。

# 最初に作成していたコード
まずLambdaが実行された現在日時を取得するための
コードを簡略化したものが以下になります。

“`.py
from datetime import datetime

now = datetime.now()

def lambda_handler(event, context):
method_a()

def method_a():
method_b()

def method_b():
method_c()

def method_c():
# xはジョブの作成日時を表しています。
time = now – x
print(data)
“`

– ジョブの作成時刻を`x`
– 現在時刻を`now`

元記事を表示

AWS SageMaker Studioを使ってみる

## はじめに
一週間ほど前に[JupyterじゃなくてJupyterLabを勧めるN個の理由](https://qiita.com/marutaku0131/items/9881d0430462e655a701)という記事を書きました。全然話は変わりますが、AWSの新製品発表会のre:InventというイベントでSageMaker Studioという製品が発表されました。AWSで今まで存在していたSageMakerのサービスを1つの画面で管理できることができるようです。今まで自分のローカル環境かGoogle Colaboratoryでしか機械学習をしたことのない僕ですが、このSageMaker Studioを試して見たいと思います。

## 使ってみる
使ってみます。SegeMaker Studioは現在preview releaseとなっており、近所の東京リージョンでは使用できません。使用できるのはオハイオ(us-east-2)のみになっています。

[![Screenshot from Gyazo](https://gyazo.com/60bb76640151362f6f0ca2

元記事を表示

TerraformでALBの高度なリスナールールがより簡潔に書けるようになる前の話

この記事は[ニフティグループ Advent Calendar 2019](https://qiita.com/advent-calendar/2019/nifty)の21日目の記事です。

昨日は@shin27さんの「[MySQLの外部レプリケーションを使って最小限のダウンタイムでAWS RDSに移行する](https://qiita.com/shin27/items/62315297afc4153c42ce)」でした。実は現在、@shin27さんと同じ部署でして、日々悩みながらも楽しく頑張っている姿を見ていました。

# はじめに
この記事では、2019年12月14日に私が書いた「[TerraformでALBの高度なリスナールールがより簡潔に書けるようになった話](https://qiita.com/shotaws/items/eab5887d0ce922271f4f)」に関連して、AWSプロバイダーのv2.41.0以前の世界では、管理の仕方をどうしていたのかを書きます。

# 自己紹介
はじめまして、ななです。

普段は既存のシステムを運用したり、GoプログラムやTerraform

元記事を表示

GitLab Runner Kubernetes Executor

# はじめに
GitLabはGitLab Runnerを組み合わせることでCI/CDを実現できます。
このGitLab CIでは`.gitlab_ci.yml`でジョブを定義しますが、GitLab Runner自体がジョブを実行するのではなくGitLab Runnerで設定された**Executor**が実行します。

Executorは例えば次のものがあります。

* Shell Executor
* Docker Executor
* Kubernetes Executor

今回は、Kubernetes上にデプロイしたPodがジョブを実行する**Kubernetes Executor**に焦点を絞って説明します。

# Kubernetes Executorの構成
Kubernetes ExecutorはGitLab CIでジョブ実行時にKubernetes上にPodとして立ち上がります。

上図にある通り、GitLab CI Job Podには次の3種類のコンテナが存在します。

* Helperコンテナ(1個)
* Buildコンテナ(1個)
* Serviceコンテナ(

元記事を表示

Alexa Skill Builder – Specialtyを取得するまでにやったこと

この記事は[Fusic Advent Calendar 2019](https://qiita.com/advent-calendar/2019/fusic)の21日目の記事です。

昨日は@Y_uuuの[「RailsアプリをECS FargateへデプロイするCI/CD pipelineを構築する」](https://qiita.com/Y_uuu/items/789c4c21ae1782f1ab13)でした。
re:Invent内のワークショップはこんな実践的なものがあるんですね。。すごく勉強になりそうです。
Laravelでの同じ機構も作ってみたいなと思いました!

昨日AWS認定試験の一つ、Alexa Skill Builderを受験してきました。
初のSpecialty試験だったので、どうなることやらと思っていましたが、
なんとか合格することができました。

今回はAlexa Skill Builder取得までに自分が取り組んだことをご紹介します。

少しでも次に受験する方への手助けになればよいかなと思います。

## 勉強前の知識

### 勉強前にやっ

元記事を表示

F# でAWS Lambdaのはじめかた

## Problem

[AWS Lambda が、.NET Core 2.1 ](https://docs.aws.amazon.com/lambda/latest/dg/dotnet-programming-model.html)をサポートされて、1年以上経過しました。
しかし、サポートされているのはC#だけではありません。F#もまた同様です。
F#は.NETで実行される機能言語であり、C#で記述されたAWS SDK for .NETなど、他の.NET言語で記述されたパッケージを使用できます。

これまでに、F#を使用したAWS Lambdaのプロジェクトを作ったことがない方にも分かるように作り方をまとめます。

## Solution

### 開発環境

#### Windowsの場合

開発環境は以下の通りです。

項目|値
—|—
IDE|Visual Studio 2019

#### Macの場合

項目|値
—|—
IDE|Visual Studio Code

### 準備

#### Windowsの場合

##### AWS Toolkit f

元記事を表示

AWSとSlackでサーバレスに今日の献立を教えてくれるのを作った

SREチームの[hisamura333](https://qiita.com/hisamura333)です。[クラウドワークス Advent Calendar 2019](https://qiita.com/advent-calendar/2019/crowdworks) 21日目の記事です。

みなさん日々たくさんの意思決定をされており、判断、決断することの難しさを感じていると思います。
私もそうです。

日々難題に迫られており、それをなんとか回避できないかと思って、作成したものを紹介できればと思います。
私の難題は、妻からの

「*今日の夕飯、何か食べたいのある?*」

。。。

# 作ったもの
この難題に私の代わりに、良い感じに答えてくれるものをAWSとSlackを使って作成してみました。

### 今日の献立候補を教えてくれる
まず使用のイメージです。
`/select` コマンドを入力すると、妻が作れるメニューの中から、今日の献立の候補をいくつか提案してくれます。
![fff2.gif](https://qiita-image-store.s3.ap-northeast-1

元記事を表示

AWS EC2(Amazon Linux)にPHP7.4をインストール

今年からAWSを使う機会が増えてきました。

で、近々PHP 7.4がインストールされたWebサーバーを用意する必要がありそうなので、
事前に検証した内容をまとめておきたいと思います。

目標

ブラウザで`phpinfo()`の内容を表示して、PHPのバージョンが7.4であることを確認する

1.インスタンスの作成

利用するインスタンスのタイプは「Amazon Linux 2 AMI(HVM), SSD Volume Type」
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/140849/358f2ae6-4029-aa9c-932a-20ecaa941192.png)

検証なのでインスタンプのタイプは「t2.nano」にしました。

基本的に設定値はデフォルトにして、セキュリティーグループのインバウンドだけ、
SSHとHTTP(HTTPS)での接続を許可させました。(デフォルトはSSHのみ許可)

![image.png](https://qii

元記事を表示

AWS CDK と3つのテスト

この記事は [PLAID Advent Calendar 2019](https://qiita.com/advent-calendar/2019/plaid) の21日目の記事です。

# はじめに

[株式会社プレイド](https://qiita.com/organizations/plaid) にてエンジニアインターンとしてお世話になっている @it-akumi と申します。
プレイドでは [KARTE](https://karte.io/) の開発をさせていただいており、専らJavaScriptと格闘する日々です[^1]。

これまでも他社のインターンに参加したことはありましたが、その際はWebサービスそれ自体の開発ではなく、インフラ周りの業務に従事していました。その際に AWS CDK を導入する機会がありましたので、今回はそのテストについて書きます。

# AWS CDK とは

Infrastructure as Code という概念が登場して久しいですが、AWS 上に構築するリソースをコード化するために提供されているのが AWS CloudFormation (以下

元記事を表示

Amazon Kinesis Video Streams WebRTC を使った LINE 風ビデオ通話 Web アプリを簡単に作れる AWS Amplify CLI Plugin を作った(あるいは作ろうとした)話

2019/12/20 20:00現在、書きかけですが日付も来たことなので公開します。
すみません。後日追記して完成させます。m(_ _;)m

# はじめに
なろう小説ばりに長いタイトルですみません。この記事は [AWS Amplify Advent Calendar 2019]( https://qiita.com/advent-calendar/2019/aws-amplify) の20日目の記事です。
タイトルそのままですが、今月発表された Amazon Kinesis Video Streams の WebRTC 対応を利用して、LINE 風のビデオ通話 Web アプリをより簡単に作るための AWS Amplify Plugin を作りました。

https://github.com/rtaguchi/amplify-util-webrtc

この記事では、このプラグインをどうやって作ったか、どうやって使うかを解説します。最後には Amplify とプラグインと Vue.js と Vuetify を使って超省エネで(所要時間15分ほどで)実際にアプリを作成したいと思います。

元記事を表示

AWS re:invent 2019に参加してきました 〜現地参戦して本当に得られたもの〜

## はじめに

[(株)いい生活 サーバープラットフォームチーム](https://jobs.qiita.com/employers/e-seikatsu/development_teams/24) の多田 (@es-y-tada)です。

2019年 12/2-12/6 に開催された AWS re:invent に、実際にラスベカスまで赴いて参加させていただきました。

僕自身は、今年の4月ごろから本格的に AWS の業務利用を始め、現在に至るまで EKS を基盤としたアプリケーション開発を続け、弊社のクラウド化戦線の波際で格闘してきました。

そんな中で、今年こそは弊社からも re:invent 参加させようという流れがあって、ありがたいことに白羽の矢を立てていただき、参加する運びとなりました(弊社からはCTO の松崎と僕の2名が参加でした)。

このエントリでは、この熱い5日間で僕が得たものをお伝えしたいと思います。

## AWS re:invent とは何か

AWS が開催する、世界最大級の learning conference 。

https://re:invent

元記事を表示

まだAPI Gatewayで消耗してるの?AppSyncのススメ

この記事は AWS LambdaとServerless #1 Advent Calendar 2019 の20日目の投稿となります。

# AppSync使ってますか?
この記事ではAPI Gatewayと比較をしながら,AppSyncのオススメポイントやTipsを紹介したいと思います。

# AppSyncのオススメなポイント3選

– DynamoDBやElasticsearchに対するオペレーションはLambdaいらず
– 一度のリクエストで必要なレスポンスを全て得られる
– 簡単にPub/Subが行える

## DynamoDBやElasticsearchに対するオペレーションはLambdaいらず

皆さん,そもそもサーバレス好きですか?
サーバレスって,ミドルウェアのパッチ適用とかの保守や,スケーリング,リカバリなどなど,元々はユーザ側が責任を負うべきことがらをまるっとクラウドベンダーが面倒見てくれて,ユーザは自分のアプリケーション部分に注力することができるというところが大きなメリットです。
おそらくこの記事を見ていただいているあなたも,サーバレスのそういうところをうまく活

元記事を表示

Lambda Functionの一覧をランタイムバージョンと共に表示する

古いランタイムバージョンのLambda Functionが残ってると、使ってなくてもAWSからEOL通知のメールが来るので、一覧を表示するスクリプトを書いた。備忘録代わりに投稿します。

“` bash
#!/bin/bash
regions=$(aws ec2 describe-regions | jq -r ‘.Regions[].RegionName’)
for region in $regions
do
aws –region $region lambda list-functions –function-version ALL | jq -r ‘.Functions[] | [.Runtime, .FunctionArn] | @csv’ | sort -V
done
“`

あとは、消したいものをgrepして、“`aws lambda delete-function –function-name ARN“`するだけ。Regionごとに消さないといけないので、ちょっと面倒くさいけど。

元記事を表示

AWS Certified Alexa Skill Builder(AXS) 取得しました

AWS Certified Alexa Skill Builder(AXS) 取得しました。
学習方法や所感をまとめておきます。

## 受験動機
自社でVUIやAlexa活用に関する案件が発生すると、相談を受ける立場にいるため、
「認定持っていたほうが説得力がでるな」との思いから受験することにしました。
Jenkins認定取得した時と全く同じ動機です。

## 試験内容
詳細はAWS公式サイトをご覧ください。
https://aws.amazon.com/jp/certification/certified-alexa-skill-builder-specialty/

Alexaスキルの開発、VUI設計、テスト、トラブルシューティング、公開の他にAWSの各種サービス(Lambda/CloudWatchなど)といったスキル開発に必要となる幅広い知識が求められます。
ちなみに、β版では英語のみでしたが、現在は日本語で受験できます。

## 対策
先に受験日を決める追い込み式が自分にはあっているため、半月先くらいで受験を申し込みしました。
試験対策としては、[こちら](https://

元記事を表示

AWSに構築したサーバ2台をNTP同期させる

#はじめに
AWSにEC2インスタンスを2台構築し時刻同期ができるかを確認しました。
その構成について説明したいと思います。

##構成
・Ubuntu 16.04 ×2台
・Ubuntu1台目は外部NTPサービス(NICT)へ時刻同期し、2台目は1台目と同期する
![rapture_20191220124051.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535463/9f91eecd-3ccc-a029-377a-a2b0d2bede2f.png)

##AWSの設計
・Internet GatewayをVPCにアタッチ
・NAT GatewayをPublicサブネットに追加 (NTPをインストールするため)
・ルートテーブルは以下のように設定
 - Public [10.0.0.0/16 local, 0.0.0.0/0 Internet Gateway]
 - Private [10.0.0.0/16 local, 0.0.0.0/0 NAT Gateway]

##Ubuntuの設定 (1

元記事を表示

AWS アカウントをぶっ壊したいあなたへ

フューチャーAdvent Calendar 2019 の20日目です。

## はじめに

AWS アカウントのリソースを全てぶっ壊したいと思った経験はないでしょうか?
ぼくはあります。
要はAWS アカウントに存在するリソースを壊すと言うことなんですが、これ結構大変なんですよね。

基本はTerraform で環境を構築して、壊したい時は、destroy コマンドで壊す。
しかし、アカウント用途によっては、野良リソースが増えていくのが現実です。
Terraform で管理しているリソースであればいいのですが、手動作成したリソースなど(Terraform 管理外)はdestroy 対象になりません。

そんなツラミとかも全て吹っ飛ばして、ぶっ壊すツールを紹介したいと思います。

## aws-nuke

[aws-nuke](https://github.com/rebuy-de/aws-nuke)は、AWS アカウントのリソースを全て削除するというツールです。
すでに`nuke`と言う名前の時点で物騒なものであることは想像できると思います。

## 環境

今回テストで使用した環境を

元記事を表示

terraformからroleにpolicyをattachするときの話

## 概要
* terraformにおける`aws_iam_policy`と`aws_iam_role_policy`の違いについて
* `aws_iam_policy`で生成したpolicyをattachする(`aws_iam_policy_attachment`)方が良さそう

## はじめに
今年の4月ごろにAWSのアカウントを作ってから、LambdaやKMSやEC2に触れてきました。

SAMを用いるとlocalでテストもしやすくて便利なので、使っていたのですが、
deployする先はcloud formationであり、cloud formationでできることはterraformでもできる場合があるという話になり、
terraformから触ってみた時にpolicy周りで混乱した話です。

## 詳細
policyを定義して、roleにattachするときのことです。

まずは [`aws_iam_policy_document`](https://www.terraform.io/docs/providers/aws/d/iam_policy_document.html)

元記事を表示

インターフェイス VPC エンドポイント (AWS PrivateLink)についてのメモ

# メモ

– AWSサービス毎、サブネット毎(ただし同じAZのサブネットは2つ以上指定できない)に有効にできる
– 例えば「EC2」のAPIエンドポイントに対して、既存のサブネット4つのうち2つをインターフェイス VPC エンドポイントを有効にする、等
– 有効にするとそのサブネットでENIが生成される
– 有効にしたサブネット(AZ)毎にプライベートDNS名が払い出される
– 「Private DNS names enabled」をEnabledにするとデフォルトのAPIエンドポイントのIPアドレスがVPCエンドポイントになる

![kousei.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/50690/ea97f21e-b9aa-6f3f-0778-d13829aefdda.png)

# 検証

上図のようにインターネットへの到達性の無いプライベートサブネットのインスタンスに踏み台からログインし、動作確認する。

## 「Private DNS names enabled」が有効の場合

元記事を表示

OTHERカテゴリの最新記事