Amazon Web Service2018. 2. 12. 17:07

Amazon Web Service의 주요 서비스



Amazon Compute 영역

  • EC2(Elastic Compute Cloud) : OS
  • ECR(Elastic Container Registry) : Docker 컨테이너이미지 및 관련작업 지원 관리 서비스
  • ECS(Elastic Container Service) : Docker 컨테이너이미지 및 관련작업 지원 관리 서비스
  • Elastic Beanstalk : 애플리케이션 배포, 확장 서비스
  • AWS Lambda : 서버 구성 없이 이벤트에 응답하여 지정한 코드를 실행하고, 실행에 필요한 기본 컴퓨팅 리소스를 자동으로 관리해주는 서비스
  • Elastic Load Balancing(ELB) : 로드 밸런서 서비스


Amazon Storage 영역


  • CloudFront : AWS의 CDN(Content Delivery Network) 서비스로 캐싱(Caching)을 통해 사용자에게 빠른 응답속도를 제공하는 서비스
  • EFS : 복수의 EC2에서 공용으로 사용하는 스토리지 영역을 제공하는 서비스
  • Glacier : 데이터 아카이빙 및 백업 용도의 스토리지 서비스
  • S3(Simple Storage Service) : 고가용성/고내구성 객체 스토리지 서비스. 원하는 객체를 무제한으로 저장할 수 있는 핵심 서비스
  • AWS Import/Export Snowball : 온프레미스(On Premise)와 AWS간 대용향 데이터를 전용 디바이스를 통해 오프라인으로 손쉽게 주고 받는 서비스
  • AWS Storage GateWay : 온프레미스(On Premise) - AWS(S3)간 데이터 백업 구성 서비스

Amazon Database 영역


  • DynamoDB : AWS에서 제공하는 관리형 NoSQL DB 서비스, Redis/Memcache와 같은 캐시노드를 관리해주는 ElastiCache 서비스
  • RDS(Relational Databae Service) : 관계형 데이터베이스(RDBMS: MySQL, Oracle, SQL Server 등)의 설치부터 운영/백업까지 일정 관리영역을 AWS에서 수행해주는 관리형(Managed) DB 서비스
  • Redshift : 완전관리형 데이터 웨어하우스용 서비스


Amazon Network 영역


  • VPC : 사설 IP 주소값을 기반으로 사용자가 구성한 네트워크 영역위에 EC2와 같은 가상 서버를 배치할 수 있도록 제공하는 논리적 네트워크 서비스
  • Route 53 : 관리형 DNS 서비스
  • Direct Connect : AWS와 온프레미스간 물리 전용선을 제공하는 서비스



AWS의 물리 인프라 단위(Region, A-Z, Edge)


  • Region : 두개이상의 AZ로 구성된 동일 지역의 집합니다. 각 도시의 이름으로 명명하며 서울리전(Region)의 경우 두개의 AZ로, 버지니아 리전의 경우 다섯개의 AZ로 구성되어 있으며 각 리전별로 각기 다른 갯수의 AZ 개수를 갖습니다. 어떤 물리적/논리적 리소스도 리전간에는 공유하지 않으며 AWS API도 각 리전별로 Endpoint가 분리되어 있습니다. 비용도 리전별로 단가가 다르며 제공가능한 서비스 목록 또한 리전별로 차이가 있습니다.
  • A-Z(Availability Zone) : 데이터 센터(IDC)의 집합을 말한다. 하나 혹은 두 개 이상의 데이터 센터가 하나의 AZ 를 구성하는 논리적 단위로 각 AZ는 물리적으로 독립되어 있어 두개이상으로 구성하였을 경우 장애가 발생하더라고 서비스에 영향을 미치지 않는 높은 가용성의 서비스를 만들 수 있다.
  • Edge : CloudFront와 Route 53 과 같이 응답속도에 민감한 서비스를 전용으로 만든 별도의 서버팜으로, 공항코드로 명명하며 2017년 1월 기준 서울에는 세개의 Edge가, 전 세계적으로 70개 이상의 Edge가 구성되어 있습니다.


'Amazon Web Service' 카테고리의 다른 글

Cloud Computing(계속 작성중)  (0) 2018.02.12
Posted by 달빛낙엽
Amazon Web Service2018. 2. 12. 17:06


Cloud Computing이란 중앙에 

Cloud 종류
  • IaaS(Infrastructure as a Service) : IT 서비스를 구성하기 위해 필요한 서버, 네트워크, 전력, 스토리지 등 인프라를 제공하는 서비스
  • PaaS(Platform as a Service) : IT 서비스를 구성하기 위해 필요한 인프라등을 패키지로 플랫폼화 하여 사용자(개발자)에게 편의성 높은 인프라를 제공하는 서비스
  • SaaS(Service as a Service) : Application 레벨에서 사용자가 바로 서비스를 활용할 수 있는 수준까지 만들어 제공하는 서비스


'Amazon Web Service' 카테고리의 다른 글

Amazon Web Serivce(계속 작성중)  (0) 2018.02.12
Posted by 달빛낙엽
MySQL2012. 2. 8. 17:57
주재료는 MySQL이므로 (http://www.mysql.com/downloads)에서 MySQL을 다운받습니다.

본인은 다음의 파일을 받았습니다.
>  mysql-5.5.20.tar.gz

MySQL이 5.5.x 버전과 5.1.x 버전이 다른점이 있는데 기존의 5.1.x에서는 configure를 이용하여 설치를 하지만 5.5.x로
오면서 부터 cmake를 사용하여 설치를 합니다. 다음에 사이트에서 받으실 수 있습니다.(http://www.cmake.org)
cmake는 압축만 풀면 바로 사용할 수 있습니다.  
#>tar xfv cmake-2.8.7-Linux-i386.tar.gz
압축을 해제한 cmake의 path를 /etc/profile 제일 아랫부분에 등록합니다.
export PATH=$PATH:/moonleaf/cmake-2.8.7-Linux-i386/bin
변경된 시스템 적용
#>source /etc/profile
받은 MySQL 파일의 압축을 풀어줍니다.  
#>tar xfv mysql-5.5.20.tar.gz
다음과 같이 cmake를 통해 설치 옵션을 부여하여 설치합니다.
#>cmake -DCMAKE_INSTALL_PREFIX=/moonleaf/mysql -DDEFAULT_CHARSET=utf8
 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
 -DMYSQL_DATADIR=/moonleaf/database/mysql
 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1
-DCMAKE_INSTALL_PREFIX : MySQL 설치경로
-DDEFAULT_CHARSET : 캐릭터셋
-DMYSQL_DATADIR : 데이터베이스 저장경로

설치를 하다보면 중간에 라이브러리가 필요하다며 에러가 발생할 수도 있는데 이때는 해당 라이브러리를 설치하여주면 됩니다.
#>yum -y install zlib curl
#>yum -y install gcc g++ cpp gcc-c++
#>yum -y install openssl openssl-devel
#>yum -y install ncurses-devel
#>yum -y install bzip2-devel
#>yum -y install libtermcap-devel libc-client-devel
#>yum -y install bison
여기까지 완료가 되었다면 다음의 명령을 실행하여 설치하면 됩니다.
#>make
#>make install 
MySQL의 설치 디렉토리와 데이터베이스 디렉토리의 권한을 변경합니다.
#>chown -R mysql /moonleaf/mysql
#>chown -R mysql /moonleaf/database 
MySQL의 기본 데이터 베이스를 생성합니다.
#>cd /moonleaf/mysql
#>./scripts/mysql_install_db --user=mysql --datadir=/moonleaf/databases/mysql
설정 파일을 복사합니다.
#>cp support-files/my-medium.cnf /etc/my.cnf
MySQL실행을 위해 서비스로 등록합니다.
#>cp support-file/mysql.server /etc/init.d/mysqld
서비스 등록파일을 수정합니다.
#>vi /etc/init.d/mysqld

아래의 내용을 수정합니다.
datadir=/moonleaf/databases/mysql

MySQL을 실행합니다.
#>service mysqld start
MySQL에 접속하여 root계정의 비밀번호를 변경합니다.
#>mysql -uroot
mysql>use mysql;
mysql>update user set password=password('비밀번호') where user='root';
mysql>fluch privileges; 
MySQL에 정상접속되는지 확인합니다.
#>mysql -uroot -p
 
쓰다보니 귀찮아져서 개판이 되었네요.. ㄷㄷ 
Posted by 달빛낙엽
카테고리 없음2011. 12. 15. 14:32

ManagedFolderMailboxPolicyAllowed 매개 변수는 Outlook 2007의 이전 Outlook 버전을 실행하는 전자 메일 클라이언트에 대해서는 MRM(메시징 레코드 관리) 기능을 지원하지 않는다는 경고를 무시합니다. 관리되는 폴더 사서함 정책이 ManagedFolderMailboxPolicy 매개 변수를 사용하는 사서함에 할당된 경우, ManagedFolderMailboxPolicyAllowed를 사용하지 않는 한 기본적으로 경고가 표시됩니다.

Bb123981.note(ko-kr,EXCHG.80).gif참고:
Outlook 2003 SP3(서비스 팩 3) 클라이언트가 지원되기는 하지만, 이 클라이언트의 MRM 기능은 제한되어 있습니다.


그런고로.

set-mailbox -ManagedFolderMailboxPolicy "ploicyName" -ManagedFolderMailboxPolicyAllowed:$true
와 같이.
-ManagedFolderMailboxPolicyAllowed:$true
을 설정해 주어야 Confirm이 뜨지 않는다.
Posted by 달빛낙엽
JAVA2011. 10. 25. 10:36

/**
     * ResultSet을 Row마다 Map에 저장후 List에 다시 저장.
     * @param rs DB에서 가져온 ResultSet
     * @return Listt<map> 형태로 리턴
     * @throws Exception Collection
     */
    private Listt<map> getResultMapRows(ResultSet rs) throws Exception
    {
        // ResultSet 의 MetaData를 가져온다.
        ResultSetMetaData metaData = rs.getMetaData();
        // ResultSet 의 Column의 갯수를 가져온다.
        int sizeOfColumn = metaData.getColumnCount();

        List<Map> list = new ArrayList<Map>();
        Map<String, Object> map;
        String column;
        // rs의 내용을 돌려준다.
        while (rs.next())
        {
            // 내부에서 map을 초기화
            map = new HashMap<String, Object>();
            // Column의 갯수만큼 회전
            for (int indexOfcolumn = 0; indexOfcolumn < sizeOfColumn; indexOfcolumn++)
            {
                column = metaData.getColumnName(indexOfcolumn + 1);
                // map에 값을 입력 map.put(columnName, columnName으로 getString)
                map.put(column, rs.getString(column));
            }
            // list에 저장
            list.add(map);
        }
        return list;
    }

'JAVA' 카테고리의 다른 글

예약어 new  (0) 2011.08.01
2진수 10진수로 변환  (0) 2010.09.09
10진수 2진수,8진수 변환  (0) 2010.09.09
java systeminfo파일로 정보읽기  (0) 2010.09.08
JAVA 시스템 환경읽어오기  (0) 2010.09.08
Posted by 달빛낙엽
카테고리 없음2011. 10. 4. 17:38

public class test_moonleaf
{
    public static Map PutData(String _id, int _con, int _str, int _int, int _count) throws Exception
    {
        Map<string, object=""> items = new HashMap<string, object="">();
 
        items.put("id", _id);
        items.put("con", _con);
        items.put("str", _str);
        items.put("int", _int);
        items.put("count", _count);
 
        return items;
    }
 
    public static List<map> Input(List<map> data) throws Exception
    {
        data.add(PutData("1001", 20, 3, 15, 2));
        data.add(PutData("1003", 12, 18, 22 ,4));
        data.add(PutData("1007", 9, 22, 20, 5));
        data.add(PutData("1009", 2, 9, 25, 3));
        data.add(PutData("1017", 25, 14, 3, 6));
        data.add(PutData("1019", 7, 20, 12, 4));
        data.add(PutData("1020", 4, 4, 19, 3));
        data.add(PutData("1021", 8, 12, 9, 5));
 
        return data;
    }
 
    public static void main(String[] args) throws Exception
    {
        List<map> data = new ArrayList<map>();
        Input(data);
 
        // 값 입력받는곳 귀찮아서 구현 안함..
        String _stats = "con";
        int _num = 8;
 
        Map _temp; // 임시 저장 객체
 
        for(int i = 0, size = data.size() - 1; i < size; i++)
        {
            for(int j = i + 1, _size = data.size();  j < _size; j++ )
            {
                if((Integer)data.get(i).get(_stats) < (Integer)data.get(j).get(_stats))
                {
                    _temp = data.get(i);
                    data.set(i, data.get(j));
                    data.set(j, _temp);
                }
            }
        }
 
        int tot = 0;
        int [] bt = new int[2];
 
        while(_num > 0)
        {
            for(int  i = 0, size = data.size(); i < size; i++)
            {
                int count = (Integer)data.get(i).get("count");
                int point = (Integer)data.get(i).get(_stats);
                if(_num > count)
                {
                    _num = _num - count;
                    tot += count * point;
                }
                else
                {
                    bt[0] = i;
                    bt[1] = _num;
                    tot += _num * point;
                    _num = -1;
                    break;
                }
            }
        }
         
        for(int i =0; bt[0] >= i ; i++)
        {
            System.out.print(data.get(i).get("id") + ": " + data.get(i).get("count") + ", ");
        }
        System.out.print("sum: " + tot);
    }
}

Posted by 달빛낙엽
카테고리 없음2011. 10. 4. 17:38

public class test_2
{
    public static Map PutData(String _id, int _level, String _requisite) throws Exception
        {
            Map<String, Object> items = new HashMap<String, Object>();


            items.put("id", _id);
            items.put("level", _level);
            items.put("requisite", _requisite);

            return items;
        }

        public static List<Map> Input(List<Map> data) throws Exception
        {
            data.add(PutData("10001", 1, "0"));
            data.add(PutData("10002", 1, "10001"));
            data.add(PutData("10003", 2, "10002"));
            data.add(PutData("10004", 3, "0"));
            data.add(PutData("10005", 3, "10003"));
            data.add(PutData("10006", 4, "10005"));

            return data;
        }
    public static void main(String[] args) throws Exception
    {
        List<Map> data = new ArrayList<Map>();
        List<String> quest = new ArrayList<String>();

        Input(data);

        // 입력은 구현하지 않았습니다.
        String input ="3, 10001:y, 10002:y, 10003:y";
        
        String[] list = input.replace(" ","").split(","); // 공백 제거
        int level = Integer.parseInt(list[0]); // 레벨 저장

        for(int i =1, size = list.length; i < size; i++) // 수행중이거나 완료한 퀘스트를 quest List에 저장
            quest.add(list[i]);

        List<String> output = new ArrayList<String>(); // 출력

        Map temp_data; // 임시데이터

        for(int i = 0, size = data.size() -1; i <= size; i++)
        {
            temp_data = data.get(i); // 임시값 입력
            if((Integer)temp_data.get("level") <= level) // 본인 레벨보다 높은 레벨의 퀘스트를 받을 수 없음
            {
                // 수행중이거나 완료한 퀘스트 ID값을 검색
                if(!quest.contains(temp_data.get("id")+":y") && !quest.contains(temp_data.get("id")+":n"))
                {
                    // 선행퀘스트가 없거나 완료된경우 true
                    if("0".equals(temp_data.get("requisite")) || quest.contains(temp_data.get("requisite")+":y"))
                    {
                        output.add((String)temp_data.get("id"));
                    }
                }
            }
        }

        System.out.print(output.get(0));
        for(int i =1, size = output.size(); i < size; i++)
        {
            System.out.print(", " + output.get(i));
        }
    }
}

Posted by 달빛낙엽
Oracle2011. 9. 27. 09:19
Oracle에서 쿼리를 사용하여 insert, select 등을 할때 &의 대체문자를 사용하게 되면

sqlplus 등에선 대체문자를 입력받기 위해 대기를 하게 된다.

이 & 문자를 말그대로 '&' 사용하려면 다음과 같이 설정을 하여주면 된다.


set define off;




'Oracle' 카테고리의 다른 글

rownum의 동작 원리와 활용 방법  (0) 2010.11.04
Oracle 함수  (0) 2010.10.25
아카이브 로그 모드(Archive Log Mode)  (0) 2010.10.11
자주 사용되는 제어 함수  (0) 2010.10.04
DECODE  (0) 2010.10.04
Posted by 달빛낙엽
MSSQL2011. 9. 23. 18:41

잠금 요청 제한 시간이 초과되었습니다. 오류 1222 와 같은 오류가 발생하면 다음의 명령어를 실행한다.

EXEC SP_LOCK

목록 중 SPID가 여러개 인것들을 찾은뒤

DBCC INPUTBUFFER(PSID번호) 를 실행

문제가 있는 부분이 나오는데

해당 프로시저를 kill 시키면 된다

KILL PSID번호


Posted by 달빛낙엽
미등록2011. 8. 4. 10:15
        function toRadians(degree)

        {

            return degree * Math.PI / 180

        }

        function distance(latitude1, longitude1, latitude2, longitude2)

        {

            // R은 지구의 반지름, 단위는 km

            var R = 6371;

            var deltaLatitude = (latitude2 - latitude1).toRadians();

            var deltaLongitude = (longitude2 - longitude1).toRadians();

            latitude1 = latitude1.toRadians(),latitude2 = latitude2.toRadians();

            var a = Math.sin(deltaLatitude / 2) *

                    Math.sin(deltaLatitude / 2) +

                    Math.cos(latitude1) *

                    Math.cos(latitude2) *

                    Math.sin(deltaLongitude / 2) *

                    Math.sin(deltaLongitude / 2);

            var c = 2 * Math.atan2(Math.sqrt(a),

                    Math.sqrt(1 - a));

            var d = R * c;

            return d;

        }

Posted by 달빛낙엽