- 1. AWSを基本からまとめてみた【AWS Amplify入門】
- 2. AWSではマルチテナントの公平性をどう実現しているのか?
- 3. DNS名を付けるように構成する
- 4. MacにてEKSのPodにログインする。
- 5. LightSailめも
- 6. RDS Ploxy 経由で MySQL にアクセスするLambdaを、VPC内で実行
- 7. [Linux]ポート疎通確認
- 8. AWS OpenSearch インデックスのマッピングのデータ型変更の手順
- 9. 新たなアプローチ!サーバーレスアーキテクチャ
- 10. 2分で分かるAWS CDK入門~AWS CDKとは?~
- 11. Lambda Layersの設定 Layer設定するだけでrequestsが使えるって
- 12. 関連づけられてないEIPをSlack通知 & 削除するLambda
- 13. サーバーレスの静的ウェブアプリケーションの公開について
- 14. AWSバックエンド開発の環境構築
- 15. PrivateLink構成のDatabricksでライブラリをインストールする
- 16. セッションマネージャを使ってECインスタンスへアクセスする
- 17. DynamoDBのクリーンとコピー
- 18. クライアントサーバ方式とP2P (STUN)でファイルの転送速度を比較してみたらP2Pの方が圧倒的に遅かった件
- 19. 【AWS】【CloudFormation】ベストプラクティスのお勉強
- 20. DyanmoDBのテーブル設計
AWSを基本からまとめてみた【AWS Amplify入門】
## AWSAmplifyとは
Web及びMobileアプリ開発のためのフレームワーク
– AWSのクラウドサービス上にモバイルアプリケーションを構築するための最も速く、簡単な方法。
– 利用者はクラウドサービスのバックエンドの構築をツールに任せ、アプリケーション実装に集中できる。
– ポピュラーなバックエンドの構成とそれを利用するためのフロントエンドの統合を自動で構築できる。## 参考サイト
[AWS Amplifyとはなんなのか3行で表現する](https://qiita.com/laha/items/1e0805edacce111e9332)
[【AWS Amplify入門】第1回:Amplifyの理解](https://www.youtube.com/watch?v=aNtcomPtfhI&t=13s)
AWSではマルチテナントの公平性をどう実現しているのか?
# 概要
* 今回は、AWSではマルチテナントの公平性をどう実現しているのかについて記事にしていこうと思います。
* なおこちらの記事については、[Amazon Builders’ LibraryにあるFairness in multi-tenant systems](https://aws.amazon.com/jp/builders-library/fairness-in-multi-tenant-systems/)を基に個人の解釈でまとめていったものになります。# AWSにおいてのマルチテナントの公平性
* AWSの各種サービスはものすごい数生まれ、提供されている中でAWS自体の普及も拡大し、その分利用に関してAWSのアカウントが作成されていると思います。
* 今回お話していくのはそんなAWSがどうやってAWSを利用するユーザに対しサービス利用の公平性を実現しているのかについてを深ぼっていくという内容になります。
* またここで述べている公平性というのは、**AWSにおいてはすべてのクライアントにシングルテナントと同等の体験が提供できることを公平性**としています。#
DNS名を付けるように構成する
# DNS名を付けるように構成する
AWSマネジメントコンソールでVPCダッシュボードを表示します。左メニューの「お使いのVPC」をクリックしてください。
DNS名を設定するEC2インスタンスのあるVPCをチェックし、アクションの「DNSホスト名の編集›」をクリックしてください。

DNSホスト名の編集ページが表示されます。
「有効化」をチェックし、「変更を保存」をクリックしてください。
# 割り当てられたDN
MacにてEKSのPodにログインする。
# はじめに
久しぶりにEKSのPodに入る必要があったので、環境設定とその手順をまとめる。EKSクラスターは既に作られているものとする。また、エディタはVSCodeを想定。
# 環境設定
1. kube-ps1のインストール“`
brew install kube-ps1
source “/usr/local/opt/kube-ps1/share/kube-ps1.sh”
PS1=’$(kube_ps1)’$PS1
“`
※ コンテキストがプロンプトに表示される。
“`
# コンテキストの表示を消す場合
kubeoff# コンテキストを表示させる場合
kubeon
“`1. kubectlのインストール
“`
brew install kubectl
“`1. kubectxのインストール
“`
brew install kubectx
“`
※ kubensも利用できるようになる。
LightSailめも
Springで作ったJarをLightSailに置いて実行したが、ちょっとしたら落ちていた。
ログ見たらメモリ不足でカーネルにKILLされていた。。
メモリを増設(512MB→1G)して解消。
※参考文献
https://linuxfun.org/2021/07/23/upgrade-lightsail-instance/#i-3
https://aegif.jp/alfresco/tech-info/-/20201119-alfresco/1.3
RDS Ploxy 経由で MySQL にアクセスするLambdaを、VPC内で実行
# はじめに
RDS Ploxy 経由で MySQL にアクセスするLambdaをVPC内で実行させましたので、手順をまとめます。
# RDS Ploxyの作成
RDS Ploxyは、以前作成した記事がありますので、こちらを参考にしてください。https://qiita.com/hirai-11/items/07b25f81f1a983e0191c
# private subnetにLambdaを作成
## 設定
– IAMロール
– `AWSLambdaENIManagementAccess`を付与します.これによってVPC上でLambdaが実行できます。
– タイムアウト時間
– 30秒にします。実行に数秒かかります。
– 環境変数
– RDS_HOSTN
[Linux]ポート疎通確認
# 概要
– ある特定のポートでリッスンする(はずの)サービスをEC2上で起動している
– EC2にはEIPを割り当てて外部公開もしている。
– セキュリティグループ,ネットワークACL,iptablesも設定して、特定のIPをアクセス元とする特定のポートに対するアクセスのみを許可している。というような状態で、外部からの疎通確認をしたいときに。
# 1. サーバー内での各ポートのリッスン状況を確認
“`
# リッスンしているポート番号の確認
netstat -atn | grep LISTEN
=>
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp6 0 0 :::22 :::* LISTEN
※↑はIPv4, IPv6のポート22でリッスンしてるものがある状態# ポートをリッスンしているコマンドの確認
lso
AWS OpenSearch インデックスのマッピングのデータ型変更の手順
現在AWS OpenSearch マッピングのデータ型が変更できないので、一時のインデックスを経由で、インデックスを再作成して、インデックスのマッピングのデータ型を変更する。
例:以下のインデックスの`field:test-text`が`float`から`keyword`に変更する場合、
“`
{
“sample_index” : {
“aliases” : { },
“mappings” : {
“dynamic” : “true”,
“_meta” : { },
“dynamic_date_formats” : [ “strict_date_optional_time”, “yyyy/MM/dd HH:mm:ss Z||yyyy/MM/dd Z”, “basic_date_time” ],
“dynamic_templates” : [ ],
“date_detection” : true,
“numeric_detection” : false,
“properties”
新たなアプローチ!サーバーレスアーキテクチャ

非常に人気がでている「サーバーレス」によるシステム開発。
もちろんエスプリフォートでも「サーバーレス」によるシステム開発を行っています。
「サーバーレス」での開発は、通常のシステム開発とは異なるため、トータル的にこれら技術が顧客のためになるかを見極めた上で取り組んでいっています。本稿では、エスプリフォートで「サーバーレス」についてや開発における注意点などを少しご紹介いたします。
## サーバーレスとは
サーバーレスとは、文字通りに「サーバーがなし」との意味があります。
サーバー構築や保守などの管理作業を行うことなく、クラウド上でプログラムを実行できる仕組みであり、サーバーレスは非常に人気のある技術であり、世界中の多くの大企業や会社によって使用されています。普通、多くの場合システムを開発・運用するためには、ネットワーク
2分で分かるAWS CDK入門~AWS CDKとは?~
# 動画
5分で分かるAWS CDK入門動画を作成しました。この記事は動画の内容をさらにさらっと2分程度で読める内容となっております。
# Infrastructure as Codeとは?
* 繰り返し設定する項目を手動で実施すると下記のような問題点があります。
* インフラをコードで定義することで下記のようなメリットが生まれます。
# CloudFormation(CFn)とは?
* Yamlでテ
Lambda Layersの設定 Layer設定するだけでrequestsが使えるって
lambdaで必要なライブラリはzipであげないといけない!けど、
### 皆んながよく使うやつは、Layerってとこに設定すればいいんですって!
さらに、
有志でこんなものが!
https://github.com/keithrozario/Klayers/blob/master/deployments/python3.8/arns/ap-northeast-1.csv
### このARNをLayerに設定するだけ、すてき!# requestsの設定の仕方
コード の下コードソース
↓
コードのプロパティ
↓
ランタイム設定
↓
レイヤー
の右「レイヤーの追加」1. レイヤーソース > 「ARNを指定」を選択
2. ARNを指定のテキストフィールドに
3. ここから入れたいものをさがして、そのarn欄をコピペ
https://github.com/keithrozario/Klayers/blob/master/deployments/python3.8/arns/ap-northeast-1.csv
今回は「requests」の latest の arn
![スクリー
関連づけられてないEIPをSlack通知 & 削除するLambda
# はじめに
EIPの料金体系についてご存知でしょうか。
以下のケースで、EIPは料金が発生します。1. 実行中のインスタンスと関連付けられている追加の IP アドレス(= インスタンスは実行中だが2個以上EIPが関連づけられている)
2. 実行中のインスタンスと関連付けられていないEIP
3. 関連付いているEC2が停止している
4. EIPを、1ヶ月に100回以上リマップhttps://aws.amazon.com/jp/ec2/pricing/on-demand/
ちょくちょく個人の検証環境にて2番目の**EC2に関連付いていない(= 使わずに放置されている)EIP**が湧くことがあります。(単純に消し忘れ)
EIPが1つ生き残っていた場合、1ヶ月あたり大体以下の無駄な費用が発生します。
(これを多いととるか少ないととるかはお任せします)“`
0.005 × 24 × 30 × 135 = 486円※計算に必要な値
EIPの料金:$0.005/h
1ヶ月:30日とする
1ドル:135円とする
“`そこで今回紹介するLambdaを使ってこのEIPを一網打
サーバーレスの静的ウェブアプリケーションの公開について
React で静的ウェブアプリケーションを作成し、静的ウェブコンテナとして作成した Amazon S3 バケットに配備して公開するまでの大きな流れを説明します。
**防御壁:**
* 私が、社内でプログラミングに不慣れな後進へ勉強会で説明するために作成している文書です。内容は、初回の投稿のままではなく、随時更新します。
* 私は、C、Java、.NET、Perl や Python などを主に業務で使用してきたため、最近の ECMAScript は経験が浅いです。私も学びながら、教えながらの文書のため、正確性に欠く部分もありますが、ご容赦ください。
* 私は、AWS については AWS Certified Solutions Architect – Associate レベルの資格を保有しています。Professional ではありません。
* 私は、カタカナ語の語尾にある長音記号を省略しないスタイルです。—
# はじまりの React アプリケーション
## React とは
ウェブアプリケーションの UI 構築のための JavaScript ライブラリです。
Me
AWSバックエンド開発の環境構築
## 初めに
## 目次
– 環境構築
– 使用ソフト
– インストール手順
– SAMのデバッグ環境
– 使用ソフト
– インストール手順
– 最後に
## 環境構築
### 使用ソフト
Visual Studio Code
https://code.visualstudio.com/DownloadNode.js
https://nodejs.org/ja/Aws CLI
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.htmlSourceTree
https://www.sourcetreeapp.com/### インストール手順
① AWS CLIの設定
“`
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
PrivateLink構成のDatabricksでライブラリをインストールする
DatabricksではAWS PrivateLinkを用いて閉域網の構成を組むことができます。セキュリティは向上しますが、クラスターから公衆回線にアクセスできないので、GUI経由でのライブラリのインストールができなくなります。
https://qiita.com/taka_yayoi/items/c6bdbb6452f6a0895961
この場合、ライブラリのインストール方法の選択肢には以下のようなものがあります。
1. インターネット接続可能なネットワークでライブラリをダウンロード、ファイルを閉域網に移動してからインストール(オフラインインストール)
1. 閉域網内にリポジトリサーバーを立てる
1. Proxyサーバで特定のURLのみの通信を許可する(AWSとProxyサーバでネットワークが疎通している必要あり)
1. 必要なライブラリをインストール済みのカスタムランタイムをDockerコンテナに用意しておく一長一短ありますが、ここでは追加の設定が不要な手順1を説明します。また、ここではPyPIとMavenからのインストールが必要なライブラリ[Glow](https://
セッションマネージャを使ってECインスタンスへアクセスする
セッションマネージャはAWS Systems Managerというサービスの機能です。
EC2にSystems Managerへのアクセス権限を設定することで使えるようになります。# EC2へのアクセス権限を設定する
マネジメントコンソールでIAMダッシュボードを表示してください。
左メニューから「ロール」をクリックしてください。
「ロールを作成」をクリックしてください。
信頼されたエンティティの種類で、「AWSのサービス」を選択してください。
でファイルの転送速度を比較してみたらP2Pの方が圧倒的に遅かった件
# 初めに
タイトルが全てです。ファイル転送をクライアントサーバ型とP2Pで実装して速度を比較しようとしましたが、良い結果が得られなかったのでその過程をここで供養します。# 目次
[クライアントサーバ型とP2Pの通信方式について](#クライアントサーバ型とp2pの通信方式について)
[P2Pに立ちはだかる課題「NAT越え」とは](#p2pに立ちはだかる課題nat越えとは)
[NATを越える為の技術](#natを越える為の技術)
[基本P2Pの方が早い](#基本p2pの方が早い)
[仮説](#仮説)
[検証方法](#検証方法)
[結果](#結果)
[考察](#考察)
[まとめ](#まとめ)# クライアントサーバ型とP2Pの通信方式について
**クライアントサーバ型**
コンピュータをサーバ(サービスを共有する側)とクライアント(サービスを授受する側)に分け、役割を分担して運用する仕組みです。
クライアントはサーバに対してほしいデータをリクエストし、それに対してサーバは要求されたデータを送ります。
P2Pと比較したときに、クライアントサーバ型は中央集権型の構造として語られます。おそ
【AWS】【CloudFormation】ベストプラクティスのお勉強
# はじめに
AWSのCloudFormationの[ベストプラクティス](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/best-practices.html#cross-stack)のドキュメントを熟読して自分なりにまとめてみました。
業務でCloudFormationを利用する機会が増え、コツコツテンプレートを書いてました。
が!!
一番苦労したのがテンプレート設計でした。。。
サーバレス環境構築を求められていて、SAMかCFNか迷いましたが今回はCFNで作りました。
本記事は私自身の学習した備忘録として投稿しております。# 1.計画と編成
## ライフサイクルと所有権によるスタックの整理
1. 最初は1つのスタックで作成しても良い。
↓
2. スタック規模が大きくなると面倒で、時間がかかる。
↓
3. **(解決策)共通のライフサイクルと所有権を持つリソースのグループ化の実施**
↓
4. 他のリソースに影響を与えることなくリソース変更可能になる。* グループ化の参考となる一般
DyanmoDBのテーブル設計
# はじめに
Dynamoテーブルの設計で、参考になった内容を紹介します。:::note info
試験対策:AWS 認定 データベース – 専門知識(AWS Certified Database – Specialty)
:::
# 目次
– DyanmoDBのテーブルのキー設計
– パーティションキー設計
– LSI設計
– GSI設計
– サイズの大きい属性の設計
– その他# DyanmoDBのテーブルのキー設計
### クエリパターンを洗い出し、適切なLSIやGSI選択https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/bp-general-nosql-design.html
### スキャン禁止
スキャンは大量のシステムリソースを消費するhttps://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/SQLtoNoSQL.ReadData.Scan.html
#