AWS関連のことを調べてみた2020年10月24日

AWS関連のことを調べてみた2020年10月24日

【Windows】通常の通信はVPNを経由したくないけどAWS向けはVPNを経由したい

#はじめに

リモートワークでVPNを使っているんですけれども、Windowsで普通にVPNを設定するとすべての通信がVPNを経由してしまいます。
そこで、VPN先のネットワークへの通信だけVPNを経由し、普通にググったりツイッターで~~脱線~~情報収集したりするのは直接インターネットに出ていきたい。
しかしながら、特定のIPだけはVPNを経由したい。
そんな環境があって、特定の数個のIPアドレスだけ手動で登録して使ってました。

しかし、AWSのEC2スポットインスタンスをポコポコ立ち上げてアクセスする必要が出てきました。セキュリティ上、拠点以外からのアクセスは遮断しています。
スポットインスタンスを立ち上げるたびにいちいちパブリックIPを調べて手動でルーティング設定するのは面倒です。
そこで、AWS向けは全部VPN経由にする方法を考えました。
たまたまAWSが使われているサービスへの通信(例の52.68.96.58とか)もVPN経由になってしまいますが、まあ、許容範囲内でしょう。

#前提条件

・AWS Tools for Windows PowerShell がインストールされ

元記事を表示

Railsのbundle installで見かけないエラーが…それに対する解決法

# はじめに
最近、講義やゼミでの研究も相まってAWS Cloud9でrailsを使う機会が増えている。
そんな中で初めて見たエラーだった。ネットで検索してもいまいち解決法が分かりにくかったので、ここにメモがてら残そうと思う
# 本題
では、どんなエラーが出たのか。以下の様なエラーだ。

“`
$ budle install
There was an error while trying to write to
`/tmp/bundler-compact-index-xxxxxxxxx(date)-xxxxxx-xxxxxxx/versions`. There was insufficient space
remaining on the device.
“`

ほほう…何だろう。最後の一文を見るとデバイスの容量が足りないという事みたいです。
という事は・・・デバイスのボリューム自体を増やす。もしくは使いそうにないファイルの中身を消去して、空きを作るなどが考えられます。では、前者を解決策1、後者を解決策2としたいと思います。

#### 解決策1
これは、AWS Cloud9のボリ

元記事を表示

AWSとネットワーク(基礎)

# はじめに
AWSはAmazon Web Servisesの略で、Amazonが提供しているクラウドサーバーのサービスです。
AWSへの理解度を高めるために、学んだことをアウトプットします。
今回はネットワークとの関係を記載します。

# AWSを使う目的
AWSを使う目的は、簡単に言うとネットワークやサーバーを構築する手間を省くためです。
ネットワークやサーバーを構築するには、インターネット回線や複数のサーバー、接続するためのハブやルーターなどのネットワーク機器の用意が必要です。
AWSを使うことで仮想的なネットワークやサーバーを構築することが可能です。

# リージョンとアベイラビリティーゾーン

* リージョン
AWSでは世界に数十箇所のデータセンター群があり、それぞれの地域に存在するデータセンター群のことをリージョンと言います。

* アベイラビリティゾーン
アベイラビリティゾーンとはリージョンをさらに分割したものです。
アベイラビリティゾーンはそれぞれ独立した設備を用いているため、一つのアベイラビリティゾーンが災害などの被害を受けて使用できなくなっていても、別のアベイラ

元記事を表示

Chalice で Excel 向けの CP932 CSV ファイルを作成して返す

# はじめに

Webアプリケーションの管理系の仕組みを作っていると「システムのデータをExcelで開けるCSVファイルにまとめてダウンロードできるようにして欲しい」というパターンに経験上結構遭遇する。
Python3系で何も考えずにCSVを作ると UTF-8 の文字エンコーディングになるので、Excel のデフォルトの設定だと文字化けしてしまう。 もちろん、Excelでちゃんと読み込みエンコーディングを指定すれば問題なく開けるのだが、「そんなの分からんから最初から文字化けないようにして」と言われることも多い。その場合、Windows用のエンコーディング (CP932, あるいは Shift_JIS, SJIS) でCSVファイルを作成する必要がある。

今回は Chalice を使ってやっていたのだが、ドキュメントをよく見た結果ドはまりしたのでメモ。

## version など

“`bash
$ pipenv run chalice –version
chalice 1.21.2, python 3.8.2, linux 5.4.0-52-generic
“`

##

元記事を表示

Lambda Layer と CloudFormation / sam-cli で楽ちん X-Ray

# はじめに

こちらの [Lambda Layer と X\-Ray \- Qiita](https://qiita.com/Ricordanza/items/d68d708e274e28b6bfa2) という記事で、X-Ray を Lambda Layer で組み込む方法が紹介されています。複数の lambda をデプロイする場合に、個別に X-Ray を組み込まなくても一発で付け外しができるので、けっこういい感じです。

けっこういい感じなんですが、すこしコマンドを叩くのが手間なので、CloudFormation 化できないかな、と思っていたところ [AWS SAM CLI で Lambda Layers が ビルドできるようになったよ \- Qiita](https://qiita.com/hayao_k/items/f8c7ad5e35e29d590957) という記事を見つけました。

というわけで、2つの記事の内容をガッチャンコしたら、こんなかんじで

  **X-Ray の LambdaLayer を CloudFormation で作れて楽チン!**

という記事です

元記事を表示

AWSの構成図からワンクリックでリソースを作成できるサービスを作ってみた

# この記事について
AWSを学習しているときに構成図を見て、「この構成図にタグとかスペックを設定できて、ここから直接リソースを構築できたらいいのに!!」と思ったことがあるのは私だけでしょうか?
今回は、そんなサービスを作ったのでその紹介になります。

URL: https://guinfra.app
フィードバック: https://forms.gle/iqHVrFQRjkNKWefA8

(グラフ作成機能があったりキーの入力等の操作が必要だったりするので、PCからのアクセスを推奨しています!スマホからの方すみません?‍♂️)

# 自己紹介
Amplify with AppSyncのベタープラクティス

Amplify with AppSyncの開発に携わっていく中で見つけたプラクティスをまとめました。
皆さんの開発の助けになれば幸いです。

## 前提
– Amplify上に展開しているアプリケーションはReact x TypeScriptで構成されていることを前提にしています。
– Amplify cliで運用するにあたってのプラクティス紹介が中心なので、AmplifyやAppSyncそのものの説明などはしていません。
– これらのプラクティスがどんなケースでも有効というわけではないので、プロジェクトに合わせて使えそうなものを採用してみてください。
– ここに載っているもの以外でみなさんが実践されている/ご存知の知見があれば、是非シェア頂けると助かります!

## 環境を分ける
Amplifyには開発環境を分離できる機能が備わっています。
以下の図のように、開発環境や本番環境毎に切り替えることが出来るので、開発基盤を作る際にまずは環境を分けるのが良いと思います。

![](https://storage.googleapis.com/zenn-user-upload/yu9yjvg

元記事を表示

AWS VPC作成の記録

# はじめに
AWSのVPCを構成する要素とその作成方法。特にPublicサブネットの登録方法。そして、簡単にいくつかの設定値について記述します。

# VPCを作成するぞ!
## 今回扱わないもの
私は、開発・検証環境を作ることが多いので毎日の料金負担が発生しそうなものは省略しています。
* Natゲートウェイ 設定するだけで料金がかかるようだ。
* Elastic IP 使用していると料金はかからないようだが、使わずにIPアドレスを占有していると料金がかかるようだ。

## VPC を俯瞰

VPCの構成要素になります。ほかに「セキュリティグループ」もあります。

![VPC構成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/93066/0016a90b-ba3c-744b-ae03-e016372d47f3.png)

VPC
VPC本体
ネットワークACL
サブネットのファイアウォールのようなもの。セキ

EMRをVisual Studio Codeから起動するスクリプト (コロナ禍対応)

Visual Studio CodeからEMRを使う方法として今はJupyterHubへの接続をしています。

毎回、EMR設定、立ち上げを行うのは面倒なので、スクリプトを書きました。

## Security Groupの設定

昨今、毎回、IPが変わるようなシチュエーションも想定されるため、クライアントアドレスを自動的に送信して所望のアクセスを得ます。

“`bash
sg_name=sg-hoge

# delete existing security group
sg=$(aws ec2 describe-security-groups –filters Name=vpc-id,Values=vpc-******* Name=group-name,Values=$sg_name –query ‘SecurityGroups[*].[GroupId]’ –profile prof)
aws ec2 delete-security-group –group-id $sg –profile prof

# create security group
echo creati

LINE Messaging API + AWS + GASでサーバーレスな体温管理

LINEベースで連絡をとっているサークルで、体温を毎日はかり各自Googleスプレッドシートに書き込んで管理していたのですが、回答率が悪く、またLINEでリマインドをすると他の連絡事項などのメッセージが流れていく、、ということが起こっていました。
そこで、LINEの公式アカウントを作り、そこで毎日体温のリマインドをし、そこに返信したらスプシに自動で書き込まれる、というシステムを今まで触れたことがなかったLINE Messaging APIやGASの勉強も兼ねて作ってみました。

#このソリューションのメリット

サークルに限らず会社や他のコミュニティでもそうだと思うのですが、COVID-19の感染が広がる中、メンバーの体温管理が必要な状況となっています。
体温を毎日測ってもらって、フォームで聞くかスプレッドシートに書き込んでもらうという手段が考えられるのですが、少しでもステップが多いと毎日行ってもらうのが厳しくなります。具体的に言うと、URLを送りそれに答えてもらうという形をとると回答率が一気に下がります。そして毎日リマインドをするのも大変で係の心理的負担にもなる上に大事な連絡事項が流

AWS Elemental Link 使ってみた!

発売日の朝に iPhone12 が届いた streampack 木村です。

早速、仕事しながらデータ移行などをやってますが、実はもうひとつ届いてたものがあります。

それがコレ
#Elemental Link です

![Image from iOS (17).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/172426/02805dac-d4dc-47d7-8fbd-837f48261f66.jpeg)

要は電源入れたら勝手に AWS にストリームを送ってくれるハードウェアエンコーダーボックスです。

AWS Elemental Link
https://aws.amazon.com/jp/medialive/features/link/

リリースからちょっと時間経っちゃってますが、遅ればせながらオーダーしてみました。

# 注文

Elemental Link は AWS アカウントと紐付いている為、自身の AWS アカウントにログインした状態で、前述の Elemental Link のペー

Amazon Linuxでrbenvをインストール

## 依存ライブラリーをインストール
“`
sudo yum -y install gcc
sudo yum -y install make
sudo yum -y install openssl
sudo yum -y install openssl-devel
sudo yum -y install gcc-c++
sudo yum install -y mysql-devel
sudo yum install -y readline-devel
sudo yum install -y libxml2-devel
sudo yum install -y libxslt-devel
sudo yum install -y bzip2
“`

## gitをインストール
“`
$ sudo yum -y install git
“`

## rbenvをインストール
“`
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv
$ echo ‘export PATH=”$HOME/.rbenv/bin:$

TimestreamにAWS CLIでクエリ

### 事前状態

* awscliを最新にする
* Timestreamでサンプルデータベース作っておく

### ヘルプ
“`bash:
$ aws timestream-query help
“`

“`bash:
TIMESTREAM-QUERY() TIMESTREAM-QUERY()

NAME
timestream-query –

DESCRIPTION
AVAILABLE COMMANDS
o cancel-query

o describe-endpoints

o help

o query
“`

### ドキュメントはこちら

https://docs.aws.amazon.com/cli/latest/reference/timestream-query/query.html

### CLIでクエリ

“`bash:
$ aws timestream-query query –query-s

AWS Lambda Powertoolsを触ってみた



# はじめに
サーバレスの[イベント](https://serverless.connpass.com/event/190055/)で[紹介](https://speakerdeck.com/_kensh/aws-lambda-powertools)された[AWS Lambda Powertools](https://awslabs.github.io/aws-lambda-powertools-python/)が便利そうだったので触ってみました。
(こちらの[セッション](https://pages.awscloud.com/EMEA-field-OE-AWS-Developer-Ac

AWS Certified Database – Specialty 合格しました

先日、AWS認定データベース専門知識の試験を受験し、合格しました!
その記録を残しておきます。

AWSのデータベース関連の実務経歴としては、RDS PostgreSQLが直近1年ぐらいです。DMSは検証でちょっとだけ触りました。

AWS認定試験の履歴 (リンクは合格体験記)

– 2019年9月 AWS Certified Solutions Architect – Associate
– 2019年10月 [AWS Certified Big Data – Specialty](https://qiita.com/suzuki-navi/items/8b2fe5a35a4439013461)
– 2019年11月 [AWS Certified Machine Learning – Specialty](https://qiita.com/suzuki-navi/items/3664bfbc102052717426)
– 2020年10月 AWS Certified Database – Specialty (今回)

# 勉強方法

AWSが公開しているYouTubeの動画を見

AWS S3 MacローカルディレクトリのファイルをS3に差分同期する

# 目的

– AWSのS3の任意のバケットにMacローカルのディレクトリの差分だけを同期する方法をまとめる

# 実施環境

– ハードウェア環境

| 項目 | 情報 |
| — | — |
| OS | macOS Catalina(10.15.5) |
| ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
| プロセッサ | 2 GHz クアッドコアIntel Core i5 |
| メモリ | 32 GB 3733 MHz LPDDR4 |
| グラフィックス | Intel Iris Plus Graphics 1536 MB |

– S3
– 下記の方法でバケットを作成した。
– [AWS S3のバケットの作り方](https://qiita.com/miriwo/items/41e488b79fb58fa7c952)

# 前提条件

– 下記の方法でMacローカルのファイルを同期することがすでにできていること。
– [AWS S3 Macローカルの

Amazon Web Services入門 (AWSの基礎)

# はじめに
ITシステムやアプリケーション構築する際に「サーバーレス」というのが当たり前になっています。
クラウドの中で最もシェアが高く世界中で利用されているのが AWS です。
![Amazon-Web-Services_logo835x396.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/229633/5abec582-9624-d757-303d-21a58c4cf813.png)
AWS には、サーバーレスアプリケーションの構築と実行に使用可能な、一連の完全マネージド型サービスが用意されています。サーバーレスアプリケーションでは、コンピューティング、データベース、ストレージ、ストリーム処理、メッセージキューイングなどのバックエンドコンポーネントのために、サーバーのプロビジョニングやメンテナンス、管理を行う必要がありません。また、アプリケーションの耐障害性や可用性を心配する必要もなくなりました。

AWS の機能を基準にしてクラウドやオンプレミス環境との機能やコスト比較することがIT構築で必須と

NginxでAWS ELBのHealth Checkログを出力させない方法

NginxでAWS ELBのHealth Checkをアクセスログとして出力させない方法を紹介します

# 環境

![Nginx](https://img.shields.io/badge/nginx-1.19-green.svg) ![LB](https://img.shields.io/badge/LB-AWS%20ELB-orange.svg)

# 方法

## コンフィグ

“`nginx
map $http_user_agent $loggable {
~ELB-HealthChecker 0;
default 1;
}

access_log /var/log/nginx/access.log main if=$loggable;
“`

## 解説

mapとaccess_logに分けて少し解説していきます

### map

`map $first $second {…}`とすると、`$first`を`{…}`に沿って評価して返り値を`$second`にマッピングします
今回の場合は`$http_user_ag

【挫折経験アリ】プログラミング未経験から独学10カ月でAWS,Laravel,Nuxt.js製webサービスをリリースするまで

#プログラミング初心者こそ個人サービス作るべき

一度プログラミング学習に挫折したこともある僕ですが、学習を再度開始して半年ほど経ってから個人開発を始めました。

まず前提ですが、この記事は以下の方向けです。

  • プログラミング頑張りたい初心者
  • プログラミング学習継続してるのに中々成果が出ない方
  • 個人開発でアプリケーションつくりたいから参考にしたい方

少しでも、プログラミング初学者の方の学習継続のヒントになれば幸いです。

まず初めに、一念発起して本気で個人開発したwebアプリがこちらです。

https://connectee.jp/

サービスの目的は3つあります。
**1. オンラインイベントの開催にかかる負担を減らす。**
**2. 難しいイベント集客のサポートのため、出不精の人でも集客できるくらい、拡散されやすい仕組みを作る。**
**3. 来客者の期待値と主催者のイベント内容のミスマッチをなくす。**

まだまだ機能的に足りていませんが、サービスが目指す世界は以上の3つです。

##サービ

AWS運用改善サービスランキング【AWS Management Governance】

AWSを運用していると下記の様な悩みがでてきます。

* 便利さとセキュリティが両立できない。問題発生によりどんどん運用が面倒になる
* ソフトウェアバージョン管理ができていない(知らないうちに古いバージョンのまま使い続けていた)
* 同じような環境作成の依頼が何度も来る。(特にテスト環境など)
* コスト管理が面倒(組織や部署ごとに算出できていない)
* AWS運用改善案がでてこない(これは悩みではないかも)

私は大規模ECサイトの運用に1年ちょっと携わっています。
このECサイトは2015年に構築されたシステムであり、
今のベストプラクティスとはかけ離れていることから
上記のような悩みが出てきてしまいました。

そこでAWS Management GovernanceのAWSサービスの中でAWS運用改善効果の高い順にランキングしました。
導入難易度も考慮に入れています。
この順序で導入を検討してみるのが良いのかなと思います。

### AWS Management Governance(旧 Management Tools)とは
[AWS での管理とガバナンスの概要](https