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

AWS関連のことを調べてみた2021年11月26日
目次

AWS SAM ローカルでいろんな角度からhello worldする

## やりたいこと
サーバーレスな処理を実装するのに備えて、ひとまずSAMを使ってローカル環境にてブラウザやcurlコマンドでhello worldをしたいです。

“`
$ sam –version
SAM CLI, version 1.22.0
“`

## 実装!
### sam initする

`sam init`して、プロジェクトを新規作成します。
SAMからの質問に対して、下のように答えました。

“`
template: AWS Quick Start Templates
package: type: Zip (artifact is a zip uploaded to S3)
runtime: ruby2.7
Project name [sam-app]: identify_user
quick start application templates: Hello World Example
“`

↓(参考)上記の詳細、質疑応答の全貌。

“`
$ sam init

Which template source would you like to use?

元記事を表示

AWSのssmのポートフォワードを並列稼動で起動する。

AWSのEC2を開発機として利用しているが、ssmで接続に慣れてくると、鍵をできるだけ使いたくない。できるだけIPを考えたくない。ポートフォワードで、接続できると良いとなってきた。

asis

“`
aws ssm start-session –target i-0dhogehogec26 –profile tanigawa.rei –document-name AWS-StartPortForwardingSession –parameters “portNumber=22,localPortNumber=50022
ssh -i ~/.ssh/key/tanigawa-rei-development.pem ec2-user@127.0.0.1 -p 50022 -N -L 8000:localhost:8000 -L 33306:localhost:33306 -L 9000:localhost:9000 -L 9090:localhost:9090 -L 15808:localhost:15808

ssmのポートフォワードでは、複数ポートの指定ができな

元記事を表示

EKSのバージョンの「サポート終了」についてちゃんと調べてみた

# 背景
業務でEKSを扱っていて、ふと生じた疑問について調べてみました。
[今回参考にしたドキュメント](https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/kubernetes-versions.html)

# EKSの「サポート終了」とは?
K8sは成長途中の技術であるためバージョンのアップデートが早く、約3ヶ月に1度のペースで新しいマイナーバージョンがリリースされています。
それに伴いAWS上のEKSクラスターもデプロイしたらしっぱなしではなく、運用しながら手動アップグレードし続ける必要があります。ドキュメントでは、
> 各マイナーバージョンは、最初にリリースされてから約 12 か月間サポートされます

と書かれており、これ以降で下記の終了日を超えるとそのバージョンは「サポート終了」となります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577028/1e9ddc5c-0e6e-653c-95e6-62306395c

元記事を表示

Route53でS3にホスティングしたアプリケーションをCNAMEを使って任意のドメイン名でアプリを公開する

# 前提

ドメインをとってRoute53でホストゾーンを作成してあるものとする。

https://qiita.com/mocomou_/items/ad70792f8935839b1071

# CNAMEとは
> 別名に対する正式名を指定するためのリソースレコードです。
ホスト名には、「canonical name(正式名)」以外に、「aliases(別名)」を付けることができます。DNSの名前解決では、CNAMEリソースレコードが見つかった場合、ドメイン名を正式名に置き換えて名前解決を継続します。ある別名に対する正式名は常に一つであるため、一つの別名に対し、正式名を二つ以上指定することはできません。
CNAMEリソースレコードは、以前はホスト名に別名を付ける手段として使われていました。現在では主にCDN (Contents Delivery Network)や、/24未満のIPv4アドレスの逆引きを設定する際に使われています。
別名は、例えば1台のサーバーで複数のサービスを提供している場合に、サービスごとにサーバーの名前を変えるときに使用します。サーバーの正式なドメイン名はse

元記事を表示

作成したアプリケーションをS3でホスティングしてインターネットに公開する

# Nuxt.jsで作ったアプリをS3にホスティングする

## Nuxt.jsでの作業

こちらの本を参考に(というかまるっと引用)して簡単なアプリケーションを作成。

そして

“`
$ npm run generate
“`

でdistファイルを作る。
このファイルの中身を後でS3にアップロードする。

generaateはホスティングサービスにデプロイするとき、
build はNode.js サーバにデプロイするとき
ように使い分ける。
参考:https://blog.mktia.com/diffrences-between-build-and-generate-in-nuxt/

## AWS S3での作業

### バケットを作成する

![バケット作成.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com

元記事を表示

[Rails] AWS SESのSMTPサーバを使う大まかな流れとSandboxを解除したやりとりの記録

Deviseのパスワード発行メールのように、受信を気にしないメールをサクッと飛ばしたい時がままあるので記事にしました。

# Rails
## gem
gem ‘aws-sdk-rails’
## ActionMailer
“`ruby
# config/initializers/aws.rb

Aws::Rails.add_action_mailer_delivery_method(
:ses,
credentials: Aws::Credentials.new(ENV.fetch(‘AWS_ACCESS_KEY_ID’) { ‘AWS_ACCESS_KEY_ID’ },
ENV.fetch(‘AWS_SECRET_ACCESS_KEY’) { ‘AWS_SECRET_ACCESS_KEY’ }),
region: ‘ap-northeast-1’
)
“`
“`ruby
# config/environments/production.rb

config.action_mailer.deliver

元記事を表示

LINE x SageMaker で背景切り抜きアプリつくった

# はじめに
LINExAWSでほげほげする回の続編です。これまで
i. LINEでLambdaに画像を送信
ii. Rekognitionで顔情報の取得(表情判定)
iii. SageMakerでセマンティックセグメンテーションモデル作成
をしてきました。今回はi, iiiを用いて、背景切り抜きするLINEアプリを作ってみました。具体的には
1. LINEでLambdaに画像を送信して
2. セマンティックセグメンテーションモデルを用いて背景画像を切り抜き
3. 切り抜いた画像をLINEに送り返す
をしてみました。基本的には組み合わせです。

# 完成物
こんな感じになります。
IMG_2422.jpg名

LINEで画像をおくると、背景が切り抜かれた画像が返却されます。
いぬ。かわゆ。
「あれ

元記事を表示

AWS ネットワーク

#【AWS ネットワーク】
AWSのネットワーク設計はとても重要。
TCP/IPなど、ネットワークの知識ももっとつけていこう。

記事について、誤りや不足している点がございましたらご指摘頂けますと幸いです!!

##AWS上でのネットワーク設計のポイント
– 物理設計の検討、構築が不要
– マネージドサービスによる運用負荷の軽減
– プログラマブルな作成、管理、展開

##VPC(Virtual Private Cloud)
– AWSの仮想ネットワークサービス
– 地域(リージョン)毎にアカウントと紐づいた仮想的なネットワーク空間
– リージョンは、複数のAZから構成される。
– 基本的に東京リージョンを使用する。
– 1アカウントで複数のVPCを作成することも可能。
– dev環境、stg環境とprod環境でVPCを分けることがスタンダード。
– ※ **前提**:VPCの内部のことをローカルという。

###VPCのCIDRブロックは /16 
– CIDRブロックは、/16 が推奨されている。
– (大きさは /28 から /16 の範囲で使用

元記事を表示

AWS Systems Managerのオートメーションを使う

## はじめに

本記事は、以下の記事の続きです。

https://qiita.com/kiyokanishiyama/items/8432d070b9436f999122

本記事では、前回に続き、Systems Managerのオートメーションランブックを実行できるようにします。
オートメーションランブックを使うと、Systems Managerのマネージドインスタンスにセキュリティーパッチを適用したり、Windows Server AMIにWindows Updateを全自動で終わらせるなど、様々なタスクを実行することができます。

## 記事のカバー範囲

– AWSが用意した既成のランブックだけでなく、ユーザーがカスタマイズしたランブックも実行できるようにします。
– ランブックのカスタマイズ方法についてはカバー範囲外です。

## オートメーションのロールを理解する

オートメーションの実行時に利用するロールとポリシーの関係です。

![2021-11-24-23-36-23-image.png](https://qiita-image-store.s3.ap-north

元記事を表示

【AWS】NLB配下のEC2をCloudFrontのIPで制限したい②

# 概要
下記の続きとなります。

https://qiita.com/kurono/items/71814097531ed32efd55

# 過信
そもそも、NLBがどのIPでヘルスチェックしているかを俺は理解していなかった。

ヘルスチェックをするIPはCloudFrontのIPアドレスではなく**NLBの所属するVPC内で払いだされたIPアドレス**。
NLBの先のインスタンスでは**CFのIPアドレス**と**VPCのCIDR**(AWS公式はVPCのCIDRを登録するのが推奨っぽい)をセキュリティグループで許可してあげなければいけない。
[ターゲットセキュリティグループ](https://docs.aws.amazon.com/ja_jp/elasticloadbalancing/latest/network/target-group-register-targets.html#target-security-groups)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

【AWS】NLB配下のEC2をCloudFrontのIPで制限したい①

## 概要
・CloudFrontの後段にELBがいるような構成になっていてCloudFrontではAWS WAFでDDos等防いでいるが、
 ELB及びEC2へは直接アクセスできてしまうのでブロックしたいパターン。

・ALBであればカスタムヘッダ/WAFで制御することも可能だが、今回はNLBということで後段のSGインバウンドを動的に対応させることに。

**公式ブログを参考にしていくことに。** 
https://aws.amazon.com/jp/blogs/security/how-to-automatically-update-your-security-groups-for-amazon-cloudfront-and-aws-waf-by-using-aws-lambda/

※大まかな手順等は上記公式ブログに記載の為今回は省きます。
## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/435702/0c59ab7d-9894-43ca-d8f7-2ca194c70

元記事を表示

【AWS S3】AWS CLIを使ってバケットに保存された最新のオブジェクトを取得する

#これはなに?
aws cliを使って、バケットに保存されている最新のオブジェクトを取得したかったのでそのコマンドのメモです。

## コマンド
–prefixでどのディレクトリから探すかを指定できる。
“Contents[?LastModified >= `2021-11-24T03:21`]“でどの時間より後かを指定している。

“`:コマンド:
aws s3api list-objects –bucket my-bucket-name –prefix Directry/ –query ‘Contents[?LastModified >= `2021-11-24T03:21`]’ | jq -r ‘sort_by(.LastModified) | reverse | .[0] | .Key’

“`

##おまけ
出力されたオブジェクト名をそのまま用いて、オブジェクトの詳細を取得できる。

“`:コマンド:
aws s3api head-object –bucket my-bucket-name –key ↑のコマンドの出力で得られたオブジェクト名

`

元記事を表示

mysqlのパスワードを変える方法

## 背景
AWSのEC2にデプロイするためにmysqlに入ろうとしたがパスワードが間違っていて入れず、パスワードを思い出すこともできなかったので再設定しました。

##/etc/my.cnf
vimで/etc/my.cnfを開き、[mysqld]の下にskip-grant-tablesと書きます。

“`ruby:/etc/my.snf
[myaqld]
skip-grant-tables
“`

##mysqlを再起動
mysqlを再起動します。

“`
sudo service mysqld restart
“`

##mysqlに接続

“`
mysql -u root
“`

mysqlに接続し、以下のように入力することでDB内のテーブルを再読み込みします。

“`
mysql> flush privileges;
“`

##新しいパスワードを設定!

“`
alter user ‘root@localhost’ identified by ‘新しいパスワード’
“`

新しいパスワードを設定したらDBから退出し、

“`
mysql> quit
`

元記事を表示

データサイエンティストのインターン面談をして採用側が感じているズレの正体とは?

##はじめに:本稿のターゲット
***データサイエンティストを目指す若手エンジニアや学生向けに投稿しました***

いまもっとも熱い職種の一つとなっているデータサイエンティスト。
その影響もあって大学生や若手の社会人でもその道を目指す人が増えています。
私は現在インターンの採用面談をしていますが、その工程の中で、

>◎データサイエンティストはどのような仕事なのか解像度がまだ低い
>◎実社会で求められているスキルと目指す側の方向性に乖離が起きている

というようなことを感じましたので一度ここで振り返っておこうと思います。

####データサイエンティストに求められる条件は数学だけなのか?
以下はデータサイエンティストに求められる素養を端的に表現した図になります。

![2021-11-25_15h03_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2323086/8a0fd6e9-2997-7949-5acb-65ad1bc7861d.png)

ご覧の通り。求められる素養は プログラミング力、ビ

元記事を表示

CloudFront の プロトコル設定

CloudFront のオリジン、ビヘイビアの設定のプロトコルの欄について。

#オリジンの設定

![スクリーンショット 2021-11-25 16.36.30.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1488939/3eef2476-9ec6-a1f0-bec7-615411960577.png)

CloudFront からオリジンへのアクセスプロトコルを指定する。
選択肢は以下の3つ。
– HTTP のみ
– HTTPS のみ
– マッチビューワー

例えば、HTTPを選択するとクライアントから HTTPS でアクセスが来ても CloudFront からオリジンへのアクセスは HTTP を使用する。
また、マッチビューワーを使用してクライアントのプロトコルに応じた切り替えも可能。

#ビヘイビアの設定
![スクリーンショット 2021-11-25 16.56.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/

元記事を表示

Lambdaレイヤーにnode_modulesを登録してみた

Node.jsのプログラムをLambdaにアップロードするときに、node_modulesの容量が大きすぎてエラーになることがあります。
それを回避するために、公式側でLambdaレイヤーにnode_modulesを登録することができるようになっているので、今回はその方法を紹介します。

# 前提
– Node.jsをインストール済み
– `npm install`の実行など、Node.jsに関する基礎知識がある
– Lambdaに関する基礎知識がある

# 手順
公式ドキュメントの
[Lambda レイヤーの作成と共有](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/configuration-layers.html)
を参考に進めていきます。

## 1. nodejsフォルダを作成する
「ただフォルダを作成するだけ」
ではありますが、1点注意点があります。
フォルダ名は必ず「nodejs」で作成します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amaz

元記事を表示

【速報!】VMworld 2021 Japan セッションまとめ (VMware Cloud on AWS編)【11/25-26ライブセッション開催中】

VMworld 2021 **Japan** に参加したのでVMware Cloud on AWS 関連のセッションまとめます.。2021/11/25-26でライブ配信されていて、2021年末までオンデマンド視聴/資料ダウンロードも可能です。

https://vmworld.jp/

#1. そもそもVMworldって?

> VMware社の年次カンファレンスです。他にもいろんな会社(例えばApple社)も自社の大型イベントで新製品や新機能の発表しているかと思います。今年USでは10/5-7にオンラインで開催されました。日本でも同イベント(VMworld 2021 Japan)は11/25-26でライブ配信されます。(再掲)

そのほかは過去記事もご参照ください。

https://qiita.com/sanjushi/items/9805631d3cc3c1f47e58

#2. VMworld 2021 Japan セッションの見どころ(VMware Cloud on AWS 関連)

AWSもスポンサーということで、いくつもVMware Cloud on AWS関連のセッシ

元記事を表示

AWS Systems ManagerでブラウザベースのWindowsデスクトップ接続

2021年11月23日にAWS Systems Manager (SSM)のFleet Managerで「コンソールベースのWindowsインスタンスへのアクセス」が発表されました。

https://aws.amazon.com/jp/about-aws/whats-new/2021/11/aws-systems-manager-console-windows-instances-security/

ブラウザベースでRDP接続ができるようになっています。SSM経由なので、マネージドインスタンス(SSMに接続されたEC2インスタンス)であればインターネットからのRDP接続ができる必要もありません。実際に試してみました。

# 手順

ドキュメントはこちら。まだ日本語版はありません。

https://docs.aws.amazon.com/systems-manager/latest/userguide/fleet-rdp.html

1. Systems Managerを開きます。
![image.png](https://qiita-image-store.s3.ap-n

元記事を表示

EKSをできるだけCloudFormationで構築した話

# 背景
業務でEKSを含むアーキテクチャの設計構築を任されました。しかしながら周りにEKS経験者がおらず独学で構築方法も学びました。そしてデプロイ後も保守性の高くなるようなEKSの構築方法に大分悩まされました。
そこで直面した課題や解決方法を共有します。

# はじめに
[具体的なソースコードはGitHubリポジトリで公開しています。](https://github.com/Makoto-Taguchi/EKS-CloudFormation-Setup)
ここでは、試行錯誤の道のりみたいなものを書きます。

# 今回のゴール
以下のようなEKS on Fargateを含むアーキテクチャを作成したい。
(パブリック/プライベートサブネットは2AZに跨ぐ必要あるのでそれぞれ2つずつ作っているが、図では簡略化)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/577028/100cd9b0-99a0-4ad5-f865-230ed2bb38d3.png)

# EKSクラスターの構築アプロ

元記事を表示

API Gatewayにカスタムドメインを割り当てる。

## API GWにカスタムドメインを設定する。

### 前提条件

* ドメインを取得済み(今回はFreenom利用)。
* Route53にホストゾーン作成済み。
* FreenomへNSレコードの値を登録済み。
* 東京リージョンでAWS ACMで証明書を発行済み。(Route53へCNAMEも登録済み)
* CDKのversion `1.134.0 (build dd5e12d)`

### 必要なリソースの準備と設定(CDK)

“`ts
import * as cdk from ‘@aws-cdk/core’;
import * as lambda from ‘@aws-cdk/aws-lambda’;
import * as apigw from ‘@aws-cdk/aws-apigateway’;
import * as acm from ‘@aws-cdk/aws-certificatemanager’;
import * as route53 from ‘@aws-cdk/aws-route53’;
import * as route53Tragts from

元記事を表示

OTHERカテゴリの最新記事