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

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

AWS DynamoDBと仲良くなれるかもしれないまとめ

## 概要
– DynamoDBの簡単な説明と、ハイパフォーマンスな状態で使い倒すための情報をまとめてます
– NoSQLに関する詳しい説明は省いていますので、気になる方は調べてみてください

## DynamoDBの簡単なサマリー
– AWSが提供しているマネージドなNoSQL
– [AWS Black Belt Techシリーズ Amazon DynamoDB](https://www.slideshare.net/AmazonWebServicesJapan/aws-black-belt-tech-amazon-dynamodb)が非常に参考になるので、是非ご覧ください

### メリット
#### 高い可用性と耐久性
– 大規模データを高速に出し入れできる

#### スループットに応じてスケーリング
– 読み込み/書き込み性能(キャパシティユニット)の変更が可能
– Auto Scalingにも対応

#### データ容量が実質的には無制限
– [Amazon DynamoDB での制限](https://docs.aws.amazon.com/ja_jp/amazond

元記事を表示

apacheからS3に静的ページを移行してパス補完で詰まった話

# 何を書いた記事か

AWS S3を用いて静的ページをホスティングする際のTipsです。
特に、apacheなどで配信されていた静的ページをS3に移行する際に使えると思います。

apacheなどのMWがよしなに解析してくれていたURI PathをS3を用いたホスティングでどのように実現するかについて記載します。

# ストーリー

とあるWebサイトのクラウド移行案件を進めることになりました。
そのWebサイトには、静的コンテンツ(HTML/CSS/JavaScript)のみで構成されたLP(静的ページ)が存在することがわかり、せっかくクラウドに移行するので、信頼性の高いS3から配信するようにしようと考えました。
また、対象のLPは接続できるIPに制限をかける必要があり、その実現についても考える必要がありました。

## As-Is

– apacheで静的ページを配信
– LoadBalancerでSSLを終端し、FirewallでIP制限を実施
– アクセスログはapache→fluentdで取得

## To-Be

– 静的コンテンツはS3上に配置
– SSL通信を実現する

元記事を表示

AWS CodePipelineでReactをs3保存、CloudFront公開手順

## システム構成
以下の様なシステム構成イメージで準備します。

*Branch:production*への*PR merge*が完了したら、Githubに設定されているwebhook経由でCodePipelineを呼んで、最終的にs3にReactのソースを保存します。

そして、**CloudFront**経由でアプリをブラウザーに起動する様にしておきます。

## Githubにレポジトリを作成
Reactの準備がされている前提で、まず、Githubにリポジトリを作成し、必要なソースコードをプッシュしておきます。

## productionブランチを作成
*Branch:master*から*Branch:production*に*Pull Request*(PR)がマージされた時に、CodePipeli

元記事を表示

SAMで作成されるApiGatewayをエッジ最適化以外で作成したいとき

SAMだとApiGatewayのリソースを書かなくても暗黙的につくられますが、既定ではエッジ最適化でつくられているので、リージョンとかプライベートでつくりたい。
今回はリージョンで指定します。

`AWS::Serverless::Api` のリソースを記述して、 `EndpointConfiguration` に `REGIONAL` を指定します。
`AWS::Serverless::Function` のEventsに `Type: Api` を作成しますが、その際に `RestApiId` を指定して、先ほど作成した`AWS::Serverless::Api` リソースを参照するように指定します。

“`template.yaml
Resources:
ApiGatewayApi:
Type: AWS::Serverless::Api
Properties:
StageName: Prod
EndpointConfiguration: REGIONAL
FooFunction:
Type: AWS::Serverless

元記事を表示

Deadlineサーバの構築方法

# はじめに
映像系パイプラインツール、DEADLINEを動かすために必要なRepositoryサーバの構築をしたので
そのときの備忘録程度に書こうと思います。(わかりづらくてすいません)
注意)ディレクトリパスは適当に変えています。注意してください。

## 構成
– サーバ
– VMWare ESXi 6
– CentOS 7.6 (ちなみに8.0でも動いた)
– CPU 4core/MEM 8GB (ただし、メモリは不足したら増やす予定)
– ソフトウェア
– MongoDB 3.4 (ちなみにcentos8で、MongoDB4.3で動いた) 
– Deadline10.1.3
– Samba 4.9.1 (client common backend等普通にyumで入ってしまうもの)

# 導入手順
##素材揃える編
1. 必要な[CentOS](https://wiki.centos.org/Download)のバージョンをisoで落とす。
2. [Deadline](https://downloads.thinkboxsoft

元記事を表示

UnityAcceleratorをLinux上に立ててサービス化する

Unity2019.3からアセットのキャッシュ管理にUnityAcceleratorの使用が推奨されており、
サーバに立てたときの備忘録

UnityAccelerator: v1.0.90+gd82184f
OS: AmazonLinux2

## インストール

インストールスクリプトを落として実行する

“`sh

curl https://unity-accelerator-prd.storage.googleapis.com/unity-accelerator-linux-installer.run –output unity-accelerator-linux-installer.run

sudo ./unity-accelerator-linux-installer.run –mode unattended

※ 「–mode unattended」を付与しない場合は対話式で設定変更が可能
 一度試した場合は入力項目が多く面倒だったので付与してデフォルトインストールにした
“`

## サーバ再起動時の自動起動化

インストールスクリプト実行時にサービス登録

元記事を表示

Visual Studio Code Remote – Containersで始めるAWS CDK

## 概要
AWSのインフラ構築は現在Terraformでやっているが、AWS CDKも気になる今日この頃。
https://aws.amazon.com/jp/cdk/

勉強がてら触ってみようと思いましたが、ローカルにNodeやらnpmでいろいろ入れないといけない・・・

そこで、**Visual Studio Code Remote – Containers**を使って開発環境ごとコンテナ化すればいいのでは?と思い、サンプルをやってみました。
そして、AWSに対してデプロイする事も考えて修正を行ってみました。

## まずはVSCodeの環境構築から
VSCode本体と、Docker環境は入っている前提で、下記拡張機能をインストールします。
https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers

こちらをインストールすると、左下に緑のマークが出るようになります。
こちらを押して、「Open Folder in Container」をクリックします。このフォルダが

元記事を表示

ウサギでもできるAWSへのサーバーマイグレーション~CloudEndureでやってみた~

#AWSなどのクラウドサービスへサーバーをそのまま移行します
CloudEndureの利用事例は徐々に増えているようですが、実際に移行してみた際に失敗したことや注意事項などがいろいろ見つかったため、記しておくことにしました。

ちなみに、「サルでもできる」とか「ネコでもできる」というのはよく使われますが、私はウサギ派なので「ウサギでもできる」というタイトルにしてみました。実際ウサギって身体の大きさの割に脳が小さいらしく…なんでもないです。
私自身、雑種のいわゆるミニウサギをもう12年間飼っていますが、めちゃくちゃ可愛いです!もうかなりのお爺ちゃんなので老化してきていますが、食欲旺盛、毎日元気です!
##これまでのマイグレーションはほぼ全部OSの更新だった
2015年ころからお客様の補油しているWindowsサーバーのクラウドへのマイグレーションは数えきれないくらい実施してきましたが、これまでの案件の99%が新規OSをクラウドでデプロイして、その上に既存のアプリケーションやデータの移行を行うものでした。それは主にOSの保守切れやハードウェアの保守切れに伴う更改となるため、多くのお客様が最

元記事を表示

LightsailにSSMエージェントを導入する。

#はじめに
LightsailにSSMエージェントを入れてセッションマネージャーで接続できるようにしてみました。
ちょっとつまづいたところもあったのでそこら辺の流れも一緒に記載してます。

# 環境
一応、今回対応した環境情報を記載しておきます。
AWS:Lightsail
インスタンスイメージ:Redmine Bitnami 認定 4.0.5
OS:Ubuntu 16.04.6 LTS

# IAMサービスロールの作成
まずは以下の内容で信頼ポリシーを作成しテキストファイルに保存します。ファイル保存時は、必ずファイル拡張子 (.json) を付けることを忘れずに。
ちなみにここでは SSMService-Trust.json というファイルにしています。

“`text:SSMService-Trust.json
{
“Version”: “2012-10-17”,
“Statement”: {
“Effect”: “Allow”,
“Principal”: {“Service”: “ssm.amazonaws.com”},
“Action”: “

元記事を表示

CodeBuild + SkaffoldのCI/CD環境のビルド時間を改善した話

# 課題

 元々、PlayFrameworkアプリケーション(Scala)のビルドを、Docker ImageのビルドからECRへのImage Push、EKSへのデプロイまでをSkaffoldに内包する形で行なっていました。
 これらをGithubへのTagプッシュを契機にCodeBuild上で動かしていたのですが、新たに機械学習アプリケーション(Python)が加わり、ビルド時間が12分から20分まで伸びてしまったことで遅さが目についたので、改善に踏み切りました。

# 環境

– プラットフォーム: EKS(PlayFramework + Python)
– ビルド環境: CodeBuild + Skaffold

![CI_CD構成図.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/316261/9184fd0f-744b-8435-8217-8086c76de31d.png)

# 改善施策

改善施策として以下の二点について対応しました。

– 並列ビルドの導入
– ビルドキャッシュ

元記事を表示

AWS Lambda@Edgeをつかって香川県からのアクセスをブロックする

# はじめに

この記事はネタ記事です。

本記事で紹介するような、特定の地域からのアクセスブロック等の行為を推奨するものでは一切ございません。また、筆者は香川県のネット・ゲーム規制条例案について反対の立場です。

ただし、香川県のパブリックコメントへの回答によると

> Q:事業者の対策・協力義務について、具体的にはどのような対策を想定していますか。香川県からのアクセス遮断なども含まれますか。

> A:事業者に自主的な取り組みを呼びかけるものと考えています。

[【全22問】「1日60分までの根拠は」「なぜ議事録がないのか」―― 香川県「ネット・ゲーム依存症対策条例(仮称)」、議会事務局との一問一答]( https://nlab.itmedia.co.jp/nl/articles/2002/06/news075.html)

との回答が得られており、万が一この条例が可決されれば、*事業者による自主的な取り組み*の一部として、香川県からのアクセスブロックを行う可能性は否定できません。

条例が可決された場合には、香川県からのアクセスをブロックすることが技術的に可能であるかを検証すると

元記事を表示

Apache2.4でテスト環境を構築する話

##はじめに
こんにちは、はるちゃです。
開発環境に**AWS**を使用しています。
テスト環境に移行した際に社外の人に見られたくない。。。
と思ったので、メモとして置いときます。

###前提
– AWSのアカウントを所持していること
– インスタンスを生成していること
– apacheをインストールしていること

私はAWS初心者なので **Amazon Linux 2 AMI (HVM), SSD Volume Type**を使用しています。

## 目次
1.ip制限をかける
2.Basic認証の導入
3.ip制限、Basic認証の併用

###ip制限をかける
“`httpd.conf


# Require all granted #ここのコメントをオンにすると全体から閲覧できるようになります。
Require ip XXX.XXX.XX.X #IPアドレスを挿入します。


“`
この方法が一番簡単です。
自社の人なら誰でも見ていいよーって時はこの方法でいいと思います。

###

元記事を表示

AWSのちょっとしたコストを節約した話

みなさま、こんにちは。

**今回はAWSの利用でちょっとしたものだけど地味にお金がかかる部分とそのコスト削減する方法をお伝えします!**

少しのお金でも放っておくとちりつもで洒落にならない金額になることもあるので、この機会に是非見直してみてください。

# その1 EBSのスナップショット:cold_sweat:

意外と見落としがちなこちら!
EBSのスナップショットです。

そんなのあまり作ったことないなーという方もいるかと思います。

ですが、**AMI**はどうでしょうか。

実はAMIとは裏側ではEC2のインスタンス情報とEBSのスナップショットで構成されています。

そのため、AMIを作ったことのある方はもれなくEBSスナップショットを作っています!

しかもここからが怖いところでして、、

### なんとAMIを解放したとしてもEBSスナップショットは削除されません!!

そのため削除する仕組みを別でこさえなければ永遠に増えていきます。

削除する方法はこちらがおすすめです。
https://coatiblog.sios.jp/ami登録解除時、スナップショットを自動

元記事を表示

AWS Cloud9で共有環境を用意する手順

AWS Cloud9の利点の1つが、同じ環境を複数人で共有できることです。
同じファイルを同時に更新したり、チャットでコミューケーションをとったりできます。
AWS Cloud9で共有環境を用意し、複数人で開発を行えるようにするまでの手順をまとめました。

# [1] IAMユーザーを用意する
Cloud9にアクセス出来るユーザーを準備します。

## [1-1] ユーザー権限の違い
AWSCloud9Administrator, AWSCloud9User, AWSCloud9EnvironmentMember、3種類のポリシー(権限)が存在します。
3種類の違いは、大雑把にまとめると以下の通りです。

| ポリシー | 作成 | 編集(*1) | 削除 | アクセス |
|—————————-|——|———|——–|——–|
| AWSCloud9Administrator | OK | OK | OK | OK |
| AWSClou

元記事を表示

AWS経験4年がクラウドプラクティショナーにギリギリ合格した方法

# 概要
AWS経験4年が、クラウドプラクティショナーになんとか合格しました。
点数はまだ出てないですが体感ギリギリだったので、ここが大変だったよという意味でまとめたいと思います。

# AWS経験
フルスタックを名乗っていますが、経験としてはインフラよりはアプリケーション寄りです。
とはいえサービスの監視もやって来ましたし、LambdaやSQSなどを駆使したサーバレスアーキテクチャなども組んできました。

# 試験までの準備
## [AWS Cloud Practitioner Essentials](https://www.aws.training/Details/Curriculum?id=34408)
経験者だと知ってる内容が何十分もひたすら説明されることになり、正直飽きます。
序盤だからこそだとは思いますが、そこにたどり着く前に脱落しました。
動画は本でいう「飛ばし読み」みたいなことがしづらいですし、時間効率悪いなーと思い本主体の勉強方法に変えました。

## [AWS認定アソシエイト3資格対策](https://amzn.to/31sBVay)
資格系は鮮度が命ということで

元記事を表示

[チュートリアル] Amazon SageMakerでの学習・デプロイ

本記事では,Amazon SageMakerを用いて機械学習モデルの学習・デプロイを行うための必要最低限の知識を説明します.普段,仕事や学業で機械学習プロジェクトに携わっているけどAWSにあまり馴染みのないという方のお役に立てば幸いです.

また本記事は,AWSの3daysインターンシップで取り組んだことを題材に,インターンシップでチームを組んだ中田勇介さん([nakata_yusuke](https://twitter.com/nakata_yusuke))と一緒に作成しました.コードは[github](https://github.com/ku2482/sagemaker-tutorial)上で公開しています.

## Amazon SageMakerとは

[Amazon SageMaker](https://aws.amazon.com/jp/sagemaker/)とは,**機械学習モデルを高速に開発・学習・デプロイするためのマネージドサービス**です.よく利用されるEC2は,主にインフラ(やフレームワーク等)を提供するためのサービスなので,EC2の1つ上のレイヤのサービスと

元記事を表示

[AWS]Ubuntu18.04などでlocal TLDが名前解決できない問題

# Problem
内部リソースのドメイン名として、`.local`とするケースはよくあると思いますが、AWSで運用しているサーバをUbuntu18.04にアップグレードした途端、これまでアクセスできていた`.local`の内部リソースにアクセスできなくなるというトラブルに遭遇しました。

実は、Ubuntu18.04では TLDが`.local`のものは名前解決できません。これはOS(systemd-resolved)の仕様です。

## 原因

https://www.freedesktop.org/software/systemd/man/systemd-resolved.html
そもそも`.local` はマルチキャスト DNS のために予約されたドメイン(`.local`TLDは RFC6762 にて非推奨)であり、Ubuntu 18.04 における systemd-resolved の挙動は独自の実装ではなく RFC の規約に準拠したものとのこと。

`.local` ドメインの名前解決を DNS サーバに対してではなく LAN に対するマルチキャストによって行おうとす

元記事を表示

AWS Lambdaでカナリアリリースする

# LambdaのVersionとAlias
AWS LambdaではPublishすると固有のVersion番号が割り当てられる。
Versionには任意の名前のAliasをつけることが可能で、Aliasに関連付けるVersionを変更することで、Aliasを指定してFunctionを呼び出しているユーザが利用するVersionを変更することができる。
![Lambda_Version_Alias.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/13038/02427f6b-9a54-a781-62a1-0305578379c9.png)

# Additional versionを用いて、新しいVersionをカナリアリリースする
Aliasには Additional versionというオプションが存在し、主として指定したVersionとは異なるVersionとその呼び出し割合を指定することができる。
Additional versionの有無や呼び出し割合は任意のタイミングで変更ができ、新しいVe

元記事を表示

AWSルートアカウントのMFA(2段階認証)用の携帯が手元にない場合、着信1回で取らないと無限ループになる

# はまった問題

https://aws.amazon.com/jp/premiumsupport/knowledge-center/lost-broken-mfa/

– AWSルートアカウントの二段階認証番号が昔の電話番号に向けて送られているため、ログインできない状態。新しい電話番号に設定したい
– 上記URLの「unusable~」から専用フォームで問い合わせ、電話が来るのを待つが、いちど不在着信で取れずかけなおすことに
– かけなおすと、カスタマーサポートの自動音声が流れ、AWS関係を問い合わせる番号はなく、とりあえずその他を押す
– AWSがわからない人が出てきていろいろ言われるが何も意味はなくもう一度2に戻る

## なぜこうなったのか

おそらく、Amazonのユーザ側のカスタマーサポートが出てきちゃうので何もできなかったんだと思います。

さらに、どうやら日本のカスタマーサポートは中国人の方が非常に多くたまたまその人にあたってしまったのも大きそうです。

英語と日本語でサポート言語が選べますが、日本語の場合対応が遅いので英語のほうが絶対よかったと思いました。

##

元記事を表示

CloudWatchのログをlocalにdownload

# CloudWatchのをlocalにdownloadしたい

get-log-eventsで落とせるとおもったけど、これloopさせないと全部取れないんですね。

“`download.sh
#!/bin/bash
log_group_name=$1
log_stream_name=$2
response=`aws logs get-log-events –log-group-name ${log_group_name} –log-stream-name “${log_stream_name}” –start-from-head`
next_token=`echo $response | jq -r ‘.nextForwardToken’`
while [ -n “${next_token}” ]; do
echo ${response} | jq -r .events[].message
response=`aws logs get-log-events –log-group-name ${log_group_name} –log-stream-nam

元記事を表示

OTHERカテゴリの最新記事