AWS関連のことを調べてみた2021年05月17日

AWS関連のことを調べてみた2021年05月17日

関口 厚の職歴情報

このページは、WEBエンジニア・コーダーの関口 厚の職歴についての情報を閲覧・ダウンロードするための記事です。

#履歴書と職務経歴書のダウンロードリンク
[履歴書(PDF)](https://www.yo2onweb.com/portfolio/resume_sekiguchi.pdf)
[職務経歴書(PDF)](https://www.yo2onweb.com/portfolio/work_experience_sekiguchi.pdf)

#リンクトインのプロフィール
[https://www.linkedin.com/in/sekiguchiatsushi/](https://www.linkedin.com/in/sekiguchiatsushi/)

#自作したWEBアプリの紹介記事
[WEBアプリ『ひとこと日記ver2』概要(Qiita)](https://qiita.com/Sekiguchi-Atsushi/items/4029966a13b0f5494b85)

#使用可能なソフトウェア・言語
(1)実務で長期間の使用経験あり
・**HTML5**、**CSS3

元記事を表示

AWS Databricksでクラスター起動時に「insufficient capacity error」が発生する際の対策

これはクラウドサービスプロバイダー側でインスタンスを確保できなかったことに起因します。サービスクォータの引き上げが必要となります。

[AWS のサービスクォータ \- AWS 全般的なリファレンス](https://docs.aws.amazon.com/ja_jp/general/latest/gr/aws_service_limits.html)

Databricks側の対策としては、ログ監視、そして、以下のAuto-AZ(アベイラビリティゾーンの自動選択)を活用することになります。Auto-AZはGUIではなくCluster APIでAuto-AZを有効化する必要があります。

[アベイラビリティゾーンの自動選択(Auto-AZ)](https://docs.databricks.com/clusters/configure.html#automatic-availability-zones-auto-az)

> You can configure the cluster to select an availability zone automatically based

元記事を表示

【DynamoDB】CLIで気軽にエクスポート、インポートを行う

## はじめに

`DynamoDBから特定のデータをエクスポートし、値を一部変更した上で再度インポートする`という要件があったので、これを AWS CLI で行ってみました。

DynamoDB のエクスポート/インポートは、[AWS Data Pipeline](https://docs.aws.amazon.com/ja_jp/datapipeline/latest/DeveloperGuide/dp-importexport-ddb.html)や[Lambda と S3](https://aws.amazon.com/jp/blogs/news/implementing-bulk-csv-ingestion-to-amazon-dynamodb/)を使用することで可能になります。
しかし、どちらもちょっと手間がかかります。
そこで、手軽にできる AWS CLI を使用して検証してみました。

## 結論

データエクスポートに[query](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/query.html)

元記事を表示

PrismaのMigrationをAWS Lambdaで実行する

# はじめに
TypeScript用のORMである[Prisma](https://www.prisma.io/)は、DBのスキーマをMigrationという方法で管理することができる。
ActiveRecordのMigrationとよく似ており、`CREATE/ALTER TABLE`のSQLクエリを順次適用していく感じのもの。

Migrationは、DBと疎通している環境から `prisma migrate` というコマンドを打つことで適用できる。
本記事では、このPrismaのMigrationをAWS Lambdaでサーバーレスに実行する方法を紹介する。

# 方法
大まかなアーキテクチャは下図。
なお本記事はDBがAWS上にあることを前提としているが、他のクラウドでも同様の方法は取れるはず。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/127392/70ef0478-3cda-92f2-6caa-edab85306975.png)

実際のコードは、[こちらのリポジトリ]

元記事を表示

lsyncdとrsyncを使用したサーバ間ファイル同期

##はじめに
lsyncdとrsyncを用いてAWS上に構築したサーバ2台でファイル同期をします。
今回は片方のサーバのみにlsyncdインストール等を実施し、2台目は何もインストールしません。
よって、片方向のファイル同期となります。

##構成
![rapture_20210516234723.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/535463/35394714-a3ca-134f-bede-366558be322a.png)

##前提条件
同期元サーバから同期先サーバに対して、SSH接続が可能であること
 - 同期先サーバに設定しているセキュリティグループでインバウンドの22/tcpが許可されている
 - SSH公開鍵認証が設定済み

##事前準備 (test2で実施)
同期先サーバにディレクトリを作成します。これが同期先ディレクトリにあたります。

“`
$ sudo mkdir /home/ec2-user/test2
$ sudo chown ec2-user:ec2-user

元記事を表示

[serverless]AWS Lambdaでnode-canvasを利用した画像生成をする

# 前書き
OGPの生成などnode.jsで画像生成をしたいというケースは最近増えてきているのでは無いでしょうか。その中でもクライアントで実行可能な[Canvas](https://developer.mozilla.org/ja/docs/Web/API/Canvas_API)を利用したいケースというのも同様に多いと思います。

またサーバーレスの台頭と共にデプロイに[serverless](https://www.serverless.com/)を利用しているケースもあると思います。

私自身がその様な環境で試す中、実行するまでに躓いた箇所があったので実際に動く簡単なアプリを作りながら途中の問題の解決法を解説していこうと思います。

# 実行環境
デプロイ: [serverless](https://www.serverless.com/)(テンプレート: [aws-nodejs-typescript](https://github.com/serverless/serverless/tree/master/lib/plugins/create/templates/aws-node

元記事を表示

Golangはじめて物語(第8話:API Gateway+LambdaでJWTを実装する)

# はじめに
Golang での JWT の実装はライブラリが充実しているので、比較的簡単に実装できる。
しかし、ググって見つかるのは Gin や Echo と組み合わせたものが多く、AWS で API Gateway を使った実例というのが少なかったので、組み込んでみる。

本記事は、以下の知識があることを前提とする。

– JWT に関する概要が分かっている(と言っても、あまり難しいことは知らなくてよくて[この記事](https://qiita.com/Naoto9282/items/8427918564400968bd2b)くらいの概要が分かっていれば充分)
– Golang で API Gateway + Lambda の WebAPI を実装したことがある(手前味噌ではあるが、[この記事](https://qiita.com/neruneruo/items/1ef52f908e4497103a59)を読んで理解ができていれば充分)

なお、今回は IdP には頼らずに自分で秘密鍵を使ってトークンを払い出して検証するという方式を検証する。

# トークン払い出しの実装
まずは、

元記事を表示

AWSサービス一覧(2021年) 気になったやつだけ

自分のためにAWSサービス一覧をざくっと理解したいので、勉強用の備忘録として何回かに分けて書こうかと思います。
というか、AWSサービス一覧のページはいっぱいあり、以下のページが最新情報としてはよい。
【2021年】AWS全サービスまとめ
https://dev.classmethod.jp/articles/aws-summary-2021/#toc-196

じゃ、上記をみればいいじゃんという話になるけど、
私が何をするかというと、上記サマリーページをサマリーしていこうかと、自分が覚えやすいように。

AWSサービスのカテゴリ分けとしては下記の形になるにかなと。
全部網羅するのはめんどくさいで、とりあえず、こんな感じでやっていこうかと。

##インフラ編
1. コンピューティング
1. コンテナ
1. ストレージ
1. データベース
1. 移行と転送
1. ネットワーキングとコンテンツ配信
1. VMware Cloud on AWS

##アプリ編
2. 開発者用ツール
2. モバイル
2. ビジネスアプリケーション
2. アプリケーション統合

##管理とセキュリティ編
3.

元記事を表示

【AWS】ピアソンVUEでAWS認定資格をオンライン受験すると不合格でも再受験が無料らしい

日本国内在住者の受験限定で、Pearson VUE のオンラインプロクタリングで受験すると、1回目の受験が不合格でも、2回目の受験が無料になるそうです。

[公式ソース](https://pages.awscloud.com/Global_TrainCert_Japan_Online_Proctoringja.html)

>2021年5月1日から2021年7月31日の AWS 認定の受験で、ピアソンVUEのオンラインプロクタリングを指定して予約する際に、プロモーションコード「AWS2021JP」を入力して適用するだけです。試験も試験監督員も日本語が選択いただけます。1回目の受験が不合格の場合には、2021年9月30日までの同試験の再受験(2回目)が無料になります。このプロモーションは日本国内在住者のみご利用いただけます。その他のプロモーションコードならびにバウチャーチケットの併用はできません(バウチャー支払い不可)。利用規約が適用されます。

でも、既に受験して合格実績のある人は、受験料半額クーポンを持っていると思うので、
これ併用出来ないからちょっと残念。

初めて受験される方など

元記事を表示

【Laravel】初めてのAWSデプロイ – 3~5分ごとにヘルパー関数が生成するリンクがHTTPとHTTPSで切り替わってしまう問題編 –

Laravel + vue.jsで作成したポートフォリオをデプロイするために初めてAWSを利用したところ様々な問題にぶつかり、解決に時間を要しました。

– **発生した問題**
– [JSファイルやCSSファイルが正しく読み込まれない問題](https://qiita.com/namo_berry/items/f56126a3ed866723a705)
– ブラウザを問わず、**数分毎にHTTPとHTTPSが切り替わってしまう**問題(★ 本記事)

前回、JSファイルやCSSファイルが正しく読み込まれない問題を無事に解決しましたが、次なる問題が発生しました。

# 3~5分ごとにasset()関数が生成するリンクのHTTPとHTTPSが切り替わってしまう問題
タイトルだけだと何のことやらと思います。

前回、無事に信用するプロキシを記述し、ヘルパー関数が生成するリンクをhttpsにすることに成功。無事にJSやCSSが読み込まれた…と思いきや

**「別のブラウザでもちゃんと表示されるのか確認しよう!」**

そしてfirefox、Edge、Safariで開いてみた結果..

元記事を表示

複数人でterraformを扱う際に気を付ける事

#複数人でterraformを扱う際に気を付ける事
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/659469/d7791108-ec33-6634-6db6-12c5624d9d1b.png)

#上の図の補足
上の図の補足をします。
10:00前の時点では、AさんとBさんのtfstateファイルは同じ状態だったとします。
Aさんが10:00にAWS上にリソースAをデプロイする為、terraform applyを実行したとします。
するとAWS上にはリソースAがデプロイされ、AさんのtfstateにはリソースAがデプロイされたことが記録されます。
この時点でAさんとBさんのtfstateファイルに差異が生まれます。
すると10:05という同じ時間にterraform planを行ったとしてもAさんとBさんの結果は異なり、
Bさんがterraform applyを実行しようとすると既にAWS上にリソースAは存在する為、エラーが発生します。

#-解決法- backend設定

元記事を表示

Route53で取得したドメインをWixで利用する方法

# はじめに
ドメイン周りの知識がなかったこともあり、
Route53で取得した独自ドメインをWixで使用するのに少し苦戦したため、方法を残しておく。

# Route53で取得したドメインをWixで利用する方法
基本的にWixの**既存のドメインを追加**にある、**登録済みのドメインを接続**の指示に従う。
**ネームサーバーを置き換えます**という手順で注意が必要で、
Route53のネームサーバーを変更するには、
Route53のダッシュボードから**[ドメイン](https://console.aws.amazon.com/route53/home#DomainListing:)**に移動し、該当するドメインを選択したあと、
**ネームサーバーの追加/編集**から変更することができる。
私はホストゾーンの設定のみを変更していたため、うまく行かなかった。。。

元記事を表示

MongoDB CompassからDocumentDBに接続する

##経緯

AWSのDocumentDBを使って遊んでるんだけど、ローカルの開発で使ってるMongoDB Compassで接続できないかいろいろ試した結果できたのでまとめ。

##前提
まずは、**接続するマシンに[MongoDB Compass](https://www.mongodb.com/products/compass)を入れておくこと。**WindowsもLinuxあるからお好きなので。

**AWSのDocumentDBには設定用のEC2が接続できていること。**
これはDocumentDBのAWS公式ドキュメントの[Amazon EC2 を使用して接続](https://docs.aws.amazon.com/ja_jp/documentdb/latest/developerguide/connect-ec2.html)を見ながらやればすぐできると思う。

##下準備 EC2編
* AWSのEC2のインスタンス概要に移動して接続するインスタンスまで移動して、接続ボタンをクリック
![image.png](https://qiita-image-store.s3.ap-n

元記事を表示

AWS Lambdaについて

AWS Lambdaがよくわからないので、勉強したことをまとめた。

## AWS Lambdaとは?
AWS Lambdaとは、ソースコードを書くだけでプログラムを実行できる、AWSのサービスの1種。
よって、開発者は、環境構築やサーバーの管理といった面倒で初心者がつまづきがちな作業から解放され、プログラムを書くことに注力できる。

## Lambdaの特徴
### サーバーの設定・管理が不要
Lambdaを使うと、ソースコードを書くだけでプログラムの実行が可能で、OSを準備したり、環境構築したりといった面倒な作業が不要。
また、OSのメンテナンスや更新、障害時の復旧、スケーラビリティの確保といった、サーバのメンテナンスもしなくてよい。
### スケーラブル
Lambdaはリクエストやトリガーがない間は実行されない。
逆にリクエストやトリガーが2つ以上あると、AutoScalingを使わなくても自動的に複数のLambda関数が実行される。
### 細かいリソース設定が可能
Lambdaを使用するときにはメモリを設定することになる。
メモリは128MBから3008MBまでの範囲で64M

元記事を表示

AWS WAF(v2)のログをAthenaとDatadogで閲覧する

## AWS WAFのログ

AWS WAFは以下のようなログを出力します。
デフォルトではOFFになっており、公式ではKinesis Firehose経由での配信がサポートされています。
こちらのログを、AthenaおよびDatadogで閲覧できるようにインフラを構築してみましょう。

“`json
{
“id”: “ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890”,
“content”: {
“timestamp”: “2021-05-15T00:00:00.000Z”,
“tags”: [
“aws_account:123456789012”,
“env:production”,
“region:ap-northeast-1”,
“service:waf”,
“source:waf”,
“sourcecategory:aws”
],
“service”: “waf”,
“attributes”: {
“http”: {
“url

元記事を表示

Cloud9の開発前準備(容量削減)

##はじめに
Cloud9にて開発を実施していく中でディスク不足が原因で様々な問題を引き起こしてしまったので、開発着手前に事前に設定しておくべき内容を記載しておきます。
ディスク不足によるエラーに関しては以下内容をご参照ください。
https://qiita.com/YotaHamasaki/items/a7ce6bc4039607e3a389
https://qiita.com/YotaHamasaki/items/a9b2093eeee44057aeef

##設定内容
①dockerイメージの削除
②メモリの解放
③swap領域設定
④ボリュームの追加

①dockerイメージの削除
ワークスペース作成時にはdockerイメージが初期状態で入っています。
これが容量を大きく圧迫しているので、dockerにて環境構築しない場合、削除してしまった方が良いと思います。
コマンドは以下になります。

“`
$ docker rmi `docker images -q`
“`

②メモリの解放
メモリの容量不足によりプログラム実行時にエラーが発生することがあるので、こちらも実施してお

元記事を表示

AWS VPCについて

#VPC (Amazon Virtual Private Cloud)

 VPCは、AWSクラウド内に論理的に分離されたセクションを作り、ユーザーが定義した仮想ネットワークを構築するサービス。
 サブネットは、パプリックサブネットとプライベートサブネットに分けることでのセキュリティ面、複数のアベイラビリティゾーンでAWSサービスを利用して可用性を図る面では重要になる。

・任意のIPアドレス範囲の洗濯をして仮想ネットワークを構築
・サブネットの作成、ルートテーブルやネットワークゲートウェイの設定などネットワーキング環境を完全に制御可能
・必要に応じてクラウド内外のネットワーク同士を接続することも可能
・複数の接続オプションが利用可能(インターネット経由/VPN/専用線Direct Connect)

##サブネット
VPCのIPアドレス、1つ以上のサブネットが必要になる。
IPv4は枯渇しつつ、今後はIPv6に変わっていく。
ネットワークACLを使用してトラフィックの設定を行える。
サブネット作成時にAZを指定する。作成後は変更ができない。

####パブリックサブネッ

元記事を表示

JAWS-UG朝会 #20で登壇した振り返り

## はじめに

みなさんこんにちは!
ハンズラボのサムです!

色々とあって記事にするまでに時間がかかってしまい申し訳ありません。
今回の記事は4月22日に参加したJAWS-UG朝会で登壇した時の振り返りです。

## 登壇の経緯

直近登壇したイベントの主催者である山下さんからの紹介で、
JAWS-UG朝会主催者の小倉さんを紹介して頂き登壇することになりました!
こうやって色々な方とつながっていけるのはいいですね!

※前回の登壇のお話

https://qiita.com/sam_eng3336/items/108dd6c3ff138b7a7ea2

## 登壇内容と反省会

テーマ:「AWS Transfer Familyを触ってみた !」
というテーマで5分のLT枠で登壇させていただきました。

こちらが当日使用したパワポです

パワポを作ってる段階ですでに気がついたのですが致命的なミスに気が付きました。
どう考えて

元記事を表示

【AWS】CloudFrontとは

## CloudFrontとは
フルマネージド型CDN(コンテンツ・デリバリー・ネットワーク)サービスです。
100以上のエッジロケーションにコンテンツをコピーして配信する機能を持っています。(キャッシュ機能)

図にすると以下の通りです。
![test.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/838372/978c84b0-e703-454a-5def-4d9fc777ce58.png)

ユーザーはEC2から情報を取りにいくのではなく、
CloudFrontから情報を取りにいくようになります。
EC2からデータを取りに行かないようになるため、EC2への負荷が軽減されます。

### 設計に関して
`Origin`には、EC2やS3、ELBなど様々なリソースを配置できます。
`CloudFront`には、**Behaviors**でどのような振る舞いをするか設定し、**Cache Policy**でTTL(Originの設定を何秒間ごとに読み込むかどうか時間を決める機能)を設定できます。

![

元記事を表示

モダンな技術を使ってRailsアプリを開発、デプロイするまでのロードマップ2021

## はじめに
 この記事はモダンな技術(後述)を使用してRailsアプリケーションを開発し、AWS上にデプロイするまでの学習手順を詳細にまとめたものです。基本的に参考になる記事、書籍を編纂し、自分がわかりにくかったと感じた部分は自分で記事を書いています。リンクの記事を書いてくださった方々には本当に感謝です。

## この記事の目的
 新しいことを独学しようとすると一つ大きな問題があります。それは計画通りに実行するのが困難であるということです。自分のすべき作業が明確化されていないことによって、
1. どのくらいで終わるのかを数値化することが困難
2. エラーを予測できない
3. そもそも次になにをすべきかわからず、それを決定するのに時間を要する
などの問題が発生します。私自身インフラの学習からアプリ開発、デプロイ完了までの期間が予定よりも2ヶ月近く伸びしまいました。
 この記事は次にやるべきことを明確化することによって、以上のような計画錯誤を減らすことを目的としています。計画術については[DaiGoさんの書籍](https://www.amazon.co.jp/%E5%80%92%E3

元記事を表示

OTHERカテゴリの最新記事