- 1. AWS CLIをコンテナから使えるようにする
- 2. AWS EKSをコマンドから構築
- 3. 【Rails】ActiveStorageでS3に画像をアップロードする方法
- 4. CloudFormationで遊んでみる(VPC編)
- 5. AWS DataSync とは
- 6. ポートフォリオ「Fishing App」
- 7. GitLFS用のLambdaの.NETCoreをアップデートする
- 8. 直近7日間のAWS利用料金をグラフ化してS3に保存する
- 9. 【AWS】Lambda+SQSでサイロ + プールモデルを実現するためのディスパッチャ構成検討
- 10. [2021Aug] HTTP と HTTPS のサイト転送を AWS CloudFront Functions で
- 11. Lambda + DenoでClean Architectureを使ってみる〜構成編〜
- 12. Amazon EC2(Amazon Linux2)での色々設定
- 13. [AWS] IAMユーザーの作成 ~備忘録~
- 14. 【14日目】AWS認定ソリューションアーキテクト合格までの道
- 15. [AWS]同一アカウントでスイッチロールしたメモ
- 16. AWS Amplifyを使ってReactアプリをデプロイ
- 17. React Server Components (demo) を Amazon Linux 2 で試す (PostgreSQL編)
- 18. TagTamerでタグ管理してみる
- 19. Metaps SREチームで社内GameDayを実施しました
- 20. AZ IDってなんだ??
AWS CLIをコンテナから使えるようにする
## はじめに
以前、AWS EC2のインスタンスにAWS CLIをインストールし、使用できるようにしていました。
しかしこれでは常にインスタンスが一つ必要になってしまいますし、AWSの利用料金も発生してしまいます。
次に試したのはローカルPC(Mac)でAWS CLIを使えるようにしました。
これはこれで便利でしたが、別のPC(Windows)でも同じことがやりたくなりましたし、さらに別のPC(Ubuntu)でもやりたくなりました。
毎回毎回環境を構築するのはとても手間です。
だったら、コンテナで稼働するようにさせれば、dockerfileを配布するだけで異なる環境で構築できるようになるのでは?と思いました。## 目的
MacでもWindowsでもUbuntuでもコンテナからAWS CLIを使えるようにする。
## 前提
docker、docker-compose、docker for windowsは利用可能な状態であること。
## 参考
[AWS ドキュメント – AWS CLI のインストール](https://docs.aws.amazon.com/ja_j
AWS EKSをコマンドから構築
## はじめに
AWS EKSをWebコンソールから構築することも出来ますが、毎回毎回画面で設定値を入力するのは少々手間です。
eksctlでコマンドから構築できるようなので試してみます。## 目的
Webコンソールは使用せず、eksctlのみでAWS EKSのクラスタを構築する。
## 前提
コンテナでaws cliが利用可能な環境が整っていること
[AWS CLIをコンテナから使えるようにする]()
## AWS EKSの構築(クラスタの作成)
“`
$ eksctl create cluster –name クラスタ名 –region us-west-1 –node-type t2.micro –nodes 2 –nodes-min 2 –nodes-max 2
“`## AWS EKSの情報を確認してみる
### namespace情報の参照
“`
# kubectl get namespace
“`### pod情報の参照
“`
# kubectl get pod
NAME TYPE
【Rails】ActiveStorageでS3に画像をアップロードする方法
##はじめに
railsでポートフォリオを作りAWSでデプロイしたあと、本番環境で画像をアップロードできるようにしました。
エラーで少し苦戦したので、同じようなエラーで悩んでいる人の参考になればと思います。
AWSでデプロイ済みの人向けなので、デプロイに関する部分などは省きます。
またActiveStorageも導入済みであるとします。##環境
OS mac
ruby 2.6.6
rails 5.2.6##AWSでやること
###IAMユーザーの作成
S3にアクセスするためのIAMユーザーを作成します。1. IAMダッシュボードで「ユーザーの追加」をクリック
1. ユーザー名は任意で
1. 「アクセスの種類」は「プログラムによるアクセス」を選択
1. アクセス権限は「AmazonS3FullAccess」に設定
1. 認証情報をダウンロード(.csv) *あとで使います###S3バケットの作成
1. S3ダッシュボードで「バケットの作成」をクリック
1. バケット名とリージョンを設定
1. デフォルトの「パブリックアクセスを全てブロック」にチェック
1. バケットを
CloudFormationで遊んでみる(VPC編)
###概要
CloudFormationでVPCを作成します。###実装コード
“`yml:vpc.yml
AWSTemplateFormatVersion: ‘2010-09-09’
Description: vpc create
Resources:
VPC:
Type: AWS::EC2::VPC
Properties:
CidrBlock: 10.0.0.0/24
VpcCidrBlock:
Type: AWS::EC2::VPCCidrBlock
Properties:
VpcId: !Ref VPC
CidrBlock: 192.0.0.0/24
VpcCidrBlockIpv6:
Type: AWS::EC2::VPCCidrBlock
Properties:
VpcId: !Ref VPC
AmazonProvidedIpv6CidrBlock: trueOutputs:
VpcId:
Value: !Ref VPC
Pri
AWS DataSync とは
## 勉強前イメージ
データの連携とかしてくれるサービス?
## 調査
### AWS DataSync とは
オンプレとAWS間、またAWSのサービス間でのデータの移動を簡単に自動で行うサービスになります。
転送中のデータに関しては暗号化されており、セキュリティ面でも安心です。### AWS DataSync のメリット
– 転送の簡素化と自動化
オンプレのストレージとAWSのストレージ、AWSのストレージ間の転送が簡単になり、
転送プロセスとデータ転送に必要なインフラ、両方の管理を自動化します。– データを安全に転送する
暗号化や整合性検証を行っており、それによってセキュリティを強化します
また、ネットワークの切断等で転送に失敗した場合でも自動的に転送を実施します。– データをより速く移動する
専用のネットワークプロトコルとパラレル・マルチスレッドで転送を高速化します。
– 運用コストの削減
価格設定をきちんと設定するとスクリプトの開発とデプロイ、メンテナンスを節約できます。
### AWS DataSync の特徴
– s3以外のデータ移行があ
ポートフォリオ「Fishing App」
PHPをお使いになる会社のインターンが決まったので、これを気にLaravel、Vue.jsを使ってポートフォリオを作成しました。
#ポートフォリオ
URL: https://fishingapp.work/
![topImage.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/848640/3260524d-ed49-58ce-3ced-83ea9958f087.png)Fishing Appとは、釣りスポットを投稿し、釣りスポットにコメントして釣果などを共有するアプリです。また、釣りスポットにおすすめの釣り方を選択することもできます。さらに、カレンダーで釣りの予定、記録をすることができ、このアプリ1つで満足できます。
##制作背景
1,初心者に釣りの知見を広めてほしいため
現在は釣りの技術が発展しており、釣りを始める人が日々増加しています。しかし、初心者の場合、どこで釣りができるかわからない、どんな釣り方があるのかわからないという方々がほとんどだと思います。そこで、釣りスポット
GitLFS用のLambdaの.NETCoreをアップデートする
# S3 の GitLFS サーバ の Lambda関数 の .NETcore をアップデートする
## 経緯
AWS の Lambda にて .NETcore2.1 のサポートが 2021/09/20 で終了するとの通知が来たので、
[以前構築したGitLFSサーバのLambda関数](https://qiita.com/c0ba1t_coke/items/94ed3a62ab34078a1f92)をアップデートすることに– CloudFormationの変更セットを使って、Lambda関数だけアップデートできるか検証する
## 手順
### ファイル準備
新しいyamlファイルと鍵Zipファイルをアップする
“`yaml
SigningLambda:
Type: AWS::Lambda::Function
Properties:
Code:
S3Bucket: !Sub ‘gitlfs-test’
S3Key: Estranged.Lfs.Hosting.Lambda.zip
直近7日間のAWS利用料金をグラフ化してS3に保存する
# アーキテクチャ
以下のアーキテクチャでAWS利用料金をグラフ化してSlack通知させてみます。![arch.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/59081/91a0fb55-56a5-397c-129e-5436f4712364.png)
# Lambdaを使ってAWSの料金を取得する
AWSの利用料金はCostExplorerの [get_cost_and_usage()](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/ce.html#CostExplorer.Client.get_cost_and_usage) を叩くことで取得することができます。グラフ化するにはpandasとmatplotlibを使います。このときにpandasとmatplotlibはLambdaのレイヤーとして追加します。
ソースコード内の**ファイルアップロード先であるS3バケット名は適宜変更してください
【AWS】Lambda+SQSでサイロ + プールモデルを実現するためのディスパッチャ構成検討
## きっかけ
– 弊社が過去に開発し、現在も引き続き運用、追加開発をしているクライアントのSaaSがあり、:man_tone1: “特定のユーザが大量にリクエストしたときに他ユーザのリクエスト実行まで時間がかかるので、解消したい”とのリクエストをもらったから。## 現状分析
– リクエスト受信部分はREST APIで構成、他ユーザのリクエストに処理時間は依存しない
– 実処理部分はリクエスト受信部分と非同期で処理を行っており、実処理が順次実行のため、この部分がボトルネック
– 以下サイトで分類されている分離パターンでは現状は、1. サイロモデルhttps://aws.amazon.com/jp/builders-flash/202105/tenant-isolation/
– 特定処理、特定ユーザだけ分離できればいいので、3.サイロ + プールモデルを目指したい
## 検証で目指す構成
– リクエストを受けるSQS→各リクエストを割り当てるDispatcher用Lambda→特定ユーザ用SQS,汎用ユーザ用SQSとそれぞれ実処理Lambdaをつなげる(本記事では実処理L
[2021Aug] HTTP と HTTPS のサイト転送を AWS CloudFront Functions で
# はじめに
AWS CloudFront では HTTP Request / Response の加工などが可能で、Origin にアクセスせず Response を返すことも可能です。
この加工は別途用意した関数で処理されますが、関数の実行機構として新しく CloudFront Functions がデビューしたとのこと。
「S3 を使った転送と同等のことが CloudFront 単体で実現できる」ということだと解釈し、試してみました。# 大まかな仕組み
– Viewer request に関連付けた CloudFront Functions 関数で転送する(Status Code 301 を返す Response を生成する)
– CloudFront の Alternate Domain Names 機能で名前付け、および、暗号化する
– DNS の CNAME or ANAME で(間接的に) IP Address 付けする[S3 を利用する場合](https://qiita.com/teruo-oshida/items/0ad13fe5b4b32ff075e8
Lambda + DenoでClean Architectureを使ってみる〜構成編〜
前回、LambdaでDenoを動かしてみたところ、思ったよりも悪くなく、正式導入を検討する余地があったため、巷で人気(?)のクリーンアーキテクチャで構成してみました。
※ 独自アーキテクチャでの導入も検討しましたが、せっかくなので…
## 成果物
https://github.com/yamachita0109/lambda_deno_clean_architecture
## クリーンアーキテクチャ
![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3239333336382f66396633646565302d386561382d386363392d326639622d
Amazon EC2(Amazon Linux2)での色々設定
最近Redhatのサーバ構築案件があり、練習がてらAmazon EC2(Amazon Linux2)で色々お試ししましたので、備忘録がてら記事にします。利用したAMIはAmazon Linux2ですがRedhat系とほぼ同じコマンドで行けるので、練習環境があるのはありがたいです。
#前提条件
– 使用するインスタンスはAmazon Linux2 です。
– コマンド入力はEC2にログインして、Rootユーザに昇格した状態で行うものとします。
– 各種ファイル(/etc/fstabなど)を設定するときは必ずバックアップを取得してから中身を変更してください。
– 実行しているコマンドについては詳細な解説までは載せません。他に詳しく記載されている記事があるのでそちらを参照してください。LPIC Lv2まで勉強した人は何となく見たことがあるコマンドだと思います。#複数EBSをアタッチして、LVM論理ボリュームを設定する
###概要
EC2(Amazon Linux2)のルートボリュームはデフォルト=/dev/xvda というデバイス名になっています。
追加でEBSをアタッチすると/dev
[AWS] IAMユーザーの作成 ~備忘録~
##はじめに
この記事はプログラミング初学者による備忘録用の記事であり、また、少しでも他の初学者のお役に立てればと思い書いています。今回は、AWSにおけるIAMユーザーの作成手順を、備忘録としてまとめておきたいと思います。
間違いなどがございましたら、ご指摘のほどよろしくお願い致します。
##IAMユーザとは
AWSでは、ユーザの区分として“ルートユーザー“と“IAMユーザー“が存在します。
AWSでアカウントを作成すると、ルートユーザーとしてアカウントが作成されます。
基本的に、AWSでは普段使いとしてルートユーザーを使用せず**作業用のIAMユーザーを使用する**ことがベストプラクティスとされています。
###ルートユーザーとIAMユーザーの違い
||特徴|
|:–|:–|
|ルートユーザー|・アカウントに関する全てのAWSサービスとAWSリソースに対して完全なアクセス権を持つ
・アカウント情報の変更、解約、プランの変更等を実行する際に使用する|
|IAMユーザー|・アカウント(ルートユーザー)作成後、AWS上で新たに作成する作業用ユーザー
【14日目】AWS認定ソリューションアーキテクト合格までの道
# 運用管理サービス
## Amazon CloudWatch
AWS上で稼働する様々なシステムやAWSのリソースの情報を**収集/監視/可視化するサービス**### ◉CloudWatchの動作イメージ
[![Image from Gyazo](https://i.gyazo.com/a62edb3c087dd082c8d8687b0680bff4.png)](https://gyazo.com/a62edb3c087dd082c8d8687b0680bff4)
### ◉EC2のメトリクス
CloudWatchで**取得/監視する項目のこと**#### ◎標準メトリクス
AWSから提供されている**標準の監視項目**| メトリクス | 説明 |
|:-:|:-:|
| CPUUtilization | CPU使用率 |
| DiskReadOps | インスタンスストアボリュームからの読み取り回数 |
| DiskReadBytes | インスタンスストアボリュームから読み取られたバイト数 |
| NetworkIn | 全てのネットワークインターフ
[AWS]同一アカウントでスイッチロールしたメモ
Service Catalogのチュートリアルを行うにあたり
普段使っているアカウントで検証用のロールに切り替えたときのメモです:pencil:Service Catalogのチュートリアルはこちら:
https://docs.aws.amazon.com/servicecatalog/latest/adminguide/getstarted.html
## スイッチロール 手順
1. IAMロールの作成
1. ロールの切り替え#### 1. IAMロールの作成
1. IAMコンソールを開く
1. ロール>ロールを作成
1. 信頼されたエンティティ:別のAWSアカウント を選択
1. アカウントID欄に自分のIDを入力
1. AWSServiceCatalogEndUserFullAccessをアタッチ&STS.AssumeRoleのアクセス許可を追加#### 2. ロールの切り替え
1. 作成したロールの詳細画面を開く
1. 「コンソールでロールを切り替えることができるユーザーに、このリンクを知らせます。」のURLをコピー
1. 2のURLをブラウザに貼り付けてア
AWS Amplifyを使ってReactアプリをデプロイ
# はじめに
React アプリを作成してローカルの開発サーバで動きを確認できたので、デプロイしていく。AWS EC2 インスタンスにサーバ構築をしてデプロイしようと調べていたところ、AWS Amplify という便利なサービスを見つけたので、[AWS で React アプリケーションを構築する](https://aws.amazon.com/jp/getting-started/hands-on/build-react-app-amplify-graphql/)を参考に試してみる。
なお、React アプリはすでに作成して GitHub レポジトリにプッシュ済みを前提としている。# 1. React アプリをデプロイしてホストする
AWS マネジメントコンソールにログインして、AWS Amplify コンソールへ遷移。公式では [Deploy] の下の [GET STARTED] を選択と書かれているが、現在の画面にはないので [Deliver] の下の [Get started] を選択。
![amplify_getstarted.png](https://qiita-i
React Server Components (demo) を Amazon Linux 2 で試す (PostgreSQL編)
React server Components (デモ)を Amazon Linux2 で動かす手順です。
本家
– React blog
https://reactjs.org/blog/2020/12/21/data-fetching-with-react-server-components.html
– GitHub
https://github.com/reactjs/server-components-demo原則、上記のREADMEに従っています。
# 環境
– Amazon Linux 2
Amazon Linux 2 AMI (HVM), SSD Volume Type – ami-09ebacdc178ae23b7 (64 ビット x86) / ami-06b31a9cee8dfac33 (64 ビット Arm)– EC2(例では `ec2-3-112-234-53.ap-northeast-1.compute.amazonaws.com` とします)
– セキュリティ(デモでは4000番ポートを使用するので、ポートを開けておきます。また、DBデ
TagTamerでタグ管理してみる
# はじめに
6/30にawsの新しいソリューションとしてTagTamerが公開されました。https://aws.amazon.com/jp/about-aws/whats-new/2021/06/new-aws-solutions-implementation-tag-tamer/
> Tag Tamer は、新規および既存の AWS リソースにタグを適用するのに役立ちます。構築済みのウェブユーザーインターフェイスを使用することで一貫したタグ付けの実装を保証し、コスト配分、自動化、アクセスコントロール、編成を改善します。
説明文を読む限り、タグ管理を楽に行えるようになるソリューションのようです。
ちょうどタグ管理に悩んでいたので、実装・検証してみて思い通りの使い方ができるのか試してみます。
## 機能
上記紹介ページより、以下の機能があるようです。
– タグのスペルミスや大文字と小文字の誤りを見つけて修正、防止
– タグ付けルールを適用
– 間違ったタグを見つけて更新
– タグなしのリソースを見つける
– AWS リソースとそれに割り当てられたタグのレポートをエクス
Metaps SREチームで社内GameDayを実施しました
## GameDayとは
起源はAWSが毎年行っているAWS re:inventの中で開催される行事の1つです。
チームを組んでクラウド・アプリケーションを襲う謎の障害や悪意のある攻撃に対処し、**トラブルシューティング能力**を競うコンテストとなっています。
のちに様々な企業が社内でも実施するようになり、今では*AWS Well-Architected*のセキュリティ項目でもその実施が推奨されています。> ### ゲームデーを実施する
> – ゲームデーを実施する: さまざまな脅威について、インシデント対応イベントのシミュレーション (ゲームデー) を実施します。このゲームデーには、主要なスタッフや管理者を参加させてください。
> – 教訓から学ぶ: ゲームデーの実行から得られた教訓は、プロセスを改善するためのフィードバックに含まれている必要があります。https://wa.aws.amazon.com/wat.question.SEC_10.ja.html
## Metaps GameDayの手順
今回Metaps社で行なったGameDayの流れです。
### 1
AZ IDってなんだ??
AWS案件の中で「AZ ID」なるものが出てきたので、なんぞやといろいろ調べてみました。
#1.アベイラビリティーゾーン(AZ)とは
:::note info
「AZってなんだっけ?」という方以外は、この項目を飛ばしてください!
:::AWSは以下の構造で構成されています。
※基本的な部分のみ大雑把に記載しています。**リージョン(Regions)**
AWSが構築したデータセンタで、各国にあり、物理的に完全に分離されています。<リージョン例>
| コード | 名前 |
|:———–|:————|
| us-east-2 | 米国東部 (オハイオ)|
| ap-northeast-1 | アジアパシフィック (東京)|
| ap-northeast-3 | アジアパシフィック (大阪)|
AWSリソースを作成する際に、どこで作るかを最初に決めていますよね。**アベイラビリティーゾーン(Availability Zones/AZ)**
リージョンごとにアベイラビリティーゾーンと呼ばれる複数の物理的に完全に分離した場所があります。<